mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-14 13:33:14 +00:00

* PHRAS-1304_AUTO-COMPLETION_MASTER ported from 4.0 * PHRAS-1304_AUTO-COMPLETION_MASTER fix * PHRAS-1304_AUTO-COMPLETION_MASTER fix * PHRAS-1304_AUTO-COMPLETION_MASTER bump php version to 5.5.31 (5.5.21 is obsolete in cicleci) * PHRAS-1304_AUTO-COMPLETION_MASTER bump php version to 5.5.31 : php.ini moved in circelci * PHRAS-1304_AUTO-COMPLETION_MASTER add zmq & date to php for circleci * PHRAS-1304_AUTO-COMPLETION_MASTER add zmq * PHRAS-1304_AUTO-COMPLETION_MASTER bump amqp * PHRAS-1304_AUTO-COMPLETION_MASTER downgrade amqp to 1.2 to test compilation against old librabbit 0.4 (ubuntu) * PHRAS-1304_AUTO-COMPLETION_MASTER add amqp.so to php.ini, (re)bump amqp to 1.6 * PHRAS-1304_AUTO-COMPLETION_MASTER build rabittmq from git * PHRAS-1304_AUTO-COMPLETION_MASTER build rabittmq from git again * PHRAS-1304_AUTO-COMPLETION_MASTER build rabittmq from git again and again * PHRAS-1304_AUTO-COMPLETION_MASTER fix test on media rotation 600*400 -> 400*599 !!! * PHRAS-1304_AUTO-COMPLETION_MASTER restore facebook sdk to 4.0.1 due to mistake * PHRAS-1304_AUTO-COMPLETION_MASTER deleted unwanted file
66 lines
2.1 KiB
PHP
66 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace Alchemy\Tests\Phrasea\Controller\Prod;
|
|
|
|
use Alchemy\Phrasea\SearchEngine\SearchEngineOptions;
|
|
use Prophecy\Argument;
|
|
|
|
/**
|
|
* @group functional
|
|
* @group legacy
|
|
* @group authenticated
|
|
* @group web
|
|
*/
|
|
class QueryTest extends \PhraseanetAuthenticatedWebTestCase
|
|
{
|
|
public function testQuery()
|
|
{
|
|
$route = '/prod/query/';
|
|
|
|
$userManipulator = $this->getMockBuilder('Alchemy\Phrasea\Model\Manipulator\UserManipulator')
|
|
->setConstructorArgs([
|
|
self::$DI['app']['model.user-manager'],
|
|
self::$DI['app']['auth.password-encoder'],
|
|
self::$DI['app']['geonames.connector'],
|
|
self::$DI['app']['repo.users'],
|
|
self::$DI['app']['random.low'],
|
|
self::$DI['app']['dispatcher'],
|
|
])
|
|
->setMethods(['logQuery'])
|
|
->getMock();
|
|
|
|
self::$DI['app']['manipulator.user'] = $userManipulator;
|
|
|
|
$userManipulator->expects($this->once())->method('logQuery');
|
|
|
|
$client = $this->getClient();
|
|
$client->request('POST', $route);
|
|
|
|
$response = $client->getResponse();
|
|
$this->assertEquals('application/json', $response->headers->get('Content-type'));
|
|
$data = json_decode($response->getContent(), true);
|
|
$this->assertInternalType('array', $data);
|
|
}
|
|
|
|
public function testQueryAnswerTrain()
|
|
{
|
|
$app = $this->mockElasticsearchResult(self::$DI['record_2']);
|
|
$this->authenticate($app);
|
|
|
|
$options = new SearchEngineOptions();
|
|
$searchableBasesIds = $app->getAclForUser($app->getAuthenticatedUser())->getSearchableBasesIds();
|
|
$options->onBasesIds($searchableBasesIds);
|
|
$serializedOptions = $options->serialize();
|
|
|
|
$response = $this->request('POST', '/prod/query/answer-train/', [
|
|
'options_serial' => $serializedOptions,
|
|
'pos' => 0,
|
|
'query' => ''
|
|
]);
|
|
$this->assertTrue($response->isOk());
|
|
$datas = (array) json_decode($response->getContent());
|
|
$this->assertArrayHasKey('current', $datas);
|
|
unset($response, $datas);
|
|
}
|
|
}
|