Add fixtures to sqlite db
@@ -61,5 +61,7 @@ script:
|
||||
bin/setup system:install --email=test@phraseanet.com --password=test --db-user=root --db-template=fr --db-password= --databox=db_test --appbox=ab_test --server-name=http://127.0.0.1 -y;
|
||||
fi"
|
||||
- php hudson/cleanupSubdefs.php
|
||||
#sqlite db generation should occur once Phraseanet is up to date :
|
||||
- bin/developer phraseanet:regenerate-sqlite
|
||||
- grunt test
|
||||
- bin/phpunit
|
||||
|
@@ -639,7 +639,7 @@ class Application extends SilexApplication
|
||||
}));
|
||||
$twig->addFilter(new \Twig_SimpleFilter('thesaurus', function (\Twig_Environment $twig, $value) {
|
||||
if (!$value instanceof \ThesaurusValue) {
|
||||
return twig_escape_filter($twig, str_replace(array('[[em]]', '[[/em]]'), array('<em>', '</em>'), $value));
|
||||
return twig_escape_filter($twig, str_replace(['[[em]]', '[[/em]]'], ['<em>', '</em>'], $value));
|
||||
}
|
||||
|
||||
return "<a class=\"bounce\" onclick=\"bounce('" . $value->getField()->get_databox()->get_sbas_id() . "','"
|
||||
@@ -647,9 +647,9 @@ class Application extends SilexApplication
|
||||
. "', '"
|
||||
. str_replace("'", "\\'", $value->getField()->get_name())
|
||||
. "');return(false);\">"
|
||||
. twig_escape_filter($twig, str_replace(array('[[em]]', '[[/em]]'), array('<em>', '</em>'), $value->getValue()))
|
||||
. twig_escape_filter($twig, str_replace(['[[em]]', '[[/em]]'], ['<em>', '</em>'], $value->getValue()))
|
||||
. "</a>";
|
||||
}, array('needs_environment' => true, 'is_safe' => array('html'))));
|
||||
}, ['needs_environment' => true, 'is_safe' => ['html']]));
|
||||
|
||||
$twig->addFilter(new \Twig_SimpleFilter('escapeDoubleQuote', function ($value) {
|
||||
return str_replace('"', '\"', $value);
|
||||
|
@@ -11,12 +11,35 @@
|
||||
|
||||
namespace Alchemy\Phrasea\Command\Developer;
|
||||
|
||||
use Alchemy\Phrasea\Border\Manager;
|
||||
use Alchemy\Phrasea\Command\Command;
|
||||
use Alchemy\Phrasea\Model\Entities\AuthFailure;
|
||||
use Alchemy\Phrasea\Model\Entities\AggregateToken;
|
||||
use Alchemy\Phrasea\Model\Entities\Basket;
|
||||
use Alchemy\Phrasea\Model\Entities\BasketElement;
|
||||
use Alchemy\Phrasea\Model\Entities\Feed;
|
||||
use Alchemy\Phrasea\Model\Entities\FeedEntry;
|
||||
use Alchemy\Phrasea\Model\Entities\FeedItem;
|
||||
use Alchemy\Phrasea\Model\Entities\FeedPublisher;
|
||||
use Alchemy\Phrasea\Model\Entities\FeedToken;
|
||||
use Alchemy\Phrasea\Model\Entities\LazaretSession;
|
||||
use Alchemy\Phrasea\Model\Entities\Session;
|
||||
use Alchemy\Phrasea\Model\Entities\Task;
|
||||
use Alchemy\Phrasea\Model\Entities\User;
|
||||
use Alchemy\Phrasea\Model\Entities\ValidationData;
|
||||
use Alchemy\Phrasea\Model\Entities\ValidationSession;
|
||||
use Alchemy\Phrasea\Model\Entities\ValidationParticipant;
|
||||
use Alchemy\Phrasea\Model\Entities\UsrListOwner;
|
||||
use Alchemy\Phrasea\Model\Entities\UsrList;
|
||||
use Alchemy\Phrasea\Model\Entities\UsrListEntry;
|
||||
use Alchemy\Phrasea\Model\Entities\StoryWZ;
|
||||
use Alchemy\Phrasea\Core\Provider\ORMServiceProvider;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
use Doctrine\ORM\Tools\SchemaTool;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Alchemy\Phrasea\Border\File;
|
||||
|
||||
class RegenerateSqliteDb extends Command
|
||||
{
|
||||
@@ -33,6 +56,7 @@ class RegenerateSqliteDb extends Command
|
||||
|
||||
$source = __DIR__ . '/../../../../../tests/db-ref.sqlite';
|
||||
$target = __DIR__ . '/../../../../../tests/db-ref.sqlite.bkp';
|
||||
$json = __DIR__ . '/../../../../../tests/fixtures.json';
|
||||
$renamed = false;
|
||||
|
||||
if (is_file($source)) {
|
||||
@@ -50,15 +74,534 @@ class RegenerateSqliteDb extends Command
|
||||
$metadatas = $this->container['EM']->getMetadataFactory()->getAllMetadata();
|
||||
$schemaTool = new SchemaTool($this->container['EM']);
|
||||
$schemaTool->createSchema($metadatas);
|
||||
|
||||
$fixtures = [];
|
||||
|
||||
$DI = new \Pimple();
|
||||
|
||||
$this->generateUsers($this->container['EM'], $DI);
|
||||
$this->generateCollection($DI);
|
||||
$this->generateRecord($DI);
|
||||
$this->insertOneStoryInWz($this->container['EM'], $DI);
|
||||
$this->insertUsrLists($this->container['EM'], $DI);
|
||||
$this->insertOnePrivateFeed($this->container['EM'], $DI);
|
||||
$this->insertOnePublicFeed($this->container['EM'], $DI);
|
||||
$this->insertOneExtraFeed($this->container['EM'], $DI);
|
||||
$this->insertOneAggregateToken($this->container['EM'], $DI);
|
||||
$this->insertLazaretFiles($this->container['EM'], $DI);
|
||||
$this->insertAuthFailures($this->container['EM'], $DI);
|
||||
|
||||
$fixtures['user']['test_phpunit'] = $DI['user']->get_id();
|
||||
$fixtures['user']['test_phpunit_not_admin'] = $DI['user_notAdmin']->get_id();
|
||||
$fixtures['user']['test_phpunit_alt1'] = $DI['user_alt1']->get_id();
|
||||
$fixtures['user']['test_phpunit_alt2'] = $DI['user_alt2']->get_id();
|
||||
|
||||
$fixtures['databox']['records'] = $DI['databox']->get_sbas_id();
|
||||
$fixtures['collection']['coll'] = $DI['coll']->get_base_id();
|
||||
$fixtures['collection']['coll_no_access'] = $DI['coll_no_access']->get_base_id();
|
||||
$fixtures['collection']['coll_no_status'] = $DI['coll_no_status']->get_base_id();
|
||||
|
||||
$fixtures['record']['record_story_1'] = $DI['record_story_1']->get_record_id();
|
||||
$fixtures['record']['record_story_2'] = $DI['record_story_2']->get_record_id();
|
||||
|
||||
$fixtures['record']['record_1'] = $DI['record_1']->get_record_id();
|
||||
$fixtures['record']['record_2'] = $DI['record_2']->get_record_id();
|
||||
$fixtures['record']['record_3'] = $DI['record_3']->get_record_id();
|
||||
$fixtures['record']['record_4'] = $DI['record_4']->get_record_id();
|
||||
$fixtures['record']['record_5'] = $DI['record_5']->get_record_id();
|
||||
$fixtures['record']['record_6'] = $DI['record_6']->get_record_id();
|
||||
$fixtures['record']['record_7'] = $DI['record_7']->get_record_id();
|
||||
|
||||
$fixtures['lazaret']['lazaret_1'] = $DI['lazaret_1']->getId();
|
||||
|
||||
$fixtures['user']['user_1'] = $DI['user_1']->getId();
|
||||
$fixtures['user']['user_2'] = $DI['user_1']->getId();
|
||||
$fixtures['user']['user_3'] = $DI['user_1']->getId();
|
||||
$fixtures['user']['user_1_deleted'] = $DI['user_1_deleted']->getId();
|
||||
$fixtures['user']['user_2_deleted'] = $DI['user_2_deleted']->getId();
|
||||
$fixtures['user']['user_3_deleted'] = $DI['user_3_deleted']->getId();
|
||||
$fixtures['user']['user_template'] = $DI['user_template']->getId();
|
||||
|
||||
$this->insertTwoTasks($this->container['EM']);
|
||||
$this->insertTwoBasket($this->container['EM'], $DI);
|
||||
|
||||
$this->container['EM']->flush();
|
||||
} catch (\Exception $e) {
|
||||
$output->writeln("<error>".$e->getMessage()."</error>");
|
||||
if ($renamed) {
|
||||
if (is_file($source)) {
|
||||
unlink($source);
|
||||
}
|
||||
$fs->rename($target, $source);
|
||||
}
|
||||
throw $e;
|
||||
}
|
||||
|
||||
$fs->remove($target);
|
||||
$fs->dumpFile($json, json_encode($fixtures, defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : 0));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
private function insertAuthFailures(EntityManager $em, \Pimple $DI)
|
||||
{
|
||||
$ip = '192.168.16.178';
|
||||
$username = 'romainneutron';
|
||||
|
||||
for ($i = 0; $i < 10; $i++) {
|
||||
$failure = new AuthFailure();
|
||||
$failure->setIp($ip);
|
||||
$failure->setUsername($username);
|
||||
$failure->setLocked(false);
|
||||
$failure->setCreated(new \DateTime('-3 months'));
|
||||
$em->persist($failure);
|
||||
}
|
||||
for ($i = 0; $i < 2; $i++) {
|
||||
$failure = new AuthFailure();
|
||||
$failure->setIp($ip);
|
||||
$failure->setUsername($username);
|
||||
$failure->setLocked(false);
|
||||
$failure->setCreated(new \DateTime('-1 months'));
|
||||
$em->persist($failure);
|
||||
}
|
||||
}
|
||||
|
||||
private function insertLazaretFiles(EntityManager $em, \Pimple $DI)
|
||||
{
|
||||
$session = new LazaretSession();
|
||||
$em->persist($session);
|
||||
$em->flush();
|
||||
|
||||
$file = File::buildFromPathfile($this->container['root.path'] . '/tests/files/cestlafete.jpg', $DI['coll'], $this->container);
|
||||
|
||||
$callback = function ($element) use ($DI) {
|
||||
$DI['lazaret_1'] = $element;
|
||||
};
|
||||
|
||||
$this->container['border-manager']->process($session, $file, $callback, Manager::FORCE_LAZARET);
|
||||
}
|
||||
|
||||
private function generateUsers(EntityManager $em, \Pimple $DI)
|
||||
{
|
||||
$DI['user'] = $this->getUser();
|
||||
$DI['user_alt1'] = $this->getUserAlt1();
|
||||
$DI['user_alt2'] = $this->getUserAlt2();
|
||||
$DI['user_notAdmin'] = $this->getUserNotAdmin();
|
||||
|
||||
$user1 = $this->insertOneUser('user1');
|
||||
$user2 = $this->insertOneUser('user2', 'user2@phraseanet.com');
|
||||
$user3 = $this->insertOneUser('user3', null, true);
|
||||
|
||||
$user1Deleted = $this->insertOneUser('user1-deleted');
|
||||
$user1Deleted->setDeleted(true);
|
||||
$user2Deleted = $this->insertOneUser('user2-deleted', 'user2-deleted@phraseanet.com');
|
||||
$user2Deleted->setDeleted(true);
|
||||
$user3Deleted = $this->insertOneUser('user3-deleted', null, true);
|
||||
$user3Deleted->setDeleted(true);
|
||||
|
||||
$template = $this->insertOneUser('template', null, true);
|
||||
$template->setModelOf($user1);
|
||||
|
||||
$DI['user_1'] = $user1;
|
||||
$DI['user_2'] = $user2;
|
||||
$DI['user_3'] = $user3;
|
||||
$DI['user_1_deleted'] = $user1Deleted;
|
||||
$DI['user_2_deleted'] = $user2Deleted;
|
||||
$DI['user_3_deleted'] = $user3Deleted;
|
||||
$DI['user_template'] = $template;
|
||||
|
||||
$em->persist($user1);
|
||||
$em->persist($user2);
|
||||
$em->persist($user3);
|
||||
$em->persist($user1Deleted);
|
||||
$em->persist($user2Deleted);
|
||||
$em->persist($user3Deleted);
|
||||
$em->persist($template);
|
||||
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
protected function insertOneUser($login, $email = null, $admin = false)
|
||||
{
|
||||
return $this->container['manipulator.user']->createUser($login, uniqid('pass'), $email, $admin);
|
||||
}
|
||||
|
||||
private function generateCollection(\Pimple $DI)
|
||||
{
|
||||
$coll = $collection_no_acces = $collection_no_acces_by_status = $db = null;
|
||||
|
||||
foreach ($this->container['phraseanet.appbox']->get_databoxes() as $databox) {
|
||||
foreach ($databox->get_collections() as $collection) {
|
||||
if ($collection_no_acces instanceof \collection && !$collection_no_acces_by_status) {
|
||||
$collection_no_acces_by_status = $collection;
|
||||
}
|
||||
if ($coll instanceof \collection && !$collection_no_acces) {
|
||||
$collection_no_acces = $collection;
|
||||
}
|
||||
if (!$coll) {
|
||||
$coll = $collection;
|
||||
}
|
||||
if ($coll instanceof \collection
|
||||
&& $collection_no_acces instanceof \collection
|
||||
&& $collection_no_acces_by_status instanceof \collection) {
|
||||
break 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$DI['databox'] = $coll->get_databox();
|
||||
$DI['coll'] = $coll;
|
||||
|
||||
if (!$collection_no_acces instanceof collection) {
|
||||
$collection_no_acces = \collection::create($this->container, $databox, $this->container['phraseanet.appbox'], 'BIBOO', $DI['user']);
|
||||
}
|
||||
|
||||
$DI['coll_no_access'] = $collection_no_acces;
|
||||
|
||||
if (!$collection_no_acces_by_status instanceof collection) {
|
||||
$collection_no_acces_by_status = \collection::create($this->container, $databox, $this->container['phraseanet.appbox'], 'BIBOONOACCESBYSTATUS', $DI['user']);
|
||||
}
|
||||
|
||||
$DI['coll_no_status'] = $collection_no_acces_by_status;
|
||||
}
|
||||
|
||||
private function generateRecord(\Pimple $DI)
|
||||
{
|
||||
foreach (range(1, 7) as $i) {
|
||||
$file = new File($this->container, $this->container['mediavorus']->guess(__DIR__ . '/../../../../../tests/files/test001.jpg'), $DI['coll']);
|
||||
$record = \record_adapter::createFromFile($file, $this->container);
|
||||
$record->generate_subdefs($record->get_databox(), $this->container);
|
||||
$DI['record_' . $i] = $record;
|
||||
}
|
||||
|
||||
$media = $this->container['mediavorus']->guess($this->container['root.path'] . '/tests/files/cestlafete.jpg');
|
||||
|
||||
foreach (range(1, 2) as $i) {
|
||||
$story = \record_adapter::createStory($this->container, $DI['coll']);
|
||||
$story->substitute_subdef('preview', $media, $this->container);
|
||||
$story->substitute_subdef('thumbnail', $media, $this->container);
|
||||
$DI['record_story_' . $i] = $story;
|
||||
}
|
||||
}
|
||||
|
||||
private function insertTwoTasks(EntityManager $em)
|
||||
{
|
||||
$task1 = new Task();
|
||||
$task1
|
||||
->setName('task 1')
|
||||
->setJobId('Null');
|
||||
|
||||
$task2 = new Task();
|
||||
$task2
|
||||
->setName('task 2')
|
||||
->setJobId('Null');
|
||||
|
||||
$em->persist($task1);
|
||||
$em->persist($task2);
|
||||
}
|
||||
|
||||
private function getUser()
|
||||
{
|
||||
if (false === $usr_id = \User_Adapter::get_usr_id_from_login($this->container, 'test_phpunit')) {
|
||||
return \User_Adapter::create($this->container, 'test_phpunit', \random::generatePassword(), 'noone@example.com', false);
|
||||
}
|
||||
|
||||
return \User_Adapter::getInstance($usr_id, $this->container);
|
||||
}
|
||||
|
||||
private function getUserAlt1()
|
||||
{
|
||||
if (false === $usr_id = \User_Adapter::get_usr_id_from_login($this->container, 'test_phpunit_alt1')) {
|
||||
return \User_Adapter::create($this->container, 'test_phpunit_alt1', \random::generatePassword(), 'noonealt1@example.com', false);
|
||||
}
|
||||
|
||||
return \User_Adapter::getInstance($usr_id, $this->container);
|
||||
}
|
||||
|
||||
private function getUserAlt2()
|
||||
{
|
||||
if (false === $usr_id = \User_Adapter::get_usr_id_from_login($this->container, 'test_phpunit_alt2')) {
|
||||
return \User_Adapter::create($this->container, 'test_phpunit_alt2', \random::generatePassword(), 'noonealt2@example.com', false);
|
||||
}
|
||||
|
||||
return \User_Adapter::getInstance($usr_id, $this->container);
|
||||
}
|
||||
|
||||
public function getUserNotAdmin()
|
||||
{
|
||||
if (false === $usr_id = \User_Adapter::get_usr_id_from_login($this->container, 'test_phpunit_not_admin')) {
|
||||
return \User_Adapter::create($this->container, 'test_phpunit_not_admin', \random::generatePassword(), 'noone_not_admin@example.com', false);
|
||||
}
|
||||
|
||||
return \User_Adapter::getInstance($usr_id, $this->container);
|
||||
}
|
||||
|
||||
private function insertTwoBasket(EntityManager $em, \Pimple $DI)
|
||||
{
|
||||
$basket1 = new Basket();
|
||||
$basket1->setOwner($this->getUser());
|
||||
$basket1->setName('test');
|
||||
$basket1->setDescription('description test');
|
||||
|
||||
$element = new BasketElement();
|
||||
$element->setRecord($DI['record_1']);
|
||||
$basket1->addElement($element);
|
||||
$element->setBasket($basket1);
|
||||
|
||||
$basket2 = new Basket();
|
||||
$basket2->setOwner($this->getUser());
|
||||
$basket2->setName('test');
|
||||
$basket2->setDescription('description test');
|
||||
|
||||
$basket3 = new Basket();
|
||||
$basket3->setOwner($this->getUserAlt1());
|
||||
$basket3->setName('test');
|
||||
$basket3->setDescription('description test');
|
||||
|
||||
$em->persist($basket1);
|
||||
$em->persist($element);
|
||||
$em->persist($basket2);
|
||||
$em->persist($basket3);
|
||||
|
||||
$basket4 = new Basket();
|
||||
$basket4->setName('test');
|
||||
$basket4->setDescription('description');
|
||||
$basket4->setOwner($this->getUser());
|
||||
|
||||
foreach ([$DI['record_1'], $DI['record_2']] as $record) {
|
||||
$basketElement = new BasketElement();
|
||||
$basketElement->setRecord($record);
|
||||
$basketElement->setBasket($basket4);
|
||||
$basket4->addElement($basketElement);
|
||||
$em->persist($basketElement);
|
||||
}
|
||||
|
||||
$validationSession = new ValidationSession();
|
||||
$validationSession->setBasket($basket4);
|
||||
$basket4->setValidation($validationSession);
|
||||
$expires = new \DateTime();
|
||||
$expires->modify('+1 week');
|
||||
$validationSession->setExpires($expires);
|
||||
$validationSession->setInitiator($this->getUser());
|
||||
|
||||
foreach ([$this->getUser(), $DI['user_alt1'], $DI['user_alt2']] as $user) {
|
||||
$validationParticipant = new ValidationParticipant();
|
||||
$validationParticipant->setUser($user);
|
||||
$validationParticipant->setSession($validationSession);
|
||||
$validationParticipant->setCanAgree(true);
|
||||
$validationSession->addParticipant($validationParticipant);
|
||||
foreach ($basket4->getElements() as $basketElement) {
|
||||
$data = new ValidationData();
|
||||
$data->setParticipant($validationParticipant);
|
||||
$validationParticipant->addData($data);
|
||||
$data->setBasketElement($basketElement);
|
||||
$em->persist($data);
|
||||
}
|
||||
$em->persist($validationParticipant);
|
||||
}
|
||||
|
||||
$em->persist($basket4);
|
||||
}
|
||||
|
||||
private function insertOneStoryInWz(EntityManager $em, \Pimple $DI)
|
||||
{
|
||||
$story = new StoryWZ();
|
||||
|
||||
$story->setRecord($DI['record_story_1']);
|
||||
$story->setUser($DI['user']);
|
||||
|
||||
$em->persist($story);
|
||||
}
|
||||
|
||||
private function insertUsrLists(EntityManager $em, \Pimple $DI)
|
||||
{
|
||||
$owner1 = new UsrListOwner();
|
||||
$owner1->setRole(UsrListOwner::ROLE_ADMIN);
|
||||
$owner1->setUser($DI['user']);
|
||||
|
||||
$owner2 = new UsrListOwner();
|
||||
$owner2->setRole(UsrListOwner::ROLE_ADMIN);
|
||||
$owner2->setUser($DI['user_alt1']);
|
||||
|
||||
$list1 = new UsrList();
|
||||
$list1->setName('new list');
|
||||
$list1->addOwner($owner1);
|
||||
$owner1->setList($list1);
|
||||
|
||||
$entry1 = new UsrListEntry();
|
||||
$entry1->setUser($DI['user']);
|
||||
$entry1->setList($list1);
|
||||
$list1->addEntrie($entry1);
|
||||
|
||||
$entry2 = new UsrListEntry();
|
||||
$entry2->setUser($DI['user_alt1']);
|
||||
$entry2->setList($list1);
|
||||
$list1->addEntrie($entry2);
|
||||
|
||||
$list2 = new UsrList();
|
||||
$list2->setName('new list');
|
||||
$list2->addOwner($owner2);
|
||||
$owner2->setList($list2);
|
||||
|
||||
$entry3 = new UsrListEntry();
|
||||
$entry3->setUser($DI['user_alt1']);
|
||||
$entry3->setList($list2);
|
||||
$list2->addEntrie($entry3);
|
||||
|
||||
$entry4 = new UsrListEntry();
|
||||
$entry4->setUser($DI['user_alt2']);
|
||||
$entry4->setList($list2);
|
||||
$list2->addEntrie($entry4);
|
||||
|
||||
$em->persist($owner1);
|
||||
$em->persist($owner2);
|
||||
$em->persist($list1);
|
||||
$em->persist($list2);
|
||||
$em->persist($entry1);
|
||||
$em->persist($entry2);
|
||||
$em->persist($entry3);
|
||||
$em->persist($entry4);
|
||||
}
|
||||
|
||||
private function insertOnePublicFeed(EntityManager $em, \Pimple $DI)
|
||||
{
|
||||
$feed = new Feed();
|
||||
$publisher = new FeedPublisher();
|
||||
|
||||
$user = $DI['user'];
|
||||
|
||||
$publisher->setUsrId($user->get_id());
|
||||
$publisher->setIsOwner(true);
|
||||
$publisher->setFeed($feed);
|
||||
|
||||
$feed->addPublisher($publisher);
|
||||
$feed->setTitle("Feed test, Public!");
|
||||
$feed->setIsPublic(true);
|
||||
$feed->setSubtitle("description");
|
||||
|
||||
$em->persist($feed);
|
||||
$em->persist($publisher);
|
||||
|
||||
$this->insertOneFeedEntry($em, $DI, $feed, true);
|
||||
$this->insertOneFeedToken($em, $DI, $feed);
|
||||
}
|
||||
|
||||
private function insertOnePrivateFeed(EntityManager $em, \Pimple $DI)
|
||||
{
|
||||
$feed = new Feed();
|
||||
$publisher = new FeedPublisher();
|
||||
|
||||
$user = $DI['user'];
|
||||
|
||||
$publisher->setUsrId($user->get_id());
|
||||
$publisher->setIsOwner(true);
|
||||
$publisher->setFeed($feed);
|
||||
|
||||
$feed->addPublisher($publisher);
|
||||
$feed->setTitle("Feed test, YOLO!");
|
||||
$feed->setIsPublic(false);
|
||||
$feed->setSubtitle("description");
|
||||
|
||||
$em->persist($feed);
|
||||
$em->persist($publisher);
|
||||
|
||||
$this->insertOneFeedEntry($em, $DI, $feed, false);
|
||||
$this->insertOneFeedToken($em, $DI, $feed);
|
||||
}
|
||||
|
||||
private function insertOneExtraFeed(EntityManager $em, \Pimple $DI)
|
||||
{
|
||||
$feed = new Feed();
|
||||
$publisher = new FeedPublisher();
|
||||
|
||||
$user = $DI['user_alt1'];
|
||||
|
||||
$publisher->setUsrId($user->get_id());
|
||||
$publisher->setIsOwner(true);
|
||||
$publisher->setFeed($feed);
|
||||
|
||||
$feed->addPublisher($publisher);
|
||||
$feed->setTitle("Feed test, Private for user_alt1!");
|
||||
$feed->setIsPublic(false);
|
||||
$feed->setSubtitle("description");
|
||||
|
||||
$em->persist($feed);
|
||||
$em->persist($publisher);
|
||||
|
||||
$this->insertOneFeedEntry($em, $DI, $feed, true);
|
||||
$this->insertOneFeedToken($em, $DI, $feed);
|
||||
}
|
||||
|
||||
private function insertOneFeedEntry(EntityManager $em, \Pimple $DI, Feed $feed, $public)
|
||||
{
|
||||
$entry = new FeedEntry();
|
||||
$entry->setFeed($feed);
|
||||
$entry->setTitle("test");
|
||||
$entry->setSubtitle("description");
|
||||
$entry->setAuthorName('user');
|
||||
$entry->setAuthorEmail('user@email.com');
|
||||
|
||||
$publisher = $feed->getPublisher($DI['user']);
|
||||
|
||||
if ($publisher !== null) {
|
||||
$entry->setPublisher($publisher);
|
||||
}
|
||||
|
||||
$feed->addEntry($entry);
|
||||
|
||||
$em->persist($entry);
|
||||
$em->persist($feed);
|
||||
|
||||
$this->insertOneFeedItem($em, $DI, $entry, $public);
|
||||
}
|
||||
|
||||
private function insertOneFeedToken(EntityManager $em, \Pimple $DI, Feed $feed)
|
||||
{
|
||||
$token = new FeedToken();
|
||||
$token->setValue($this->container['tokens']->generatePassword(12));
|
||||
$token->setFeed($feed);
|
||||
$token->setUsrId($DI['user']->get_id());
|
||||
|
||||
$feed->addToken($token);
|
||||
|
||||
$em->persist($token);
|
||||
$em->persist($feed);
|
||||
}
|
||||
|
||||
private function insertOneAggregateToken(EntityManager $em, \Pimple $DI)
|
||||
{
|
||||
$user = $DI['user'];
|
||||
|
||||
$token = new AggregateToken();
|
||||
$token->setValue($this->container['tokens']->generatePassword(12));
|
||||
$token->setUsrId($user->get_id());
|
||||
|
||||
$em->persist($token);
|
||||
}
|
||||
|
||||
private function insertOneFeedItem(EntityManager $em, \Pimple $DI, FeedEntry $entry, $public)
|
||||
{
|
||||
if ($public) {
|
||||
$start = 5;
|
||||
} else {
|
||||
$start = 1;
|
||||
}
|
||||
$limit = ($start + 3);
|
||||
|
||||
for ($start; $start < $limit; $start++) {
|
||||
$item = new FeedItem();
|
||||
$item->setEntry($entry);
|
||||
|
||||
$actual = $DI['record_'.($start)];
|
||||
|
||||
$item->setRecordId($actual->get_record_id());
|
||||
$item->setSbasId($actual->get_sbas_id());
|
||||
$item->setEntry($entry);
|
||||
$entry->addItem($item);
|
||||
|
||||
$em->persist($item);
|
||||
}
|
||||
|
||||
$em->persist($entry);
|
||||
}
|
||||
}
|
||||
|
@@ -40,7 +40,7 @@ class RSSFeeds implements ControllerProviderInterface
|
||||
$page = (int) $request->query->get('page');
|
||||
$page = $page < 1 ? 1 : $page;
|
||||
|
||||
return $app['feed.formatter-strategy']($format)->createResponse($feed, $page);
|
||||
return $app['feed.formatter-strategy']($format)->createResponse($app, $feed, $page);
|
||||
})
|
||||
->bind('feed_public')
|
||||
->assert('id', '\d+')
|
||||
@@ -55,7 +55,7 @@ class RSSFeeds implements ControllerProviderInterface
|
||||
$page = $page < 1 ? 1 : $page;
|
||||
|
||||
return $app['feed.formatter-strategy']($format)
|
||||
->createResponse($token->getFeed(), $page, \User_Adapter::getInstance($token->getUsrId(), $app));
|
||||
->createResponse($app, $token->getFeed(), $page, \User_Adapter::getInstance($token->getUsrId(), $app));
|
||||
})
|
||||
->bind('feed_user')
|
||||
->assert('id', '\d+')
|
||||
@@ -63,7 +63,6 @@ class RSSFeeds implements ControllerProviderInterface
|
||||
|
||||
$controllers->get('/userfeed/aggregated/{token}/{format}/', function (Application $app, $token, $format) {
|
||||
$token = $app['EM']->getRepository('Alchemy\Phrasea\Model\Entities\AggregateToken')->findOneBy(["value" => $token]);
|
||||
|
||||
$user = \User_Adapter::getInstance($token->getUsrId(), $app);
|
||||
|
||||
$feeds = $app['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Feed')->getAllForUser($app['acl']->get($user));
|
||||
@@ -75,7 +74,7 @@ class RSSFeeds implements ControllerProviderInterface
|
||||
$page = (int) $request->query->get('page');
|
||||
$page = $page < 1 ? 1 : $page;
|
||||
|
||||
return $app['feed.formatter-strategy']($format)->createResponse($aggregate, $page, $user);
|
||||
return $app['feed.formatter-strategy']($format)->createResponse($app, $aggregate, $page, $user);
|
||||
})
|
||||
->bind('feed_user_aggregated')
|
||||
->assert('format', '(rss|atom)');
|
||||
@@ -87,7 +86,7 @@ class RSSFeeds implements ControllerProviderInterface
|
||||
$page = (int) $request->query->get('page');
|
||||
$page = $page < 1 ? 1 : $page;
|
||||
|
||||
return $app['feed.formatter-strategy']($format)->createResponse($feed, $page);
|
||||
return $app['feed.formatter-strategy']($format)->createResponse($app, $feed, $page);
|
||||
})
|
||||
->bind('feed_public_aggregated')
|
||||
->assert('format', '(rss|atom)');
|
||||
@@ -99,7 +98,7 @@ class RSSFeeds implements ControllerProviderInterface
|
||||
$page = (int) $request->query->get('page');
|
||||
$page = $page < 1 ? 1 : $page;
|
||||
|
||||
return $app['feed.formatter-strategy']('cooliris')->createResponse($feed, $page, null, 'Phraseanet', $app);
|
||||
return $app['feed.formatter-strategy']('cooliris')->createResponse($app, $feed, $page, null, 'Phraseanet', $app);
|
||||
})
|
||||
->bind('feed_public_cooliris');
|
||||
|
||||
|
@@ -12,6 +12,7 @@
|
||||
namespace Alchemy\Phrasea\Feed\Formatter;
|
||||
|
||||
use Alchemy\Phrasea\Application;
|
||||
use Alchemy\Phrasea\Model\Entities\FeedEntry;
|
||||
use Alchemy\Phrasea\Feed\FeedInterface;
|
||||
use Alchemy\Phrasea\Feed\Link\FeedLink;
|
||||
use Alchemy\Phrasea\Feed\Link\LinkGeneratorCollection;
|
||||
@@ -33,7 +34,7 @@ class AtomFormatter extends FeedFormatterAbstract implements FeedFormatterInterf
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function createResponse(FeedInterface $feed, $page, \User_Adapter $user = null, $generator = 'Phraseanet', Application $app = null)
|
||||
public function createResponse(Application $app, FeedInterface $feed, $page, \User_Adapter $user = null, $generator = 'Phraseanet')
|
||||
{
|
||||
$content = $this->format($feed, $page, $user, $generator, $app);
|
||||
$response = new Response($content, 200, ['Content-Type' => 'application/atom+xml']);
|
||||
@@ -125,13 +126,13 @@ class AtomFormatter extends FeedFormatterAbstract implements FeedFormatterInterf
|
||||
}
|
||||
|
||||
foreach ($feed->getEntries() as $item) {
|
||||
$this->addItem($document, $root, $item, $feedlink);
|
||||
$this->addItem($app, $document, $root, $item, $feedlink);
|
||||
}
|
||||
|
||||
return $document->saveXML();
|
||||
}
|
||||
|
||||
protected function addItem(DOMDocument $document, DOMNode $feed, FeedEntry $entry, FeedLink $link)
|
||||
protected function addItem(Application $app, \DOMDocument $document, \DOMNode $feed, FeedEntry $entry, FeedLink $link)
|
||||
{
|
||||
$entry_node = $this->addTag($document, $feed, 'entry');
|
||||
|
||||
@@ -160,7 +161,7 @@ class AtomFormatter extends FeedFormatterAbstract implements FeedFormatterInterf
|
||||
$this->addTag($document, $entry_node, 'content', $entry->getSubtitle());
|
||||
|
||||
foreach ($entry->getItems() as $content) {
|
||||
$this->addContent($document, $entry_node, $entry, $content);
|
||||
$this->addContent($app, $document, $entry_node, $content);
|
||||
}
|
||||
|
||||
return $entry_node;
|
||||
|
@@ -13,6 +13,8 @@ namespace Alchemy\Phrasea\Feed\Formatter;
|
||||
|
||||
use Alchemy\Phrasea\Application;
|
||||
use Alchemy\Phrasea\Feed\FeedInterface;
|
||||
use Alchemy\Phrasea\Model\Entities\FeedEntry;
|
||||
use Alchemy\Phrasea\Model\Entities\FeedItem;
|
||||
use Alchemy\Phrasea\Feed\Link\LinkGeneratorCollection;
|
||||
use Alchemy\Phrasea\Feed\RSS\FeedRSSImage;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
@@ -34,7 +36,7 @@ class CoolirisFormatter extends FeedFormatterAbstract implements FeedFormatterIn
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function createResponse(FeedInterface $feed, $page, \User_Adapter $user = null, $generator = 'Phraseanet', Application $app = null)
|
||||
public function createResponse(Application $app, FeedInterface $feed, $page, \User_Adapter $user = null, $generator = 'Phraseanet')
|
||||
{
|
||||
$content = $this->format($feed, $page, $user, $generator, $app);
|
||||
$response = new Response($content, 200, ['Content-Type' => 'application/rss+xml']);
|
||||
@@ -174,8 +176,8 @@ class CoolirisFormatter extends FeedFormatterAbstract implements FeedFormatterIn
|
||||
|
||||
protected function addItem(Application $app, \DOMDocument $document, \DOMNode $feed, FeedEntry $entry)
|
||||
{
|
||||
foreach ($entry->get_content() as $content) {
|
||||
$this->addContent($app, $document, $feed, $entry, $content);
|
||||
foreach ($entry->getItems() as $content) {
|
||||
$this->addContent($app, $document, $feed, $content);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -201,7 +203,7 @@ class CoolirisFormatter extends FeedFormatterAbstract implements FeedFormatterIn
|
||||
|
||||
$caption = $content->getRecord($app)->get_caption();
|
||||
|
||||
$title_field = $caption->get_dc_field(databox_Field_DCESAbstract::Title);
|
||||
$title_field = $caption->get_dc_field(\databox_Field_DCESAbstract::Title);
|
||||
if (null !== $title_field) {
|
||||
$str_title = $title_field->get_serialized_values(' ');
|
||||
} else {
|
||||
@@ -211,7 +213,7 @@ class CoolirisFormatter extends FeedFormatterAbstract implements FeedFormatterIn
|
||||
//attach tile node to item node
|
||||
$title = $this->addTag($document, $item, 'title', $str_title);
|
||||
|
||||
$desc_field = $caption->get_dc_field(databox_Field_DCESAbstract::Description);
|
||||
$desc_field = $caption->get_dc_field(\databox_Field_DCESAbstract::Description);
|
||||
if (null !== $desc_field) {
|
||||
$str_desc = $desc_field->get_serialized_values(' ');
|
||||
} else {
|
||||
|
@@ -12,6 +12,7 @@
|
||||
namespace Alchemy\Phrasea\Feed\Formatter;
|
||||
|
||||
use Alchemy\Phrasea\Application;
|
||||
use Alchemy\Phrasea\Model\Entities\FeedItem;
|
||||
|
||||
abstract class FeedFormatterAbstract
|
||||
{
|
||||
@@ -65,21 +66,21 @@ abstract class FeedFormatterAbstract
|
||||
|
||||
$caption = $content->getRecord($app)->get_caption();
|
||||
|
||||
$title_field = $caption->get_dc_field(databox_Field_DCESAbstract::Title);
|
||||
$title_field = $caption->get_dc_field(\databox_Field_DCESAbstract::Title);
|
||||
if (null !== $title_field) {
|
||||
$str_title = $title_field->get_serialized_values(' ');
|
||||
$title = $this->addTag($document, $group, 'media:title', $str_title);
|
||||
$title->setAttribute('type', 'plain');
|
||||
}
|
||||
|
||||
$desc_field = $caption->get_dc_field(databox_Field_DCESAbstract::Description);
|
||||
$desc_field = $caption->get_dc_field(\databox_Field_DCESAbstract::Description);
|
||||
if (null !== $desc_field) {
|
||||
$str_desc = $desc_field->get_serialized_values(' ');
|
||||
$desc = $this->addTag($document, $group, 'media:description', $str_desc);
|
||||
$desc->setAttribute('type', 'plain');
|
||||
}
|
||||
|
||||
$contrib_field = $caption->get_dc_field(databox_Field_DCESAbstract::Contributor);
|
||||
$contrib_field = $caption->get_dc_field(\databox_Field_DCESAbstract::Contributor);
|
||||
if (null !== $contrib_field) {
|
||||
$str_contrib = $contrib_field->get_serialized_values(' ');
|
||||
$contrib = $this->addTag($document, $group, 'media:credit', $str_contrib);
|
||||
@@ -87,7 +88,7 @@ abstract class FeedFormatterAbstract
|
||||
$contrib->setAttribute('scheme', 'urn:ebu');
|
||||
}
|
||||
|
||||
$director_field = $caption->get_dc_field(databox_Field_DCESAbstract::Creator);
|
||||
$director_field = $caption->get_dc_field(\databox_Field_DCESAbstract::Creator);
|
||||
if (null !== $director_field) {
|
||||
$str_director = $director_field->get_serialized_values(' ');
|
||||
$director = $this->addTag($document, $group, 'media:credit', $str_director);
|
||||
@@ -95,7 +96,7 @@ abstract class FeedFormatterAbstract
|
||||
$director->setAttribute('scheme', 'urn:ebu');
|
||||
}
|
||||
|
||||
$publisher_field = $caption->get_dc_field(databox_Field_DCESAbstract::Publisher);
|
||||
$publisher_field = $caption->get_dc_field(\databox_Field_DCESAbstract::Publisher);
|
||||
if (null !== $publisher_field) {
|
||||
$str_publisher = $publisher_field->get_serialized_values(' ');
|
||||
$publisher = $this->addTag($document, $group, 'media:credit', $str_publisher);
|
||||
@@ -103,19 +104,19 @@ abstract class FeedFormatterAbstract
|
||||
$publisher->setAttribute('scheme', 'urn:ebu');
|
||||
}
|
||||
|
||||
$rights_field = $caption->get_dc_field(databox_Field_DCESAbstract::Rights);
|
||||
$rights_field = $caption->get_dc_field(\databox_Field_DCESAbstract::Rights);
|
||||
if (null !== $rights_field) {
|
||||
$str_rights = $rights_field->get_serialized_values(' ');
|
||||
$rights = $this->addTag($document, $group, 'media:copyright', $str_rights);
|
||||
}
|
||||
|
||||
$keyword_field = $caption->get_dc_field(databox_Field_DCESAbstract::Subject);
|
||||
$keyword_field = $caption->get_dc_field(\databox_Field_DCESAbstract::Subject);
|
||||
if (null !== $keyword_field) {
|
||||
$str_keywords = $keyword_field->get_serialized_values(', ');
|
||||
$keywords = $this->addTag($document, $group, 'media:keywords', $str_keywords);
|
||||
}
|
||||
|
||||
$duration = $content->get_record()->get_duration();
|
||||
$duration = $content->getRecord($app)->get_duration();
|
||||
|
||||
if (null !== $preview_permalink) {
|
||||
$preview = $this->addTag($document, $group, 'media:content');
|
||||
|
@@ -27,7 +27,7 @@ interface FeedFormatterInterface
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function format(FeedInterface $feed, $page, \User_Adapter $user = null, $generator = 'Phraseanet', Application $app = null);
|
||||
public function format(FeedInterface $feed, $page, \User_Adapter $user = null, $generator = 'Phraseanet', Application $app);
|
||||
|
||||
/**
|
||||
* Returns an HTTP Response containing a string representation of the feed.
|
||||
@@ -40,5 +40,5 @@ interface FeedFormatterInterface
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function createResponse(FeedInterface $feed, $page, \User_Adapter $user = null, $generator = 'Phraseanet', Application $app = null);
|
||||
public function createResponse(Application $app, FeedInterface $feed, $page, \User_Adapter $user = null, $generator = 'Phraseanet');
|
||||
}
|
||||
|
@@ -17,6 +17,8 @@ use Alchemy\Phrasea\Feed\Link\FeedLink;
|
||||
use Alchemy\Phrasea\Feed\Link\LinkGeneratorCollection;
|
||||
use Alchemy\Phrasea\Feed\RSS\FeedRSSImage;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Alchemy\Phrasea\Model\Entities\FeedEntry;
|
||||
use Alchemy\Phrasea\Feed\Link\FeedLinkGenerator;
|
||||
|
||||
class RssFormatter extends FeedFormatterAbstract implements FeedFormatterInterface
|
||||
{
|
||||
@@ -35,7 +37,7 @@ class RssFormatter extends FeedFormatterAbstract implements FeedFormatterInterfa
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function createResponse(FeedInterface $feed, $page, \User_Adapter $user = null, $generator = 'Phraseanet', Application $app = null)
|
||||
public function createResponse(Application $app, FeedInterface $feed, $page, \User_Adapter $user = null, $generator = 'Phraseanet')
|
||||
{
|
||||
$content = $this->format($feed, $page, $user, $generator, $app);
|
||||
$response = new Response($content, 200, ['Content-Type' => 'application/rss+xml']);
|
||||
@@ -165,17 +167,22 @@ class RssFormatter extends FeedFormatterAbstract implements FeedFormatterInterfa
|
||||
}
|
||||
|
||||
foreach ($feed->getEntries() as $item) {
|
||||
$this->addItem($doc, $channel, $item);
|
||||
$this->addItem($app, $doc, $channel, $item);
|
||||
}
|
||||
|
||||
return $doc->saveXML();
|
||||
}
|
||||
|
||||
protected function addItem(\DOMDocument $document, \DOMNode $node, FeedEntry $entry)
|
||||
protected function addItem(Application $app, \DOMDocument $document, \DOMNode $node, FeedEntry $entry)
|
||||
{
|
||||
$item = $this->addTag($document, $node, 'item');
|
||||
$feed = $entry->getFeed();
|
||||
|
||||
$link = $entry->getLink();
|
||||
if ($feed->isPublic()) {
|
||||
$link = $app['feed.link-generator-collection']->generatePublic($feed, FeedLinkGenerator::FORMAT_RSS);
|
||||
} else {
|
||||
$link = $app['feed.link-generator-collection']->generate($feed, $app['authentication']->getUser(), FeedLinkGenerator::FORMAT_RSS);
|
||||
}
|
||||
|
||||
$this->addTag($document, $item, 'title', $entry->getTitle());
|
||||
$this->addTag($document, $item, 'description', $entry->getSubtitle());
|
||||
@@ -202,7 +209,7 @@ class RssFormatter extends FeedFormatterAbstract implements FeedFormatterInterfa
|
||||
*
|
||||
*/
|
||||
foreach ($entry->getItems() as $content) {
|
||||
$this->addContent($document, $item, $entry, $content);
|
||||
$this->addContent($app, $document, $item, $content);
|
||||
}
|
||||
|
||||
return $item;
|
||||
|
@@ -290,6 +290,6 @@ class ValidationSession
|
||||
}
|
||||
}
|
||||
|
||||
throw new NotFoundHttpException('Particpant not found' . $user->get_email());
|
||||
throw new NotFoundHttpException('Participant not found ' . $user->get_email());
|
||||
}
|
||||
}
|
||||
|
@@ -1035,7 +1035,9 @@ class API_V1_adapter extends API_V1_Abstract
|
||||
$mimes = $request->get('mimes', []);
|
||||
|
||||
foreach ($record->get_embedable_medias($devices, $mimes) as $name => $media) {
|
||||
$ret[] = $this->list_embedable_media($media, $this->app['phraseanet.registry']);
|
||||
if (null !== $embed = $this->list_embedable_media($media, $this->app['phraseanet.registry'])) {
|
||||
$ret[] = $embed;
|
||||
}
|
||||
}
|
||||
|
||||
$result->set_datas(["embed" => $ret]);
|
||||
@@ -1067,7 +1069,9 @@ class API_V1_adapter extends API_V1_Abstract
|
||||
$mimes = $request->get('mimes', []);
|
||||
|
||||
foreach ($record->get_embedable_medias($devices, $mimes) as $name => $media) {
|
||||
$ret[] = $this->list_embedable_media($media, $this->app['phraseanet.registry']);
|
||||
if (null !== $embed = $this->list_embedable_media($media, $this->app['phraseanet.registry'])) {
|
||||
$ret[] = $embed;
|
||||
}
|
||||
}
|
||||
|
||||
$result->set_datas(["embed" => $ret]);
|
||||
|
@@ -347,7 +347,7 @@ class caption_Field_Value implements cache_cacheableInterface
|
||||
}
|
||||
|
||||
// ---------------- new code ----------------------
|
||||
$cleanvalue = str_replace(array("[[em]]", "[[/em]]", "'"), array("", "", "'"), $value);
|
||||
$cleanvalue = str_replace(["[[em]]", "[[/em]]", "'"], ["", "", "'"], $value);
|
||||
|
||||
list($term_noacc, $context_noacc) = $this->splitTermAndContext($cleanvalue);
|
||||
$term_noacc = $this->app['unicode']->remove_indexer_chars($term_noacc);
|
||||
@@ -379,7 +379,7 @@ class caption_Field_Value implements cache_cacheableInterface
|
||||
}
|
||||
}
|
||||
if ($bestnode) {
|
||||
list($term, $context) = $this->splitTermAndContext(str_replace(array("[[em]]", "[[/em]]"), array("", ""), $value));
|
||||
list($term, $context) = $this->splitTermAndContext(str_replace(["[[em]]", "[[/em]]"], ["", ""], $value));
|
||||
$qjs = $term . ($context ? '['.$context.']' : '');
|
||||
|
||||
$value = new ThesaurusValue($bestnode->getAttribute('v'), $this->databox_field, $qjs);
|
||||
|
@@ -562,7 +562,7 @@ class collection implements cache_cacheableInterface
|
||||
|
||||
$sql = "SELECT GREATEST(0, MAX(ord)) + 1 AS ord FROM bas WHERE sbas_id = :sbas_id";
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute(array(':sbas_id' => $sbas_id));
|
||||
$stmt->execute([':sbas_id' => $sbas_id]);
|
||||
$ord = $stmt->fetch(\PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
|
||||
|
@@ -79,9 +79,9 @@
|
||||
{{ app['date-formatter'].getDate(feed.getCreatedOn()) }}
|
||||
</td>
|
||||
<td valign="center" align="center">
|
||||
{% if feed.getCollection() != null %}
|
||||
{{ feed.getCollection().get_databox().get_label(app['locale']) }} /
|
||||
{{ feed.getCollection().get_name() }}
|
||||
{% if feed.getCollection(app) != null %}
|
||||
{{ feed.getCollection(app).get_databox().get_label(app['locale']) }} /
|
||||
{{ feed.getCollection(app).get_name() }}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td valign="center" align="center">
|
||||
|
@@ -10,9 +10,9 @@
|
||||
{% block header_rss %}
|
||||
{% for feed in feeds %}
|
||||
{% set link = app['feed.user-link-generator'].generatePublic(feed, 'rss') %}
|
||||
<link rel="alternate" type="{{ link.get_mimetype() }}" title="{{ link.get_title() }}" href="{{ link.get_href() }}" />
|
||||
<link rel="alternate" type="{{ link.getMimetype() }}" title="{{ link.getTitle() }}" href="{{ link.getURI() }}" />
|
||||
{% set link = app['feed.user-link-generator'].generatePublic(feed, 'atom') %}
|
||||
<link rel="alternate" type="{{ link.get_mimetype() }}" title="{{ link.get_title() }}" href="{{ link.get_href() }}" />
|
||||
<link rel="alternate" type="{{ link.getMimetype() }}" title="{{ link.getTitle() }}" href="{{ link.getURI() }}" />
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
|
||||
|
@@ -8,7 +8,7 @@ class BasketACLTest extends \PhraseanetTestCase
|
||||
{
|
||||
public function testOwnerIsOwner()
|
||||
{
|
||||
$basket = $this->insertOneBasketEnv();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 4);
|
||||
|
||||
$acl = new BasketACL();
|
||||
$this->assertTrue($acl->isOwner($basket, self::$DI['user']));
|
||||
@@ -16,7 +16,7 @@ class BasketACLTest extends \PhraseanetTestCase
|
||||
|
||||
public function testParticipantIsNotAnOwner()
|
||||
{
|
||||
$basket = $this->insertOneBasketEnv();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 4);
|
||||
|
||||
$acl = new BasketACL();
|
||||
$this->assertFalse($acl->isOwner($basket, self::$DI['user_alt1']));
|
||||
@@ -24,15 +24,14 @@ class BasketACLTest extends \PhraseanetTestCase
|
||||
|
||||
public function testUserIsNotTheOwner()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
$acl = new BasketACL();
|
||||
$this->assertFalse($acl->isOwner($basket, self::$DI['user_alt1']));
|
||||
}
|
||||
|
||||
public function testOwnerHasAccessInValidationEnv()
|
||||
{
|
||||
$basket = $this->insertOneBasketEnv();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 4);
|
||||
|
||||
$acl = new BasketACL();
|
||||
$this->assertTrue($acl->hasAccess($basket, self::$DI['user']));
|
||||
@@ -40,15 +39,14 @@ class BasketACLTest extends \PhraseanetTestCase
|
||||
|
||||
public function testOwnerHasAccess()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
$acl = new BasketACL();
|
||||
$this->assertTrue($acl->hasAccess($basket, self::$DI['user']));
|
||||
}
|
||||
|
||||
public function testParticipantHasAccess()
|
||||
{
|
||||
$basket = $this->insertOneBasketEnv();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 4);
|
||||
|
||||
$acl = new BasketACL();
|
||||
$this->assertTrue($acl->hasAccess($basket, self::$DI['user_alt1']));
|
||||
@@ -56,8 +54,7 @@ class BasketACLTest extends \PhraseanetTestCase
|
||||
|
||||
public function testUserHasNotAccess()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
$acl = new BasketACL();
|
||||
$this->assertFalse($acl->hasAccess($basket, self::$DI['user_alt1']));
|
||||
}
|
||||
|
@@ -4,7 +4,6 @@ namespace Alchemy\Tests\Phrasea\Application;
|
||||
|
||||
use Alchemy\Phrasea\Application;
|
||||
use Alchemy\Phrasea\Border\File;
|
||||
use Alchemy\Phrasea\Border\Manager;
|
||||
use Alchemy\Phrasea\Core\PhraseaEvents;
|
||||
use Alchemy\Phrasea\Authentication\Context;
|
||||
use Alchemy\Phrasea\Model\Entities\Task;
|
||||
@@ -358,7 +357,6 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
*/
|
||||
public function testGetMonitorTaskById()
|
||||
{
|
||||
$this->insertTwoTasks();
|
||||
$tasks = self::$DI['app']['manipulator.task']->getRepository()->findAll();
|
||||
|
||||
if (null === self::$adminToken) {
|
||||
@@ -390,7 +388,6 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
*/
|
||||
public function testPostMonitorTaskById()
|
||||
{
|
||||
$this->insertTwoTasks();
|
||||
$tasks = self::$DI['app']['manipulator.task']->getRepository()->findAll();
|
||||
|
||||
if (null === self::$adminToken) {
|
||||
@@ -445,7 +442,6 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
$this->markTestSkipped('there is no user with admin rights');
|
||||
}
|
||||
|
||||
$this->insertTwoTasks();
|
||||
$tasks = self::$DI['app']['manipulator.task']->getRepository()->findAll();
|
||||
|
||||
if (!count($tasks)) {
|
||||
@@ -476,7 +472,6 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
*/
|
||||
public function testPostMonitorStopTask()
|
||||
{
|
||||
$this->insertTwoTasks();
|
||||
$tasks = self::$DI['app']['manipulator.task']->getRepository()->findAll();
|
||||
|
||||
if (null === self::$adminToken) {
|
||||
@@ -567,12 +562,8 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
public function testStoryRoute()
|
||||
{
|
||||
$this->setToken(self::$token);
|
||||
|
||||
self::$DI['app']['session']->set('usr_id', self::$DI['user']->get_id());
|
||||
|
||||
if (!self::$DI['record_story_1']->hasChild(self::$DI['record_1'])) {
|
||||
self::$DI['record_story_1']->appendChild(self::$DI['record_1']);
|
||||
}
|
||||
self::$DI['record_story_1']->appendChild(self::$DI['record_1']);
|
||||
|
||||
self::$DI['app']['session']->remove('usr_id');
|
||||
|
||||
@@ -593,6 +584,8 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
$route = '/api/v1/stories/kjslkz84spm/sfsd5qfsd5/';
|
||||
$this->evaluateBadRequestRoute($route, ['GET']);
|
||||
$this->evaluateMethodNotAllowedRoute($route, ['POST', 'PUT', 'DELETE']);
|
||||
|
||||
self::$DI['record_story_1']->removeChild(self::$DI['record_1']);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -840,6 +833,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
foreach ($response['results']['records'] as $record) {
|
||||
$this->evaluateGoodRecord($record);
|
||||
$found = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!$found) {
|
||||
@@ -876,6 +870,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
foreach ($response['results']['stories'] as $story) {
|
||||
$this->evaluateGoodStory($story);
|
||||
$found = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!$found) {
|
||||
@@ -1050,9 +1045,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
public function testStoriesEmbedRoute()
|
||||
{
|
||||
$this->setToken(self::$token);
|
||||
|
||||
$story = self::$DI['record_story_1'];
|
||||
$keys = array_keys($story->get_subdefs());
|
||||
|
||||
$route = '/api/v1/stories/' . $story->get_sbas_id() . '/' . $story->get_record_id() . '/embed/';
|
||||
$this->evaluateMethodNotAllowedRoute($route, ['POST', 'PUT', 'DELETE']);
|
||||
@@ -1304,8 +1297,6 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
*/
|
||||
public function testSearchBaskets()
|
||||
{
|
||||
$this->insertFiveBasket();
|
||||
$this->insertOneValidationBasket();
|
||||
self::$DI['client'] = new Client(self::$DI['app'], []);
|
||||
|
||||
$this->setToken(self::$adminToken);
|
||||
@@ -1357,7 +1348,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
{
|
||||
$this->setToken(self::$adminToken);
|
||||
|
||||
$basketElement = $this->insertOneBasketElement();
|
||||
$basketElement = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\BasketElement', 1);
|
||||
$basket = $basketElement->getBasket();
|
||||
|
||||
$route = '/api/v1/baskets/' . $basket->getId() . '/content/';
|
||||
@@ -1397,7 +1388,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
{
|
||||
$this->setToken(self::$adminToken);
|
||||
|
||||
$basket = $this->insertOneBasket();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
|
||||
$route = '/api/v1/baskets/' . $basket->getId() . '/setname/';
|
||||
|
||||
@@ -1450,7 +1441,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
{
|
||||
$this->setToken(self::$adminToken);
|
||||
|
||||
$basket = $this->insertOneBasket();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
|
||||
$route = '/api/v1/baskets/' . $basket->getId() . '/setdescription/';
|
||||
|
||||
@@ -1475,11 +1466,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
public function testDeleteBasket()
|
||||
{
|
||||
$this->setToken(self::$adminToken);
|
||||
|
||||
$baskets = $this->insertFiveBasket();
|
||||
|
||||
$route = '/api/v1/baskets/' . $baskets[0]->getId() . '/delete/';
|
||||
|
||||
$route = '/api/v1/baskets/1/delete/';
|
||||
$this->evaluateMethodNotAllowedRoute($route, ['GET', 'PUT', 'DELETE']);
|
||||
|
||||
self::$DI['client']->request('POST', $route, $this->getParameters(), [], ['HTTP_Accept' => $this->getAcceptMimeType()]);
|
||||
@@ -1494,6 +1481,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
foreach ($content['response']['baskets'] as $basket) {
|
||||
$this->evaluateGoodBasket($basket);
|
||||
$found = true;
|
||||
break;
|
||||
}
|
||||
if (!$found) {
|
||||
$this->fail('There should be four baskets left');
|
||||
@@ -1674,7 +1662,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
{
|
||||
$title = 'Yellow title';
|
||||
|
||||
$created_feed = $this->insertOneFeed(self::$DI['user'], $title);
|
||||
$created_feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
|
||||
$this->setToken(self::$token);
|
||||
$route = '/api/v1/feeds/list/';
|
||||
@@ -1696,7 +1684,8 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
|
||||
if ($feed['id'] == $created_feed->getId()) {
|
||||
$found = true;
|
||||
$this->assertEquals($title, $feed['title']);
|
||||
$this->assertEquals('Feed test, YOLO!', $feed['title']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1718,15 +1707,14 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$title = 'Yellow title';
|
||||
$subtitle = 'Trololololo !';
|
||||
$entry_title = 'Superman';
|
||||
$entry_subtitle = 'Wonder Woman';
|
||||
$author = "W. Shakespeare";
|
||||
$author_email = "gontran.bonheur@gmail.com";
|
||||
|
||||
$created_item = $this->insertOneFeedItem(self::$DI['user']);
|
||||
$created_entry = $created_item->getEntry();
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
$created_entry = $feed->getEntries()->first();
|
||||
|
||||
$created_entry->setAuthorEmail($author_email);
|
||||
$created_entry->setAuthorName($author);
|
||||
$created_entry->setTitle($entry_title);
|
||||
@@ -1761,6 +1749,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
$this->assertEquals($author, $entry['author_name']);
|
||||
$this->assertEquals($entry_title, $entry['title']);
|
||||
$this->assertEquals($entry_subtitle, $entry['subtitle']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1779,15 +1768,8 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$title = 'Yellow title';
|
||||
$subtitle = 'Trololololo !';
|
||||
$entry_title = 'Superman';
|
||||
$entry_subtitle = 'Wonder Woman';
|
||||
$author = "W. Shakespeare";
|
||||
$author_email = "gontran.bonheur@gmail.com";
|
||||
|
||||
$created_item = $this->insertOneFeedItem(self::$DI['user']);
|
||||
$created_entry = $created_item->getEntry();
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
$created_entry = $feed->getEntries()->first();
|
||||
|
||||
$this->setToken(self::$token);
|
||||
$route = '/api/v1/feeds/entry/' . $created_entry->getId() . '/';
|
||||
@@ -1817,16 +1799,8 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$title = 'Yellow title';
|
||||
$subtitle = 'Trololololo !';
|
||||
$entry_title = 'Superman';
|
||||
$entry_subtitle = 'Wonder Woman';
|
||||
$author = "W. Shakespeare";
|
||||
$author_email = "gontran.bonheur@gmail.com";
|
||||
|
||||
$created_item = $this->insertOneFeedItem(self::$DI['user']);
|
||||
$created_entry = $created_item->getEntry();
|
||||
$created_feed = $created_entry->getFeed();
|
||||
$created_feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
$created_entry = $created_feed->getEntries()->first();
|
||||
|
||||
$created_feed->setCollection(self::$DI['collection_no_access']);
|
||||
|
||||
@@ -1858,9 +1832,8 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
$entry_title = 'Superman';
|
||||
$entry_subtitle = 'Wonder Woman';
|
||||
|
||||
$created_item = $this->insertOneFeedItem(self::$DI['user']);
|
||||
$created_entry = $created_item->getEntry();
|
||||
$created_feed = $created_entry->getFeed();
|
||||
$created_feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
$created_entry = $created_feed->getEntries()->first();
|
||||
$created_entry->setTitle($entry_title);
|
||||
$created_entry->setSubtitle($entry_subtitle);
|
||||
self::$DI['app']['EM']->persist($created_entry);
|
||||
@@ -1889,6 +1862,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
$this->assertEquals($entry_title, $entry['title']);
|
||||
$this->assertEquals($entry_subtitle, $entry['subtitle']);
|
||||
$found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1908,7 +1882,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
$this->setToken(self::$token);
|
||||
$route = '/api/v1/quarantine/list/';
|
||||
|
||||
$quarantineItemId = $this->getQuarantineItem()->getId();
|
||||
$quarantineItemId = self::$DI['lazaret_1']->getId();
|
||||
|
||||
$this->evaluateMethodNotAllowedRoute($route, ['POST', 'PUT', 'DELETE']);
|
||||
|
||||
@@ -1925,6 +1899,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
$this->evaluateGoodQuarantineItem($item);
|
||||
if ($item['id'] == $quarantineItemId) {
|
||||
$found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1940,7 +1915,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
{
|
||||
$this->setToken(self::$token);
|
||||
|
||||
$quarantineItemId = $this->getQuarantineItem()->getId();
|
||||
$quarantineItemId = self::$DI['lazaret_1']->getId();
|
||||
$route = '/api/v1/quarantine/item/' . $quarantineItemId . '/';
|
||||
|
||||
$this->evaluateMethodNotAllowedRoute($route, ['POST', 'PUT', 'DELETE']);
|
||||
@@ -1954,25 +1929,6 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
$this->assertEquals($quarantineItemId, $content['response']['quarantine_item']['id']);
|
||||
}
|
||||
|
||||
protected function getQuarantineItem()
|
||||
{
|
||||
$lazaretSession = new \Alchemy\Phrasea\Model\Entities\LazaretSession();
|
||||
self::$DI['app']['EM']->persist($lazaretSession);
|
||||
|
||||
$quarantineItem = null;
|
||||
$callback = function ($element, $visa, $code) use (&$quarantineItem) {
|
||||
$quarantineItem = $element;
|
||||
};
|
||||
|
||||
$tmpname = tempnam(sys_get_temp_dir(), 'test_quarantine');
|
||||
copy(__DIR__ . '/../../../../files/iphone_pic.jpg', $tmpname);
|
||||
|
||||
$file = File::buildFromPathfile($tmpname, self::$DI['collection'], self::$DI['app']);
|
||||
self::$DI['app']['border-manager']->process($lazaretSession, $file, $callback, Manager::FORCE_LAZARET);
|
||||
|
||||
return $quarantineItem;
|
||||
}
|
||||
|
||||
protected function evaluateGoodQuarantineItem($item)
|
||||
{
|
||||
$this->assertArrayHasKey('id', $item);
|
||||
|
@@ -29,25 +29,23 @@ class LightboxTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
{
|
||||
$this->authenticate(self::$DI['app']);
|
||||
|
||||
$baskets = $this->insertFiveBasket();
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_FIREFOX8MAC, self::$DI['app']);
|
||||
|
||||
$crawler = self::$DI['client']->request('GET', '/lightbox/');
|
||||
$this->assertEquals(200, self::$DI['client']->getResponse()->getStatusCode());
|
||||
$this->assertEquals('UTF-8', self::$DI['client']->getResponse()->getCharset());
|
||||
$this->assertEquals(5, $crawler->filter('div.basket_wrapper')->count());
|
||||
$this->assertCount(3, $crawler->filter('div.basket_wrapper'));
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_IE6, self::$DI['app']);
|
||||
|
||||
$crawler = self::$DI['client']->request('GET', '/lightbox/');
|
||||
$this->assertEquals(200, self::$DI['client']->getResponse()->getStatusCode());
|
||||
$this->assertEquals('UTF-8', self::$DI['client']->getResponse()->getCharset());
|
||||
$this->assertEquals($crawler->filter('div.basket_wrapper')->count(), count($baskets));
|
||||
$this->assertCount(3, $crawler->filter('div.basket_wrapper'));
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_IPHONE, self::$DI['app']);
|
||||
|
||||
$crawler = self::$DI['client']->request('GET', '/lightbox/');
|
||||
self::$DI['client']->request('GET', '/lightbox/');
|
||||
$this->assertEquals(200, self::$DI['client']->getResponse()->getStatusCode());
|
||||
$this->assertEquals('UTF-8', self::$DI['client']->getResponse()->getCharset());
|
||||
}
|
||||
@@ -56,7 +54,7 @@ class LightboxTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
{
|
||||
$this->logout(self::$DI['app']);
|
||||
|
||||
$Basket = $this->insertOneBasket();
|
||||
$Basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
$token = self::$DI['app']['tokens']->getUrlToken(\random::TYPE_VIEW, self::$DI['user_alt2']->get_id(), null, $Basket->getId());
|
||||
|
||||
self::$DI['client']->request('GET', '/lightbox/?LOG='.$token);
|
||||
@@ -67,7 +65,7 @@ class LightboxTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testAjaxNoteForm()
|
||||
{
|
||||
$basket = $this->insertOneValidationBasket();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 4);
|
||||
$basket_element = $basket->getELements()->first();
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_FIREFOX8MAC, self::$DI['app']);
|
||||
@@ -91,7 +89,7 @@ class LightboxTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testAjaxElement()
|
||||
{
|
||||
$basket_element = $this->insertOneBasketElement();
|
||||
$basket_element = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\BasketElement', 1);
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_FIREFOX8MAC, self::$DI['app']);
|
||||
|
||||
@@ -136,8 +134,9 @@ class LightboxTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
{
|
||||
$this->set_user_agent(self::USER_AGENT_FIREFOX8MAC, self::$DI['app']);
|
||||
|
||||
$item = $this->insertOneFeedItem(self::$DI['user']);
|
||||
$entry = $item->getEntry();
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
$entry = $feed->getEntries()->first();
|
||||
$item = $entry->getItems()->first();
|
||||
|
||||
$crawler = self::$DI['client']->request('GET', '/lightbox/ajax/LOAD_FEED_ITEM/' . $entry->getId() . '/' . $item->getId() . '/');
|
||||
$this->assertEquals(200, self::$DI['client']->getResponse()->getStatusCode());
|
||||
@@ -180,7 +179,7 @@ class LightboxTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
{
|
||||
$this->authenticate(self::$DI['app']);
|
||||
|
||||
$basket = $this->insertOneValidationBasket();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 4);
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_FIREFOX8MAC, self::$DI['app']);
|
||||
|
||||
@@ -205,7 +204,7 @@ class LightboxTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
{
|
||||
$this->authenticate(self::$DI['app']);
|
||||
|
||||
$basket = $this->insertOneBasket();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_FIREFOX8MAC, self::$DI['app']);
|
||||
|
||||
@@ -232,8 +231,8 @@ class LightboxTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_FIREFOX8MAC, self::$DI['app']);
|
||||
|
||||
$item = $this->insertOneFeedItem(self::$DI['user']);
|
||||
$entry = $item->getEntry();
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
$entry = $feed->getEntries()->first();
|
||||
|
||||
$crawler = self::$DI['client']->request('GET', '/lightbox/feeds/entry/' . $entry->getId() . '/');
|
||||
$this->assertEquals(200, self::$DI['client']->getResponse()->getStatusCode());
|
||||
@@ -254,20 +253,20 @@ class LightboxTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testAjaxReport()
|
||||
{
|
||||
$validationBasket = $this->insertOneValidationBasket();
|
||||
$validationBasket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 4);
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_FIREFOX8MAC, self::$DI['app']);
|
||||
$crawler = self::$DI['client']->request('GET', '/lightbox/ajax/LOAD_REPORT/' . $validationBasket->getId() . '/');
|
||||
self::$DI['client']->request('GET', '/lightbox/ajax/LOAD_REPORT/' . $validationBasket->getId() . '/');
|
||||
$this->assertEquals(200, self::$DI['client']->getResponse()->getStatusCode());
|
||||
$this->assertEquals('UTF-8', self::$DI['client']->getResponse()->getCharset());
|
||||
}
|
||||
|
||||
public function testAjaxSetNote()
|
||||
{
|
||||
$validationBasket = $this->insertOneValidationBasket();
|
||||
$validationBasket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 4);
|
||||
$validationBasketElement = $validationBasket->getElements()->first();
|
||||
|
||||
$crawler = self::$DI['client']->request('POST', '/lightbox/ajax/SET_NOTE/' . $validationBasketElement->getId() . '/');
|
||||
self::$DI['client']->request('POST', '/lightbox/ajax/SET_NOTE/' . $validationBasketElement->getId() . '/');
|
||||
$this->assertEquals(400, self::$DI['client']->getResponse()->getStatusCode());
|
||||
|
||||
$crawler = self::$DI['client']->request(
|
||||
@@ -287,7 +286,7 @@ class LightboxTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testAjaxSetAgreement()
|
||||
{
|
||||
$validationBasket = $this->insertOneValidationBasket();
|
||||
$validationBasket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 4);
|
||||
$validationBasketElement = $validationBasket->getElements()->first();
|
||||
|
||||
$crawler = self::$DI['client']->request(
|
||||
@@ -313,7 +312,7 @@ class LightboxTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testAjaxSetReleaseWithRegularBasket()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
|
||||
$crawler = self::$DI['client']->request('POST', '/lightbox/ajax/SET_RELEASE/' . $basket->getId() . '/');
|
||||
$this->assertEquals(200, self::$DI['client']->getResponse()->getStatusCode());
|
||||
@@ -325,16 +324,16 @@ class LightboxTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testAjaxSetReleaseWithRegularBasketWithValidation()
|
||||
{
|
||||
$validationBasket = $this->insertOneValidationBasket();
|
||||
$validationBasket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 4);
|
||||
|
||||
$this->mockNotificationDeliverer('Alchemy\Phrasea\Notification\Mail\MailInfoValidationDone');
|
||||
|
||||
foreach ($validationBasket->getElements() as $element) {
|
||||
$element->getUserValidationDatas(self::$DI['app']['authentication']->getUser(), self::$DI['app'])->setAgreement(true);
|
||||
$element->getUserValidationDatas(self::$DI['user'], self::$DI['app'])->setAgreement(true);
|
||||
break;
|
||||
}
|
||||
|
||||
$crawler = self::$DI['client']->request('POST', '/lightbox/ajax/SET_RELEASE/' . $validationBasket->getId() . '/');
|
||||
self::$DI['client']->request('POST', '/lightbox/ajax/SET_RELEASE/' . $validationBasket->getId() . '/');
|
||||
|
||||
$this->assertEquals(200, self::$DI['client']->getResponse()->getStatusCode(), sprintf('set note to element %s ', $validationBasket->getId()));
|
||||
$this->assertEquals('application/json', self::$DI['client']->getResponse()->headers->get('Content-type'));
|
||||
|
@@ -58,13 +58,10 @@ class OverviewTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testDatafilesRouteNotAuthenticatedIsOkInPublicFeed()
|
||||
{
|
||||
$this->insertOneFeedItem(self::$DI['user'], true, 1, self::$DI['record_1']);
|
||||
self::$DI['record_1']->move_to_collection(self::$DI['collection_no_access'], self::$DI['app']['phraseanet.appbox']);
|
||||
|
||||
self::$DI['client']->request('GET', '/datafiles/' . self::$DI['record_1']->get_sbas_id() . '/' . self::$DI['record_1']->get_record_id() . '/preview/');
|
||||
|
||||
self::$DI['record_5']->move_to_collection(self::$DI['collection_no_access'], self::$DI['app']['phraseanet.appbox']);
|
||||
self::$DI['client']->request('GET', '/datafiles/' . self::$DI['record_5']->get_sbas_id() . '/' . self::$DI['record_5']->get_record_id() . '/preview/');
|
||||
$this->assertEquals(200, self::$DI['client']->getResponse()->getStatusCode());
|
||||
self::$DI['record_1']->move_to_collection(self::$DI['collection'], self::$DI['app']['phraseanet.appbox']);
|
||||
self::$DI['record_5']->move_to_collection(self::$DI['collection'], self::$DI['app']['phraseanet.appbox']);
|
||||
}
|
||||
|
||||
public function testDatafilesRouteNotAuthenticatedUnknownSubdef()
|
||||
@@ -211,7 +208,9 @@ class OverviewTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testPermalinkRouteNotAuthenticatedIsOkInPublicFeed()
|
||||
{
|
||||
$item = $this->insertOneFeedItem(self::$DI['user'], true);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 2);
|
||||
$entry = $feed->getEntries()->first();
|
||||
$item = $entry->getItems()->first();
|
||||
|
||||
self::$DI['app']['authentication']->closeAccount();
|
||||
self::$DI['client']->request('GET', '/permalink/v1/' . $item->getRecord(self::$DI['app'])->get_sbas_id() . '/' . $item->getRecord(self::$DI['app'])->get_record_id() . '/preview/');
|
||||
|
@@ -250,25 +250,6 @@ class FailureManagerTest extends \PhraseanetTestCase
|
||||
->method('getClientIp')
|
||||
->will($this->returnValue($ip));
|
||||
|
||||
for ($i = 0; $i < 10; $i++) {
|
||||
$failure = new AuthFailure();
|
||||
$failure->setIp($ip);
|
||||
$failure->setUsername($username);
|
||||
$failure->setLocked(false);
|
||||
$failure->setCreated(new \DateTime('-3 months'));
|
||||
self::$DI['app']['EM']->persist($failure);
|
||||
}
|
||||
for ($i = 0; $i < 2; $i++) {
|
||||
$failure = new AuthFailure();
|
||||
$failure->setIp($ip);
|
||||
$failure->setUsername($username);
|
||||
$failure->setLocked(false);
|
||||
$failure->setCreated(new \DateTime('-1 months'));
|
||||
self::$DI['app']['EM']->persist($failure);
|
||||
}
|
||||
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
$this->assertCount(10, self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\AuthFailure')
|
||||
->findOldFailures());
|
||||
$this->assertCount(12, self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\AuthFailure')
|
||||
|
@@ -38,8 +38,7 @@ class Sha256Test extends \PhraseanetTestCase
|
||||
*/
|
||||
public function testCheck()
|
||||
{
|
||||
$session = new \Alchemy\Phrasea\Model\Entities\LazaretSession();
|
||||
self::$DI['app']['EM']->persist($session);
|
||||
$session = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\LazaretSession', 1);
|
||||
|
||||
self::$DI['app']['border-manager']->process($session, File::buildFromPathfile($this->media->getFile()->getPathname(), self::$DI['collection'], self::$DI['app']), null, Manager::FORCE_RECORD);
|
||||
|
||||
@@ -48,13 +47,11 @@ class Sha256Test extends \PhraseanetTestCase
|
||||
$mock
|
||||
->expects($this->once())
|
||||
->method('getSha256')
|
||||
->will($this->returnValue($this->media->getHash('sha256', __DIR__ . '/../../../../../files/test001.jpg')))
|
||||
->will($this->returnValue('7fad283de349b903c850548cda65cf2d86d24c4e3856cdc2b97e47430494b8c8'))
|
||||
;
|
||||
|
||||
$response = $this->object->check(self::$DI['app']['EM'], $mock);
|
||||
|
||||
$this->assertInstanceOf('\\Alchemy\\Phrasea\\Border\\Checker\\Response', $response);
|
||||
|
||||
$this->assertFalse($response->isOk());
|
||||
}
|
||||
|
||||
|
@@ -54,9 +54,7 @@ class ManagerTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
{
|
||||
parent::setUp();
|
||||
$this->object = new Manager(self::$DI['app']);
|
||||
$this->session = new \Alchemy\Phrasea\Model\Entities\LazaretSession();
|
||||
|
||||
self::$DI['app']['EM']->persist($this->session);
|
||||
$this->session = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\LazaretSession', 1);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -8,8 +8,6 @@ class TaskListTest extends \PhraseanetTestCase
|
||||
{
|
||||
public function testRunWithoutProblems()
|
||||
{
|
||||
$this->insertTwoTasks();
|
||||
|
||||
$input = $this->getMock('Symfony\Component\Console\Input\InputInterface');
|
||||
$output = $this->getMock('Symfony\Component\Console\Output\OutputInterface');
|
||||
|
||||
|
@@ -9,21 +9,13 @@ class TaskRunTest extends \PhraseanetTestCase
|
||||
{
|
||||
public function testRunWithoutProblems()
|
||||
{
|
||||
$task = new Task();
|
||||
$task
|
||||
->setName('Task')
|
||||
->setJobId('Null');
|
||||
|
||||
self::$DI['cli']['EM']->persist($task);
|
||||
self::$DI['cli']['EM']->flush();
|
||||
|
||||
$input = $this->getMock('Symfony\Component\Console\Input\InputInterface');
|
||||
$output = $this->getMock('Symfony\Component\Console\Output\OutputInterface');
|
||||
|
||||
$input->expects($this->any())
|
||||
->method('getArgument')
|
||||
->with('task_id')
|
||||
->will($this->returnValue($task->getId()));
|
||||
->will($this->returnValue(1));
|
||||
|
||||
$command = new TaskRun();
|
||||
$command->setContainer(self::$DI['cli']);
|
||||
|
@@ -9,21 +9,13 @@ class TaskStartTest extends \PhraseanetTestCase
|
||||
{
|
||||
public function testRunWithoutProblems()
|
||||
{
|
||||
$task = new Task();
|
||||
$task
|
||||
->setName('Task')
|
||||
->setJobId('Null');
|
||||
|
||||
self::$DI['cli']['EM']->persist($task);
|
||||
self::$DI['cli']['EM']->flush();
|
||||
|
||||
$input = $this->getMock('Symfony\Component\Console\Input\InputInterface');
|
||||
$output = $this->getMock('Symfony\Component\Console\Output\OutputInterface');
|
||||
|
||||
$input->expects($this->any())
|
||||
->method('getArgument')
|
||||
->with('task_id')
|
||||
->will($this->returnValue($task->getId()));
|
||||
->will($this->returnValue(1));
|
||||
|
||||
$command = new TaskStart();
|
||||
$command->setContainer(self::$DI['cli']);
|
||||
|
@@ -9,21 +9,13 @@ class TaskStateTest extends \PhraseanetTestCase
|
||||
{
|
||||
public function testRunWithoutProblems()
|
||||
{
|
||||
$task = new Task();
|
||||
$task
|
||||
->setName('Task')
|
||||
->setJobId('Null');
|
||||
|
||||
self::$DI['cli']['EM']->persist($task);
|
||||
self::$DI['cli']['EM']->flush();
|
||||
|
||||
$input = $this->getMock('Symfony\Component\Console\Input\InputInterface');
|
||||
$output = $this->getMock('Symfony\Component\Console\Output\OutputInterface');
|
||||
|
||||
$input->expects($this->any())
|
||||
->method('getArgument')
|
||||
->with('task_id')
|
||||
->will($this->returnValue($task->getId()));
|
||||
->will($this->returnValue(1));
|
||||
|
||||
$command = new TaskState();
|
||||
$command->setContainer(self::$DI['cli']);
|
||||
|
@@ -9,21 +9,13 @@ class TaskStopTest extends \PhraseanetTestCase
|
||||
{
|
||||
public function testRunWithoutProblems()
|
||||
{
|
||||
$task = new Task();
|
||||
$task
|
||||
->setName('Task')
|
||||
->setJobId('Null');
|
||||
|
||||
self::$DI['cli']['EM']->persist($task);
|
||||
self::$DI['cli']['EM']->flush();
|
||||
|
||||
$input = $this->getMock('Symfony\Component\Console\Input\InputInterface');
|
||||
$output = $this->getMock('Symfony\Component\Console\Output\OutputInterface');
|
||||
|
||||
$input->expects($this->any())
|
||||
->method('getArgument')
|
||||
->with('task_id')
|
||||
->will($this->returnValue($task->getId()));
|
||||
->will($this->returnValue(1));
|
||||
|
||||
$command = new TaskStop();
|
||||
$command->setContainer(self::$DI['cli']);
|
||||
|
@@ -17,7 +17,7 @@ class Module_Admin_Route_PublicationTest extends \PhraseanetAuthenticatedWebTest
|
||||
|
||||
foreach ($feeds as $feed) {
|
||||
$this->assertRegExp('/\/admin\/publications\/feed\/' . $feed->getId() . '/', $pageContent);
|
||||
if ($feed->getCollection() != null) {
|
||||
if ($feed->getCollection(self::$DI['app']) != null) {
|
||||
$this->assertRegExp('/' . $feed->getCollection()->get_label(self::$DI['app']['locale']) . '/', $pageContent);
|
||||
}
|
||||
if ($feed->isOwner(self::$DI['user'])) {
|
||||
@@ -42,17 +42,16 @@ class Module_Admin_Route_PublicationTest extends \PhraseanetAuthenticatedWebTest
|
||||
|
||||
public function testGetFeed()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user'], "salut");
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
$crawler = self::$DI['client']->request('GET', '/admin/publications/feed/' . $feed->getId() . '/');
|
||||
$this->assertTrue(self::$DI['client']->getResponse()->isOk());
|
||||
$this->assertEquals(1, $crawler->filterXPath("//form[@action='/admin/publications/feed/" . $feed->getId() . "/update/']")->count());
|
||||
$this->assertEquals(1, $crawler->filterXPath("//input[@value='salut']")->count());
|
||||
$this->assertEquals(1, $crawler->filterXPath("//input[@value='Feed test, YOLO!']")->count());
|
||||
}
|
||||
|
||||
public function testUpdatedFeedException()
|
||||
{
|
||||
|
||||
$feed = $this->insertOneFeed(self::$DI['user']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
|
||||
self::$DI['client']->request("POST", "/admin/publications/feed/" . $feed->getId() . "/update/", [
|
||||
'title' => 'test'
|
||||
@@ -76,7 +75,7 @@ class Module_Admin_Route_PublicationTest extends \PhraseanetAuthenticatedWebTest
|
||||
|
||||
public function testUpdatedFeedOwner()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
|
||||
self::$DI['client']->request("POST", "/admin/publications/feed/" . $feed->getId() . "/update/", [
|
||||
'title' => 'test'
|
||||
@@ -109,7 +108,7 @@ class Module_Admin_Route_PublicationTest extends \PhraseanetAuthenticatedWebTest
|
||||
|
||||
public function testIconUploadErrorOwner()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user_alt1']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 3);
|
||||
|
||||
self::$DI['client']->request("POST", "/admin/publications/feed/" . $feed->getId() . "/iconupload/", [], [], ['HTTP_ACCEPT' => 'application/json']);
|
||||
|
||||
@@ -120,7 +119,7 @@ class Module_Admin_Route_PublicationTest extends \PhraseanetAuthenticatedWebTest
|
||||
|
||||
public function testIconUploadErrorFileData()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
|
||||
self::$DI['client']->request(
|
||||
"POST"
|
||||
@@ -138,7 +137,7 @@ class Module_Admin_Route_PublicationTest extends \PhraseanetAuthenticatedWebTest
|
||||
|
||||
public function testIconUploadErrorFileType()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
|
||||
self::$DI['client']->request(
|
||||
"POST"
|
||||
@@ -156,7 +155,7 @@ class Module_Admin_Route_PublicationTest extends \PhraseanetAuthenticatedWebTest
|
||||
|
||||
public function testIconUpload()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
|
||||
$files = [
|
||||
'files' => [
|
||||
@@ -184,7 +183,7 @@ class Module_Admin_Route_PublicationTest extends \PhraseanetAuthenticatedWebTest
|
||||
|
||||
public function testAddPublisher()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
|
||||
self::$DI['client']->request("POST", "/admin/publications/feed/" . $feed->getId() . "/addpublisher/", [
|
||||
'usr_id' => self::$DI['user_alt1']->get_id()
|
||||
@@ -206,7 +205,7 @@ class Module_Admin_Route_PublicationTest extends \PhraseanetAuthenticatedWebTest
|
||||
|
||||
public function testAddPublisherException()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
|
||||
self::$DI['client']->request("POST", "/admin/publications/feed/" . $feed->getId() . "/addpublisher/");
|
||||
|
||||
@@ -222,7 +221,7 @@ class Module_Admin_Route_PublicationTest extends \PhraseanetAuthenticatedWebTest
|
||||
|
||||
public function testRemovePublisher()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
|
||||
self::$DI['client']->request("POST", "/admin/publications/feed/" . $feed->getId() . "/removepublisher/", [
|
||||
'usr_id' => self::$DI['user_alt1']->get_id()
|
||||
@@ -244,7 +243,7 @@ class Module_Admin_Route_PublicationTest extends \PhraseanetAuthenticatedWebTest
|
||||
|
||||
public function testRemovePublisherException()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
|
||||
self::$DI['client']->request("POST", "/admin/publications/feed/" . $feed->getId() . "/removepublisher/");
|
||||
|
||||
@@ -262,7 +261,7 @@ class Module_Admin_Route_PublicationTest extends \PhraseanetAuthenticatedWebTest
|
||||
|
||||
public function testDeleteFeed()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
|
||||
self::$DI['client']->request("POST", "/admin/publications/feed/" . $feed->getId() . "/delete/");
|
||||
|
||||
|
@@ -15,15 +15,6 @@ class TaskManagerTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testRootListTasks()
|
||||
{
|
||||
foreach (self::$DI['app']['task-manager.available-jobs'] as $job) {
|
||||
$task = new Task();
|
||||
$task
|
||||
->setName('task')
|
||||
->setJobId(get_class($job));
|
||||
self::$DI['app']['EM']->persist($task);
|
||||
}
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
self::$DI['client']->request('GET', '/admin/task-manager/tasks');
|
||||
$this->assertTrue(self::$DI['client']->getResponse()->isOk());
|
||||
}
|
||||
@@ -84,43 +75,22 @@ class TaskManagerTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testGetTaskLog()
|
||||
{
|
||||
$task = new Task();
|
||||
$task
|
||||
->setName('task')
|
||||
->setJobId('Alchemy\Phrasea\TaskManager\Job\NullJob');
|
||||
self::$DI['app']['EM']->persist($task);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
self::$DI['client']->request('GET', '/admin/task-manager/task/'.$task->getId().'/log');
|
||||
self::$DI['client']->request('GET', '/admin/task-manager/task/1/log');
|
||||
$this->assertEquals(200, self::$DI['client']->getResponse()->getStatusCode());
|
||||
}
|
||||
|
||||
public function testPostTaskDelete()
|
||||
{
|
||||
$task = new Task();
|
||||
$task
|
||||
->setName('task')
|
||||
->setJobId('Alchemy\Phrasea\TaskManager\Job\NullJob');
|
||||
self::$DI['app']['EM']->persist($task);
|
||||
self::$DI['app']['EM']->flush();
|
||||
$taskId = $task->getId();
|
||||
|
||||
self::$DI['client']->request('POST', '/admin/task-manager/task/'.$taskId.'/delete');
|
||||
self::$DI['client']->request('POST', '/admin/task-manager/task/1/delete');
|
||||
$this->assertEquals(302, self::$DI['client']->getResponse()->getStatusCode());
|
||||
$this->assertEquals('/admin/task-manager/tasks', self::$DI['client']->getResponse()->headers->get('location'));
|
||||
|
||||
$this->assertNull(self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Task', $taskId));
|
||||
$this->assertNull(self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Task', 1));
|
||||
}
|
||||
|
||||
public function testPostTaskStart()
|
||||
{
|
||||
$task = new Task();
|
||||
$task
|
||||
->setName('task')
|
||||
->setStatus(Task::STATUS_STOPPED)
|
||||
->setJobId('Alchemy\Phrasea\TaskManager\Job\NullJob');
|
||||
self::$DI['app']['EM']->persist($task);
|
||||
self::$DI['app']['EM']->flush();
|
||||
$task = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Task', 1);
|
||||
|
||||
self::$DI['client']->request('POST', '/admin/task-manager/task/'.$task->getId().'/start');
|
||||
$this->assertEquals(302, self::$DI['client']->getResponse()->getStatusCode());
|
||||
@@ -131,13 +101,7 @@ class TaskManagerTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testPostTaskStop()
|
||||
{
|
||||
$task = new Task();
|
||||
$task
|
||||
->setName('task')
|
||||
->setStatus(Task::STATUS_STARTED)
|
||||
->setJobId('Alchemy\Phrasea\TaskManager\Job\NullJob');
|
||||
self::$DI['app']['EM']->persist($task);
|
||||
self::$DI['app']['EM']->flush();
|
||||
$task = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Task', 1);
|
||||
|
||||
self::$DI['client']->request('POST', '/admin/task-manager/task/'.$task->getId().'/stop');
|
||||
$this->assertEquals(302, self::$DI['client']->getResponse()->getStatusCode());
|
||||
@@ -148,13 +112,7 @@ class TaskManagerTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testPostResetCrashes()
|
||||
{
|
||||
$task = new Task();
|
||||
$task
|
||||
->setName('task')
|
||||
->setCrashed(30)
|
||||
->setJobId('Alchemy\Phrasea\TaskManager\Job\NullJob');
|
||||
self::$DI['app']['EM']->persist($task);
|
||||
self::$DI['app']['EM']->flush();
|
||||
$task = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Task', 1);
|
||||
|
||||
self::$DI['client']->request('POST', '/admin/task-manager/task/'.$task->getId().'/resetcrashcounter');
|
||||
$this->assertEquals(200, self::$DI['client']->getResponse()->getStatusCode());
|
||||
@@ -165,12 +123,7 @@ class TaskManagerTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testPostSaveTask()
|
||||
{
|
||||
$task = new Task();
|
||||
$task
|
||||
->setName('task')
|
||||
->setJobId('Alchemy\Phrasea\TaskManager\Job\NullJob');
|
||||
self::$DI['app']['EM']->persist($task);
|
||||
self::$DI['app']['EM']->flush();
|
||||
$task = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Task', 1);
|
||||
|
||||
$name = 'renamed';
|
||||
$period = 366;
|
||||
@@ -198,14 +151,7 @@ class TaskManagerTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testGetTask()
|
||||
{
|
||||
$task = new Task();
|
||||
$task
|
||||
->setName('task')
|
||||
->setJobId('Alchemy\Phrasea\TaskManager\Job\NullJob');
|
||||
self::$DI['app']['EM']->persist($task);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
self::$DI['client']->request('GET', '/admin/task-manager/task/'.$task->getId());
|
||||
self::$DI['client']->request('GET', '/admin/task-manager/task/1');
|
||||
$this->assertEquals(200, self::$DI['client']->getResponse()->getStatusCode());
|
||||
}
|
||||
|
||||
@@ -234,13 +180,6 @@ class TaskManagerTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testPostTaskFacility()
|
||||
{
|
||||
$task = new Task();
|
||||
$task
|
||||
->setName('task')
|
||||
->setJobId('Alchemy\Phrasea\TaskManager\Job\NullJob');
|
||||
self::$DI['app']['EM']->persist($task);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
$job = $this->getMock('Alchemy\Phrasea\TaskManager\Job\JobInterface');
|
||||
$editor = $this->getMock('Alchemy\Phrasea\TaskManager\Editor\EditorInterface');
|
||||
|
||||
@@ -257,19 +196,12 @@ class TaskManagerTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
->method('create')
|
||||
->will($this->returnValue($job));
|
||||
|
||||
self::$DI['client']->request('POST', '/admin/task-manager/task/'.$task->getId().'/facility');
|
||||
self::$DI['client']->request('POST', '/admin/task-manager/task/1/facility');
|
||||
$this->assertEquals(200, self::$DI['client']->getResponse()->getStatusCode());
|
||||
}
|
||||
|
||||
public function testPostTaskXmlFromForm()
|
||||
{
|
||||
$task = new Task();
|
||||
$task
|
||||
->setName('task')
|
||||
->setJobId('Alchemy\Phrasea\TaskManager\Job\NullJob');
|
||||
self::$DI['app']['EM']->persist($task);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
$job = $this->getMock('Alchemy\Phrasea\TaskManager\Job\JobInterface');
|
||||
$editor = $this->getMock('Alchemy\Phrasea\TaskManager\Editor\EditorInterface');
|
||||
|
||||
@@ -286,7 +218,7 @@ class TaskManagerTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
->method('create')
|
||||
->will($this->returnValue($job));
|
||||
|
||||
self::$DI['client']->request('POST', '/admin/task-manager/task/'.$task->getId().'/xml-from-form');
|
||||
self::$DI['client']->request('POST', '/admin/task-manager/task/1/xml-from-form');
|
||||
$this->assertEquals(200, self::$DI['client']->getResponse()->getStatusCode());
|
||||
}
|
||||
}
|
||||
|
@@ -63,13 +63,11 @@ class ControllerUsersTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$user = \User_Adapter::create(self::$DI['app'], $username, "test", $username . "@email.com", false);
|
||||
|
||||
$base_id = self::$DI['collection']->get_base_id();
|
||||
$_POST['values'] = 'canreport_' . $base_id . '=1&manage_' . self::$DI['collection']->get_base_id() . '=1&canpush_' . self::$DI['collection']->get_base_id() . '=1';
|
||||
$_POST['user_infos'] = "email=" .$username . "-lambda@email.com";
|
||||
|
||||
self::$DI['client']->request('POST', '/admin/users/rights/apply/', [
|
||||
'users' => $user->get_id(),
|
||||
'values' => 'canreport_' . $base_id . '=1&manage_' . self::$DI['collection']->get_base_id() . '=1&canpush_' . self::$DI['collection']->get_base_id() . '=1',
|
||||
'user_infos' => "user_infos[email]=" . $user->get_email(),
|
||||
'user_infos' => "email=" . $username . "-lambda@email.com",
|
||||
]);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
$this->assertTrue($response->isOK());
|
||||
|
@@ -43,7 +43,7 @@ class BasketsTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
*/
|
||||
public function testAddElementToBasket()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
self::$DI['client']->request("POST", "/client/baskets/add-element/", [
|
||||
'courChuId' => $basket->getId(),
|
||||
'sbas' => self::$DI['record_1']->get_sbas_id(),
|
||||
@@ -59,15 +59,14 @@ class BasketsTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
*/
|
||||
public function testDeleteBasket()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
self::$DI['client']->request("POST", "/client/baskets/delete/", [
|
||||
'courChuId' => $basket->getId()
|
||||
'courChuId' => 1
|
||||
]);
|
||||
$this->assertTrue(self::$DI['client']->getResponse()->isRedirect());
|
||||
try {
|
||||
$basket = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Basket')->find($basket->getId());
|
||||
$basket = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Basket')->find(1);
|
||||
$this->fail('Basket is not deleted');
|
||||
} catch (\exception $e) {
|
||||
} catch (\Exception $e) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -77,19 +76,8 @@ class BasketsTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
*/
|
||||
public function testDeleteBasketElement()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$record = self::$DI['record_1'];
|
||||
|
||||
$basketElement = new \Alchemy\Phrasea\Model\Entities\BasketElement();
|
||||
$basketElement->setBasket($basket);
|
||||
$basketElement->setRecord($record);
|
||||
$basketElement->setLastInBasket();
|
||||
|
||||
$basket->addElement($basketElement);
|
||||
|
||||
self::$DI['app']['EM']->persist($basket);
|
||||
self::$DI['app']['EM']->flush();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
$basketElement = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\BasketElement', 1);
|
||||
|
||||
self::$DI['client']->request("POST", "/client/baskets/delete-element/", [
|
||||
'p0' => $basketElement->getId()
|
||||
|
@@ -38,18 +38,21 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$query = self::$DI['app']['EM']->createQuery('SELECT COUNT(b.id) FROM \Alchemy\Phrasea\Model\Entities\Basket b');
|
||||
$count = $query->getSingleScalarResult();
|
||||
|
||||
$this->assertEquals(1, $count);
|
||||
$this->assertEquals(5, $count);
|
||||
$this->assertEquals(302, $response->getStatusCode());
|
||||
|
||||
$query = self::$DI['app']['EM']->createQuery('SELECT b FROM \Alchemy\Phrasea\Model\Entities\Basket b');
|
||||
$result = $query->getResult();
|
||||
|
||||
$basket = array_shift($result);
|
||||
$basket = array_pop($result);
|
||||
$this->assertEquals(2, $basket->getElements()->count());
|
||||
}
|
||||
|
||||
public function testRootPostJSON()
|
||||
{
|
||||
$query = self::$DI['app']['EM']->createQuery('SELECT COUNT(b.id) FROM \Alchemy\Phrasea\Model\Entities\Basket b');
|
||||
$count = $query->getSingleScalarResult();
|
||||
|
||||
$route = '/prod/baskets/';
|
||||
|
||||
self::$DI['client']->request(
|
||||
@@ -69,10 +72,7 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
$query = self::$DI['app']['EM']->createQuery('SELECT COUNT(b.id) FROM \Alchemy\Phrasea\Model\Entities\Basket b');
|
||||
|
||||
$count = $query->getSingleScalarResult();
|
||||
|
||||
$this->assertEquals(1, $count);
|
||||
|
||||
$this->assertEquals($count + 1, $query->getSingleScalarResult());
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
}
|
||||
|
||||
@@ -97,8 +97,7 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testBasketGet()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
$route = sprintf('/prod/baskets/%s/', $basket->getId());
|
||||
$route = '/prod/baskets/1/';
|
||||
self::$DI['client']->request('GET', $route);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
@@ -106,7 +105,7 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testBasketGetAccessDenied()
|
||||
{
|
||||
$basket = $this->insertOneBasket(self::$DI['user_alt1']);
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 3);
|
||||
$route = sprintf('/prod/baskets/%s/', $basket->getId());
|
||||
self::$DI['client']->request('GET', $route);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
@@ -115,7 +114,7 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testBasketDeleteElementPost()
|
||||
{
|
||||
$basketElement = $this->insertOneBasketElement();
|
||||
$basketElement = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\BasketElement', 1);
|
||||
$basket = $basketElement->getBasket();
|
||||
|
||||
$this->assertEquals(1, $basket->getElements()->count());
|
||||
@@ -132,19 +131,8 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testBasketDeldeteElementPostJSON()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$record = self::$DI['record_1'];
|
||||
|
||||
$basket_element = new \Alchemy\Phrasea\Model\Entities\BasketElement();
|
||||
$basket_element->setBasket($basket);
|
||||
$basket_element->setRecord($record);
|
||||
$basket_element->setLastInBasket();
|
||||
|
||||
$basket->addElement($basket_element);
|
||||
|
||||
self::$DI['app']['EM']->persist($basket);
|
||||
self::$DI['app']['EM']->flush();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
$basket_element = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\BasketElement', 1);
|
||||
|
||||
$route = sprintf(
|
||||
"/prod/baskets/%s/delete/%s/", $basket->getId(), $basket_element->getId()
|
||||
@@ -163,7 +151,7 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testBasketDeletePostUnauthorized()
|
||||
{
|
||||
$basket = $this->insertOneBasket(self::$DI['user_alt1']);
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 3);
|
||||
$route = sprintf('/prod/baskets/%s/delete/', $basket->getId());
|
||||
self::$DI['client']->request('POST', $route);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
@@ -171,37 +159,34 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$this->assertEquals(403, $response->getStatusCode());
|
||||
$query = self::$DI['app']['EM']->createQuery('SELECT COUNT(b.id) FROM \Alchemy\Phrasea\Model\Entities\Basket b');
|
||||
$count = $query->getSingleScalarResult();
|
||||
$this->assertEquals(1, $count);
|
||||
$this->assertEquals(4, $count);
|
||||
}
|
||||
|
||||
public function testBasketDeletePost()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
$route = sprintf('/prod/baskets/%s/delete/', $basket->getId());
|
||||
$route = '/prod/baskets/1/delete/';
|
||||
self::$DI['client']->request('POST', $route);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
$query = self::$DI['app']['EM']->createQuery('SELECT COUNT(b.id) FROM \Alchemy\Phrasea\Model\Entities\Basket b');
|
||||
$count = $query->getSingleScalarResult();
|
||||
$this->assertEquals(0, $count);
|
||||
$this->assertEquals(3, $count);
|
||||
$this->assertEquals(302, $response->getStatusCode());
|
||||
}
|
||||
|
||||
public function testBasketDeletePostJSON()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
$route = sprintf('/prod/baskets/%s/delete/', $basket->getId());
|
||||
$route = '/prod/baskets/1/delete/';
|
||||
self::$DI['client']->request('POST', $route, [], [], ["HTTP_ACCEPT" => "application/json"]);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
$query = self::$DI['app']['EM']->createQuery('SELECT COUNT(b.id) FROM \Alchemy\Phrasea\Model\Entities\Basket b');
|
||||
$count = $query->getSingleScalarResult();
|
||||
$this->assertEquals(0, $count);
|
||||
$this->assertEquals(3, $count);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
}
|
||||
|
||||
public function testBasketUpdatePost()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
$route = sprintf('/prod/baskets/%s/update/', $basket->getId());
|
||||
|
||||
self::$DI['client']->request(
|
||||
@@ -218,7 +203,7 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testBasketUpdatePostJSON()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
$route = sprintf('/prod/baskets/%s/update/', $basket->getId());
|
||||
|
||||
self::$DI['client']->request(
|
||||
@@ -237,7 +222,7 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testReorderGet()
|
||||
{
|
||||
$basket = $this->insertOneBasketEnv();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 4);
|
||||
|
||||
$route = sprintf("/prod/baskets/%s/reorder/", $basket->getId());
|
||||
|
||||
@@ -253,8 +238,7 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testBasketUpdateGet()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
$route = sprintf('/prod/baskets/%s/update/', $basket->getId());
|
||||
|
||||
$crawler = self::$DI['client']->request(
|
||||
@@ -276,7 +260,7 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testBasketArchivedPost()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
$route = sprintf('/prod/baskets/%s/archive/?archive=1', $basket->getId());
|
||||
self::$DI['client']->request('POST', $route);
|
||||
$this->assertTrue($basket->getArchived());
|
||||
@@ -290,8 +274,7 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testBasketArchivedPostJSON()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
$route = sprintf('/prod/baskets/%s/archive/?archive=1', $basket->getId());
|
||||
|
||||
self::$DI['client']->request(
|
||||
@@ -317,8 +300,7 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testAddElementPost()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
$route = sprintf('/prod/baskets/%s/addElements/', $basket->getId());
|
||||
|
||||
$records = [
|
||||
@@ -337,7 +319,7 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
$this->assertEquals(302, $response->getStatusCode());
|
||||
$this->assertEquals(2, $basket->getElements()->count());
|
||||
$this->assertCount(2, $basket->getElements());
|
||||
}
|
||||
|
||||
public function testAddElementToValidationPost()
|
||||
@@ -345,37 +327,13 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$datas = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\ValidationData')->findAll();
|
||||
$countDatas = count($datas);
|
||||
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$validationSession = new \Alchemy\Phrasea\Model\Entities\ValidationSession();
|
||||
|
||||
$expires = new \DateTime();
|
||||
$expires->modify('+1 week');
|
||||
|
||||
$validationSession->setExpires($expires);
|
||||
$validationSession->setInitiator(self::$DI['user']);
|
||||
|
||||
self::$DI['app']['EM']->persist($validationSession);
|
||||
|
||||
$basket->setValidation($validationSession);
|
||||
|
||||
$validationSession->setBasket($basket);
|
||||
|
||||
$validationParticipant = new \Alchemy\Phrasea\Model\Entities\ValidationParticipant();
|
||||
$validationParticipant->setSession($validationSession);
|
||||
$validationParticipant->setUser(self::$DI['user_alt1']);
|
||||
|
||||
self::$DI['app']['EM']->persist($validationParticipant);
|
||||
|
||||
$validationSession->addParticipant($validationParticipant);
|
||||
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 4);
|
||||
$this->assertCount(2, $basket->getElements());
|
||||
$route = sprintf('/prod/baskets/%s/addElements/', $basket->getId());
|
||||
|
||||
$records = [
|
||||
self::$DI['record_1']->get_serialize_key(),
|
||||
self::$DI['record_2']->get_serialize_key(),
|
||||
self::$DI['record_3']->get_serialize_key(),
|
||||
self::$DI['record_4']->get_serialize_key(),
|
||||
' ',
|
||||
'42',
|
||||
'abhak',
|
||||
@@ -389,16 +347,15 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
$this->assertEquals(302, $response->getStatusCode());
|
||||
$this->assertEquals(2, $basket->getElements()->count());
|
||||
$this->assertCount(4, $basket->getElements());
|
||||
$datas = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\ValidationData')->findAll();
|
||||
$this->assertTrue($countDatas < count($datas), 'assert that ' . count($datas) . ' > ' . $countDatas);
|
||||
}
|
||||
|
||||
public function testAddElementPostJSON()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$route = sprintf('/prod/baskets/%s/addElements/', $basket->getId());
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
$route = '/prod/baskets/1/addElements/';
|
||||
|
||||
$records = [
|
||||
self::$DI['record_1']->get_serialize_key(),
|
||||
@@ -407,28 +364,18 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
$lst = implode(';', $records);
|
||||
|
||||
self::$DI['client']->request(
|
||||
'POST', $route, [
|
||||
'lst' => $lst
|
||||
], [], [
|
||||
"HTTP_ACCEPT" => "application/json"
|
||||
]
|
||||
);
|
||||
|
||||
self::$DI['client']->request('POST', $route, ['lst' => $lst], [], ["HTTP_ACCEPT" => "application/json"]);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
|
||||
$this->assertEquals(2, $basket->getElements()->count());
|
||||
}
|
||||
|
||||
public function testRouteStealElements()
|
||||
{
|
||||
$BasketElement = $this->insertOneBasketElement();
|
||||
$BasketElement = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\BasketElement', 1);
|
||||
|
||||
$Basket_1 = $BasketElement->getBasket();
|
||||
|
||||
$Basket_2 = $this->insertOneBasket();
|
||||
$Basket_2 = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 2);
|
||||
|
||||
$route = sprintf('/prod/baskets/%s/stealElements/', $Basket_2->getId());
|
||||
|
||||
@@ -448,11 +395,11 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testRouteStealElementsJson()
|
||||
{
|
||||
$BasketElement = $this->insertOneBasketElement();
|
||||
$BasketElement = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\BasketElement', 1);
|
||||
|
||||
$Basket_1 = $BasketElement->getBasket();
|
||||
|
||||
$Basket_2 = $this->insertOneBasket();
|
||||
$Basket_2 = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 2);
|
||||
|
||||
$route = sprintf('/prod/baskets/%s/stealElements/', $Basket_2->getId());
|
||||
|
||||
@@ -481,7 +428,7 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testRemoveBasket()
|
||||
{
|
||||
$basket = $this->insertOneBasketEnv();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 4);
|
||||
|
||||
$route = sprintf('/prod/baskets/%s/delete/', $basket->getId());
|
||||
self::$DI['client']->request('POST', $route, [], [], ["HTTP_ACCEPT" => "application/json"]);
|
||||
@@ -500,12 +447,12 @@ class ControllerBasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$this->assertEquals(0, $query->getSingleScalarResult());
|
||||
|
||||
$query = self::$DI['app']['EM']->createQuery('SELECT COUNT(b.id) FROM \Alchemy\Phrasea\Model\Entities\BasketElement b');
|
||||
$this->assertEquals(0, $query->getSingleScalarResult());
|
||||
$this->assertEquals(1, $query->getSingleScalarResult());
|
||||
|
||||
$query = self::$DI['app']['EM']->createQuery('SELECT COUNT(v.id) FROM \Alchemy\Phrasea\Model\Entities\ValidationSession v');
|
||||
$this->assertEquals(0, $query->getSingleScalarResult());
|
||||
|
||||
$query = self::$DI['app']['EM']->createQuery('SELECT COUNT(b.id) FROM \Alchemy\Phrasea\Model\Entities\Basket b');
|
||||
$this->assertEquals(0, $query->getSingleScalarResult());
|
||||
$this->assertEquals(3, $query->getSingleScalarResult());
|
||||
}
|
||||
}
|
||||
|
@@ -42,13 +42,8 @@ class BridgeApplication extends \PhraseanetAuthenticatedWebTestCase
|
||||
*/
|
||||
public function testManager()
|
||||
{
|
||||
$accounts = \Bridge_Account::get_accounts_by_user(self::$DI['app'], self::$DI['user']);
|
||||
$usr_id = self::$DI['user']->get_id();
|
||||
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$crawler = self::$DI['client']->request('POST', '/prod/bridge/manager/', ['ssel' => $basket->getId()]);
|
||||
$pageContent = self::$DI['client']->getResponse()->getContent();
|
||||
self::$DI['client']->request('POST', '/prod/bridge/manager/', ['ssel' => 1]);
|
||||
self::$DI['client']->getResponse()->getContent();
|
||||
$this->assertTrue(self::$DI['client']->getResponse()->isOk());
|
||||
}
|
||||
|
||||
|
@@ -104,7 +104,7 @@ class DownloadTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
*/
|
||||
public function testDownloadBasket()
|
||||
{
|
||||
$basket = $this->insertOneBasketEnv();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 4);
|
||||
|
||||
$eventManagerStub = $this->getMockBuilder('\eventsmanager_broker')
|
||||
->disableOriginalConstructor()
|
||||
@@ -136,7 +136,7 @@ class DownloadTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
*/
|
||||
public function testDownloadBasketValidation()
|
||||
{
|
||||
$basket = $this->insertOneValidationBasket();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 4);
|
||||
|
||||
$eventManagerStub = $this->getMockBuilder('\eventsmanager_broker')
|
||||
->disableOriginalConstructor()
|
||||
|
@@ -10,8 +10,6 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
{
|
||||
public function testRequestAvailable()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user']);
|
||||
|
||||
$crawler = self::$DI['client']->request('POST', '/prod/feeds/requestavailable/');
|
||||
$this->assertTrue(self::$DI['client']->getResponse()->isOk());
|
||||
$feeds = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Feed')->getAllForUser(self::$DI['app']['acl']->get(self::$DI['user']));
|
||||
@@ -32,7 +30,7 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
->method('deliver')
|
||||
->with($this->isInstanceOf('Alchemy\Phrasea\Notification\Mail\MailInfoNewPublication'), $this->equalTo(null));
|
||||
|
||||
$feed = $this->insertOneFeed(self::$DI['user']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
$params = [
|
||||
"feed_id" => $feed->getId()
|
||||
, "notify" => 1
|
||||
@@ -43,7 +41,7 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
, 'lst' => self::$DI['record_1']->get_serialize_key()
|
||||
];
|
||||
|
||||
$crawler = self::$DI['client']->request('POST', '/prod/feeds/entry/create/', $params);
|
||||
self::$DI['client']->request('POST', '/prod/feeds/entry/create/', $params);
|
||||
$this->assertTrue(self::$DI['client']->getResponse()->isOk());
|
||||
$this->assertEquals("application/json", self::$DI['client']->getResponse()->headers->get("content-type"));
|
||||
$pageContent = json_decode(self::$DI['client']->getResponse()->getContent());
|
||||
@@ -62,14 +60,14 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
, "author_mail" => "robert@kikoo.mail"
|
||||
, 'lst' => self::$DI['record_1']->get_serialize_key()
|
||||
];
|
||||
$crawler = self::$DI['client']->request('POST', '/prod/feeds/entry/create/', $params);
|
||||
self::$DI['client']->request('POST', '/prod/feeds/entry/create/', $params);
|
||||
$this->assertFalse(self::$DI['client']->getResponse()->isOk());
|
||||
$this->assertEquals(404, self::$DI['client']->getResponse()->getStatusCode());
|
||||
}
|
||||
|
||||
public function testEntryCreateUnauthorized()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user_alt1']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 3);
|
||||
|
||||
self::$DI['app']['notification.deliverer'] = $this->getMockBuilder('Alchemy\Phrasea\Notification\Deliverer')
|
||||
->disableOriginalConstructor()
|
||||
@@ -87,15 +85,15 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
, 'lst' => self::$DI['record_1']->get_serialize_key()
|
||||
];
|
||||
|
||||
$crawler = self::$DI['client']->request('POST', '/prod/feeds/entry/create/', $params);
|
||||
self::$DI['client']->request('POST', '/prod/feeds/entry/create/', $params);
|
||||
$this->assertEquals(403, self::$DI['client']->getResponse()->getStatusCode());
|
||||
}
|
||||
|
||||
public function testEntryEdit()
|
||||
{
|
||||
$entry = $this->insertOneFeedEntry(self::$DI['user']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
$entry = $feed->getEntries()->first();
|
||||
$crawler = self::$DI['client']->request('GET', '/prod/feeds/entry/' . $entry->getId() . '/edit/');
|
||||
$pageContent = self::$DI['client']->getResponse()->getContent();
|
||||
|
||||
foreach ($entry->getItems() as $content) {
|
||||
$this->assertEquals(1, $crawler->filterXPath("//input[@value='" . $content->getId() . "' and @name='item_id']")->count());
|
||||
@@ -110,16 +108,18 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testEntryEditUnauthorized()
|
||||
{
|
||||
$entry = $this->insertOneFeedEntry(self::$DI['user_alt1']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 3);
|
||||
$entry = $feed->getEntries()->first();
|
||||
|
||||
$crawler = self::$DI['client']->request('GET', '/prod/feeds/entry/' . $entry->getId() . '/edit/');
|
||||
self::$DI['client']->request('GET', '/prod/feeds/entry/' . $entry->getId() . '/edit/');
|
||||
$pageContent = self::$DI['client']->getResponse();
|
||||
$this->assertEquals(403, $pageContent->getStatusCode());
|
||||
}
|
||||
|
||||
public function testEntryUpdate()
|
||||
{
|
||||
$entry = $this->insertOneFeedEntry(self::$DI['user']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
$entry = $feed->getEntries()->first();
|
||||
|
||||
$params = [
|
||||
"title" => "dog",
|
||||
@@ -129,7 +129,7 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
'lst' => self::$DI['record_1']->get_serialize_key(),
|
||||
];
|
||||
|
||||
$crawler = self::$DI['client']->request('POST', '/prod/feeds/entry/' . $entry->getId() . '/update/', $params);
|
||||
self::$DI['client']->request('POST', '/prod/feeds/entry/' . $entry->getId() . '/update/', $params);
|
||||
$this->assertTrue(self::$DI['client']->getResponse()->isOk());
|
||||
$this->assertEquals("application/json", self::$DI['client']->getResponse()->headers->get("content-type"));
|
||||
$pageContent = json_decode(self::$DI['client']->getResponse()->getContent());
|
||||
@@ -142,8 +142,9 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testEntryUpdateChangeFeed()
|
||||
{
|
||||
$entry = $this->insertOneFeedEntry(self::$DI['user']);
|
||||
$newfeed = $this->insertOneFeed(self::$DI['user'], "test2");
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
$entry = $feed->getEntries()->first();
|
||||
$newfeed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 2);
|
||||
|
||||
$params = [
|
||||
"feed_id" => $newfeed->getId(),
|
||||
@@ -153,7 +154,7 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
"author_mail" => "mouse",
|
||||
'lst' => self::$DI['record_1']->get_serialize_key(),
|
||||
];
|
||||
$crawler = self::$DI['client']->request('POST', '/prod/feeds/entry/' . $entry->getId() . '/update/', $params);
|
||||
self::$DI['client']->request('POST', '/prod/feeds/entry/' . $entry->getId() . '/update/', $params);
|
||||
$this->assertTrue(self::$DI['client']->getResponse()->isOk());
|
||||
$this->assertEquals("application/json", self::$DI['client']->getResponse()->headers->get("content-type"));
|
||||
$pageContent = json_decode(self::$DI['client']->getResponse()->getContent());
|
||||
@@ -169,8 +170,9 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testEntryUpdateChangeFeedNoAccess()
|
||||
{
|
||||
$entry = $this->insertOneFeedEntry(self::$DI['user']);
|
||||
$newfeed = $this->insertOneFeed(self::$DI['user_alt1'], "test2");
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
$entry = $feed->getEntries()->first();
|
||||
$newfeed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 3);
|
||||
$newfeed->setCollection(self::$DI['collection_no_access']);
|
||||
self::$DI['app']['EM']->persist($newfeed);
|
||||
self::$DI['app']['EM']->flush();
|
||||
@@ -184,13 +186,14 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
'lst' => self::$DI['record_1']->get_serialize_key(),
|
||||
];
|
||||
|
||||
$crawler = self::$DI['client']->request('POST', '/prod/feeds/entry/' . $entry->getId() . '/update/', $params);
|
||||
self::$DI['client']->request('POST', '/prod/feeds/entry/' . $entry->getId() . '/update/', $params);
|
||||
$this->assertEquals(403, self::$DI['client']->getResponse()->getStatusCode());
|
||||
}
|
||||
|
||||
public function testEntryUpdateChangeFeedInvalidFeed()
|
||||
{
|
||||
$entry = $this->insertOneFeedEntry(self::$DI['user']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
$entry = $feed->getEntries()->first();
|
||||
|
||||
$params = [
|
||||
"feed_id" => 0,
|
||||
@@ -201,13 +204,12 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
'lst' => self::$DI['record_1']->get_serialize_key(),
|
||||
];
|
||||
|
||||
$crawler = self::$DI['client']->request('POST', '/prod/feeds/entry/' . $entry->getId() . '/update/', $params);
|
||||
self::$DI['client']->request('POST', '/prod/feeds/entry/' . $entry->getId() . '/update/', $params);
|
||||
$this->assertEquals(404, self::$DI['client']->getResponse()->getStatusCode());
|
||||
}
|
||||
|
||||
public function testEntryUpdateNotFound()
|
||||
{
|
||||
|
||||
$params = [
|
||||
"feed_id" => 9999999
|
||||
, "title" => "dog"
|
||||
@@ -217,18 +219,14 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
, 'lst' => self::$DI['record_1']->get_serialize_key()
|
||||
];
|
||||
|
||||
$crawler = self::$DI['client']->request('POST', '/prod/feeds/entry/99999999/update/', $params);
|
||||
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
$pageContent = json_decode($response->getContent());
|
||||
|
||||
self::$DI['client']->request('POST', '/prod/feeds/entry/99999999/update/', $params);
|
||||
$this->assertEquals(404, self::$DI['client']->getResponse()->getStatusCode());
|
||||
}
|
||||
|
||||
public function testEntryUpdateFailed()
|
||||
{
|
||||
$entry = $this->insertOneFeedEntry(self::$DI['user']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
$entry = $feed->getEntries()->first(['user']);
|
||||
|
||||
$params = [
|
||||
"feed_id" => 9999999
|
||||
@@ -239,20 +237,14 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
, 'sorted_lst' => self::$DI['record_1']->get_serialize_key() . ";" . self::$DI['record_2']->get_serialize_key() . ";12345;" . "unknow_unknow"
|
||||
];
|
||||
|
||||
$crawler = self::$DI['client']->request('POST', '/prod/feeds/entry/' . $entry->getId() . '/update/', $params);
|
||||
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
self::$DI['client']->request('POST', '/prod/feeds/entry/' . $entry->getId() . '/update/', $params);
|
||||
$this->assertEquals(404, self::$DI['client']->getResponse()->getStatusCode());
|
||||
}
|
||||
|
||||
public function testEntryUpdateUnauthorized()
|
||||
{
|
||||
/**
|
||||
* I CREATE A FEED THAT IS NOT MINE
|
||||
* */
|
||||
|
||||
$entry = $this->insertOneFeedEntry(self::$DI['user_alt1']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 3);
|
||||
$entry = $feed->getEntries()->first();
|
||||
|
||||
$params = [
|
||||
"feed_id" => $entry->getFeed()->getId()
|
||||
@@ -263,26 +255,18 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
, 'lst' => self::$DI['record_1']->get_serialize_key()
|
||||
];
|
||||
|
||||
$crawler = self::$DI['client']->request('POST', '/prod/feeds/entry/' . $entry->getId() . '/update/', $params);
|
||||
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
self::$DI['client']->request('POST', '/prod/feeds/entry/' . $entry->getId() . '/update/', $params);
|
||||
$this->assertEquals(403, self::$DI['client']->getResponse()->getStatusCode());;
|
||||
}
|
||||
|
||||
public function testEntryUpdateChangeOrder()
|
||||
{
|
||||
$item1 = $this->insertOneFeedItem(self::$DI['user']);
|
||||
$entry = $item1->getEntry();
|
||||
$item2 = new FeedItem();
|
||||
$item2->setEntry($entry)
|
||||
->setRecordId(self::$DI['record_2']->get_record_id())
|
||||
->setSbasId(self::$DI['record_2']->get_sbas_id());
|
||||
$entry->addItem($item2);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
$entry = $feed->getEntries()->first();
|
||||
|
||||
self::$DI['app']['EM']->persist($entry);
|
||||
self::$DI['app']['EM']->persist($item2);
|
||||
self::$DI['app']['EM']->flush();
|
||||
$items = $entry->getItems()->toArray();
|
||||
$item1 = array_shift($items);
|
||||
$item2 = array_shift($items);
|
||||
|
||||
$ord1 = $item1->getOrd();
|
||||
$ord2 = $item2->getOrd();
|
||||
@@ -295,7 +279,7 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
. $item2->getId() . '_' . $item1->getOrd()
|
||||
];
|
||||
|
||||
$crawler = self::$DI['client']->request('POST', '/prod/feeds/entry/' . $entry->getId() . '/update/', $params);
|
||||
self::$DI['client']->request('POST', '/prod/feeds/entry/' . $entry->getId() . '/update/', $params);
|
||||
$this->assertTrue(self::$DI['client']->getResponse()->isOk());
|
||||
|
||||
$newItem1 = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\FeedItem')->find($item1->getId());
|
||||
@@ -307,9 +291,10 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testDelete()
|
||||
{
|
||||
$entry = $this->insertOneFeedEntry(self::$DI['user']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
$entry = $feed->getEntries()->first();
|
||||
|
||||
$crawler = self::$DI['client']->request('POST', '/prod/feeds/entry/' . $entry->getId() . '/delete/');
|
||||
self::$DI['client']->request('POST', '/prod/feeds/entry/' . $entry->getId() . '/delete/');
|
||||
|
||||
$this->assertTrue(self::$DI['client']->getResponse()->isOk());
|
||||
$this->assertEquals("application/json", self::$DI['client']->getResponse()->headers->get("content-type"));
|
||||
@@ -330,47 +315,30 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testDeleteNotFound()
|
||||
{
|
||||
|
||||
$crawler = self::$DI['client']->request('POST', '/prod/feeds/entry/9999999/delete/');
|
||||
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
$pageContent = json_decode(self::$DI['client']->getResponse()->getContent());
|
||||
|
||||
self::$DI['client']->request('POST', '/prod/feeds/entry/9999999/delete/');
|
||||
$this->assertEquals(404, self::$DI['client']->getResponse()->getStatusCode());
|
||||
}
|
||||
|
||||
public function testDeleteUnauthorized()
|
||||
{
|
||||
/**
|
||||
* I CREATE A FEED
|
||||
* */
|
||||
$entry = $this->insertOneFeedEntry(self::$DI['user_alt1']);
|
||||
|
||||
$crawler = self::$DI['client']->request('POST', '/prod/feeds/entry/' . $entry->getId() . '/delete/');
|
||||
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
$pageContent = json_decode(self::$DI['client']->getResponse()->getContent());
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 3);
|
||||
$entry = $feed->getEntries()->first();
|
||||
|
||||
self::$DI['client']->request('POST', '/prod/feeds/entry/' . $entry->getId() . '/delete/');
|
||||
$this->assertEquals(403, self::$DI['client']->getResponse()->getStatusCode());
|
||||
}
|
||||
|
||||
public function testRoot()
|
||||
{
|
||||
$crawler = self::$DI['client']->request('GET', '/prod/feeds/');
|
||||
|
||||
$pageContent = self::$DI['client']->getResponse()->getContent();
|
||||
|
||||
$this->assertTrue(self::$DI['client']->getResponse()->isOk());
|
||||
|
||||
$feeds = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Feed')->getAllForUser(self::$DI['app']['acl']->get(self::$DI['user']));
|
||||
|
||||
foreach ($feeds as $one_feed) {
|
||||
$path = CssSelector::toXPath("ul.submenu a[href='/prod/feeds/feed/" . $one_feed->getId() . "/']");
|
||||
$msg = sprintf("user %s has access to feed %s", self::$DI['user']->getId(), $one_feed->getId());
|
||||
$msg = sprintf("user %s has access to feed %s", self::$DI['user']->get_id(), $one_feed->getId());
|
||||
|
||||
if ($one_feed->has_access(self::$DI['user'])) {
|
||||
if ($one_feed->hasAccess(self::$DI['user'], self::$DI['app'])) {
|
||||
$this->assertEquals(1, $crawler->filterXPath($path)->count(), $msg);
|
||||
} else {
|
||||
$this->fail('FeedRepository::getAllForUser should return feeds I am allowed to access');
|
||||
@@ -380,13 +348,9 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testGetFeed()
|
||||
{
|
||||
|
||||
$feed = $this->insertOneFeed(self::$DI['user']);
|
||||
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
$feeds = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Feed')->getAllForUser(self::$DI['app']['acl']->get(self::$DI['user']));
|
||||
|
||||
$crawler = self::$DI['client']->request('GET', '/prod/feeds/feed/' . $feed->getId() . "/");
|
||||
$pageContent = self::$DI['client']->getResponse()->getContent();
|
||||
|
||||
foreach ($feeds as $one_feed) {
|
||||
$path = CssSelector::toXPath("ul.submenu a[href='/prod/feeds/feed/" . $one_feed->getId() . "/']");
|
||||
@@ -402,8 +366,6 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testSuscribeAggregate()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user']);
|
||||
|
||||
self::$DI['app']['feed.aggregate-link-generator'] = $this->getMockBuilder('Alchemy\Phrasea\Feed\Link\AggregateLinkGenerator')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
@@ -436,7 +398,7 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testSuscribe()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
|
||||
self::$DI['app']['feed.user-link-generator'] = $this->getMockBuilder('Alchemy\Phrasea\Feed\Link\FeedLinkGenerator')
|
||||
->disableOriginalConstructor()
|
||||
@@ -452,7 +414,7 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
->with($this->isInstanceOf('\Alchemy\Phrasea\Model\Entities\Feed'), $this->isInstanceOf('\User_Adapter'), 'rss', null, false)
|
||||
->will($this->returnValue($link));
|
||||
|
||||
$crawler = self::$DI['client']->request('GET', '/prod/feeds/subscribe/' . $feed->getId() . '/');
|
||||
self::$DI['client']->request('GET', '/prod/feeds/subscribe/' . $feed->getId() . '/');
|
||||
|
||||
$this->assertTrue(self::$DI['client']->getResponse()->isOk());
|
||||
$this->assertEquals("application/json", self::$DI['client']->getResponse()->headers->get("content-type"));
|
||||
|
@@ -311,7 +311,7 @@ class LazaretTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
*/
|
||||
public function testDenyElement()
|
||||
{
|
||||
$lazaretFile = $this->insertOneLazaretFile();
|
||||
$lazaretFile = self::$DI['lazaret_1'];
|
||||
|
||||
$route = sprintf('/prod/lazaret/%s/deny/', $lazaretFile->getId());
|
||||
|
||||
@@ -336,8 +336,6 @@ class LazaretTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
*/
|
||||
public function testEmptyLazaret()
|
||||
{
|
||||
$lazaretFile = $this->insertOneLazaretFile();
|
||||
|
||||
$route = sprintf('/prod/lazaret/empty/');
|
||||
self::$DI['client']->request('POST', $route);
|
||||
|
||||
@@ -353,8 +351,6 @@ class LazaretTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$count = $query->getSingleScalarResult();
|
||||
|
||||
$this->assertEquals(0, $count);
|
||||
|
||||
$lazaretFile = null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -31,7 +31,7 @@ class QueryTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
public function testQueryAnswerTrain()
|
||||
{
|
||||
$this->authenticate(self::$DI['app']);
|
||||
self::$DI['record_24'];
|
||||
self::$DI['record_2'];
|
||||
|
||||
$options = new SearchEngineOptions();
|
||||
$options->onCollections(self::$DI['app']['acl']->get(self::$DI['app']['authentication']->getUser())->get_granted_base());
|
||||
|
@@ -79,7 +79,7 @@ class RecordsTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
public function testGetRecordDetailResult()
|
||||
{
|
||||
$this->authenticate(self::$DI['app']);
|
||||
self::$DI['record_24'];
|
||||
self::$DI['record_1'];
|
||||
|
||||
$options = new SearchEngineOptions();
|
||||
$acl = self::$DI['app']['acl']->get(self::$DI['app']['authentication']->getUser());
|
||||
@@ -145,18 +145,7 @@ class RecordsTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
public function testGetRecordDetailBasket()
|
||||
{
|
||||
$this->authenticate(self::$DI['app']);
|
||||
$basket = $this->insertOneBasket();
|
||||
$record = self::$DI['record_1'];
|
||||
|
||||
$basketElement = new \Alchemy\Phrasea\Model\Entities\BasketElement();
|
||||
$basketElement->setBasket($basket);
|
||||
$basketElement->setRecord($record);
|
||||
$basketElement->setLastInBasket();
|
||||
|
||||
$basket->addElement($basketElement);
|
||||
|
||||
self::$DI['app']['EM']->persist($basket);
|
||||
self::$DI['app']['EM']->flush();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
|
||||
$this->XMLHTTPRequest('POST', '/prod/records/', [
|
||||
'env' => 'BASK',
|
||||
@@ -192,8 +181,8 @@ class RecordsTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$item = $this->insertOneFeedItem(self::$DI['user']);
|
||||
$feedEntry = $item->getEntry();
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
$feedEntry = $feed->getEntries()->first();
|
||||
|
||||
$this->XMLHTTPRequest('POST', '/prod/records/', [
|
||||
'env' => 'FEED',
|
||||
|
@@ -15,7 +15,7 @@ class ControllerStoryTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
$collection = array_shift($collections);
|
||||
|
||||
$crawler = self::$DI['client']->request(
|
||||
self::$DI['client']->request(
|
||||
'POST', $route, [
|
||||
'base_id' => $collection->get_base_id(),
|
||||
'name' => 'test story'
|
||||
@@ -32,7 +32,7 @@ class ControllerStoryTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
$count = $query->getSingleScalarResult();
|
||||
|
||||
$this->assertEquals(1, $count);
|
||||
$this->assertEquals(2, $count);
|
||||
}
|
||||
|
||||
public function testRootPostJSON()
|
||||
|
@@ -10,10 +10,7 @@ class ControllerTooltipTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testRouteBasket()
|
||||
{
|
||||
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$crawler = self::$DI['client']->request('POST', '/prod/tooltip/basket/' . $basket->getId() . '/');
|
||||
$crawler = self::$DI['client']->request('POST', '/prod/tooltip/basket/1/');
|
||||
$pageContent = self::$DI['client']->getResponse()->getContent();
|
||||
$this->assertTrue(self::$DI['client']->getResponse()->isOk());
|
||||
}
|
||||
|
@@ -11,13 +11,6 @@ class ControllerUsrListsTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
*/
|
||||
public function testRouteSlash()
|
||||
{
|
||||
$this->insertOneUsrListEntry(self::$DI['user'], self::$DI['user']);
|
||||
$this->insertOneUsrListEntry(self::$DI['user'], self::$DI['user_alt1']);
|
||||
$this->insertOneUsrListEntry(self::$DI['user'], self::$DI['user']);
|
||||
$this->insertOneUsrListEntry(self::$DI['user'], self::$DI['user_alt1']);
|
||||
$this->insertOneUsrListEntry(self::$DI['user_alt1'], self::$DI['user_alt1']);
|
||||
$this->insertOneUsrListEntry(self::$DI['user_alt1'], self::$DI['user_alt2']);
|
||||
|
||||
$route = '/prod/lists/all/';
|
||||
|
||||
self::$DI['client']->request('GET', $route, [], [], ["HTTP_CONTENT_TYPE" => "application/json", "HTTP_ACCEPT" => "application/json"]);
|
||||
@@ -29,7 +22,7 @@ class ControllerUsrListsTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
$datas = (array) json_decode($response->getContent());
|
||||
|
||||
$this->assertEquals(4, count($datas['result']));
|
||||
$this->assertEquals(1, count($datas['result']));
|
||||
}
|
||||
|
||||
private function checkList($list, $owners = true, $users = true)
|
||||
@@ -91,7 +84,7 @@ class ControllerUsrListsTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testGetList()
|
||||
{
|
||||
$entry = $this->insertOneUsrListEntry(self::$DI['user'], self::$DI['user_alt1']);
|
||||
$entry = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\UsrListEntry', 2);
|
||||
$list_id = $entry->getList()->getId();
|
||||
|
||||
$route = '/prod/lists/list/' . $list_id . '/';
|
||||
@@ -111,7 +104,7 @@ class ControllerUsrListsTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testPostUpdate()
|
||||
{
|
||||
$entry = $this->insertOneUsrListEntry(self::$DI['user'], self::$DI['user_alt1']);
|
||||
$entry = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\UsrListEntry', 2);
|
||||
$list_id = $entry->getList()->getId();
|
||||
|
||||
$route = '/prod/lists/list/' . $list_id . '/update/';
|
||||
@@ -147,7 +140,7 @@ class ControllerUsrListsTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testPostDelete()
|
||||
{
|
||||
$entry = $this->insertOneUsrListEntry(self::$DI['user'], self::$DI['user_alt1']);
|
||||
$entry = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\UsrListEntry', 2);
|
||||
$list_id = $entry->getList()->getId();
|
||||
|
||||
$route = '/prod/lists/list/' . $list_id . '/delete/';
|
||||
@@ -173,7 +166,7 @@ class ControllerUsrListsTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testPostRemoveEntry()
|
||||
{
|
||||
$entry = $this->insertOneUsrListEntry(self::$DI['user'], self::$DI['user_alt1']);
|
||||
$entry = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\UsrListEntry', 2);
|
||||
$list_id = $entry->getList()->getId();
|
||||
$usr_id = $entry->getUser(self::$DI['app'])->get_id();
|
||||
$entry_id = $entry->getId();
|
||||
@@ -201,13 +194,13 @@ class ControllerUsrListsTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testPostAddEntry()
|
||||
{
|
||||
$list = $this->insertOneUsrList(self::$DI['user']);
|
||||
$list = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\UsrList', 1);
|
||||
|
||||
$this->assertEquals(0, $list->getEntries()->count());
|
||||
$this->assertEquals(2, $list->getEntries()->count());
|
||||
|
||||
$route = '/prod/lists/list/' . $list->getId() . '/add/';
|
||||
|
||||
self::$DI['client']->request('POST', $route, ['usr_ids' => [self::$DI['user']->get_id()]], [], ["HTTP_CONTENT_TYPE" => "application/json", "HTTP_ACCEPT" => "application/json"]);
|
||||
self::$DI['client']->request('POST', $route, ['usr_ids' => [self::$DI['user_alt2']->get_id()]], [], ["HTTP_CONTENT_TYPE" => "application/json", "HTTP_ACCEPT" => "application/json"]);
|
||||
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
@@ -220,17 +213,12 @@ class ControllerUsrListsTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$this->assertArrayHasKey('message', $datas);
|
||||
|
||||
$this->assertTrue($datas['success']);
|
||||
|
||||
$repository = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\UsrList');
|
||||
|
||||
$list = $repository->find($list->getId());
|
||||
|
||||
$this->assertEquals(1, $list->getEntries()->count());
|
||||
$this->assertEquals(3, $list->getEntries()->count());
|
||||
}
|
||||
|
||||
public function testPostShareList()
|
||||
{
|
||||
$list = $this->insertOneUsrList(self::$DI['user']);
|
||||
$list = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\UsrList', 1);
|
||||
|
||||
$this->assertEquals(1, $list->getOwners()->count());
|
||||
|
||||
@@ -277,8 +265,7 @@ class ControllerUsrListsTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testPostUnShareList()
|
||||
{
|
||||
|
||||
$list = $this->insertOneUsrList(self::$DI['user']);
|
||||
$list = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\UsrList', 1);
|
||||
|
||||
$this->assertEquals(1, $list->getOwners()->count());
|
||||
|
||||
@@ -328,8 +315,7 @@ class ControllerUsrListsTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testPostUnShareFail()
|
||||
{
|
||||
|
||||
$list = $this->insertOneUsrList(self::$DI['user']);
|
||||
$list = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\UsrList', 1);
|
||||
|
||||
$this->assertEquals(1, $list->getOwners()->count());
|
||||
|
||||
|
@@ -9,8 +9,6 @@ class ControllerWorkZoneTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testRootGet()
|
||||
{
|
||||
$this->insertOneWZ();
|
||||
|
||||
$route = "/prod/WorkZone/";
|
||||
|
||||
self::$DI['client']->request('GET', $route);
|
||||
@@ -33,7 +31,7 @@ class ControllerWorkZoneTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testAttachStoryToWZ()
|
||||
{
|
||||
$story = self::$DI['record_story_1'];
|
||||
$story = self::$DI['record_story_2'];
|
||||
$route = sprintf("/prod/WorkZone/attachStories/");
|
||||
self::$DI['client']->request('POST', $route, ['stories' => [$story->get_serialize_key()]]);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
@@ -42,13 +40,11 @@ class ControllerWorkZoneTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
$em = self::$DI['app']['EM'];
|
||||
/* @var $em \Doctrine\ORM\EntityManager */
|
||||
$query = $em->createQuery(
|
||||
'SELECT COUNT(w.id) FROM \Alchemy\Phrasea\Model\Entities\StoryWZ w'
|
||||
);
|
||||
$query = $em->createQuery('SELECT COUNT(w.id) FROM \Alchemy\Phrasea\Model\Entities\StoryWZ w');
|
||||
|
||||
$count = $query->getSingleScalarResult();
|
||||
|
||||
$this->assertEquals(1, $count);
|
||||
$this->assertEquals(2, $count);
|
||||
}
|
||||
|
||||
public function testAttachMultipleStoriesToWZ()
|
||||
@@ -66,35 +62,18 @@ class ControllerWorkZoneTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
$em = self::$DI['app']['EM'];
|
||||
/* @var $em \Doctrine\ORM\EntityManager */
|
||||
$query = $em->createQuery(
|
||||
'SELECT COUNT(w.id) FROM \Alchemy\Phrasea\Model\Entities\StoryWZ w'
|
||||
);
|
||||
|
||||
$query = $em->createQuery('SELECT COUNT(w.id) FROM \Alchemy\Phrasea\Model\Entities\StoryWZ w');
|
||||
$count = $query->getSingleScalarResult();
|
||||
|
||||
$this->assertEquals(2, $count);
|
||||
|
||||
$query = $em->createQuery(
|
||||
'SELECT w FROM \Alchemy\Phrasea\Model\Entities\StoryWZ w'
|
||||
);
|
||||
|
||||
$storyWZ = $query->getResult();
|
||||
$em->remove(array_shift($storyWZ));
|
||||
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
public function testAttachExistingStory()
|
||||
{
|
||||
$story = self::$DI['record_story_1'];
|
||||
$story = self::$DI['record_story_2'];
|
||||
$route = sprintf("/prod/WorkZone/attachStories/");
|
||||
|
||||
$StoryWZ = new \Alchemy\Phrasea\Model\Entities\StoryWZ();
|
||||
$StoryWZ->setUser(self::$DI['app']['authentication']->getUser());
|
||||
$StoryWZ->setRecord($story);
|
||||
|
||||
self::$DI['app']['EM']->persist($StoryWZ);
|
||||
self::$DI['app']['EM']->flush();
|
||||
$storyWZ = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\StoryWZ', 1);
|
||||
|
||||
self::$DI['client']->request('POST', $route, ['stories' => [$story->get_serialize_key()]]);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
@@ -104,12 +83,12 @@ class ControllerWorkZoneTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$em = self::$DI['app']['EM'];
|
||||
/* @var $em \Doctrine\ORM\EntityManager */
|
||||
$query = $em->createQuery(
|
||||
'SELECT COUNT(w.id) FROM \Alchemy\Phrasea\Model\Entities\StoryWZ w'
|
||||
'SELECT COUNT(w.id) FROM \Alchemy\Phrasea\Model\Entities\StoryWZ w'
|
||||
);
|
||||
|
||||
$count = $query->getSingleScalarResult();
|
||||
|
||||
$this->assertEquals(1, $count);
|
||||
$this->assertEquals(2, $count);
|
||||
}
|
||||
|
||||
public function testAttachStoryToWZJson()
|
||||
@@ -137,7 +116,7 @@ class ControllerWorkZoneTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testDetachStoryFromWZ()
|
||||
{
|
||||
$story = self::$DI['record_story_1'];
|
||||
$story = self::$DI['record_story_2'];
|
||||
|
||||
$route = sprintf("/prod/WorkZone/detachStory/%s/%s/", $story->get_sbas_id(), $story->get_record_id());
|
||||
//story not yet Attched
|
||||
@@ -157,7 +136,7 @@ class ControllerWorkZoneTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
$count = $query->getSingleScalarResult();
|
||||
|
||||
$this->assertEquals(1, $count);
|
||||
$this->assertEquals(2, $count);
|
||||
|
||||
//detach
|
||||
self::$DI['client']->request('POST', $route);
|
||||
@@ -170,7 +149,7 @@ class ControllerWorkZoneTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
$count = $query->getSingleScalarResult();
|
||||
|
||||
$this->assertEquals(0, $count);
|
||||
$this->assertEquals(1, $count);
|
||||
|
||||
//attach
|
||||
self::$DI['client']->request('POST', $attachRoute, ['stories' => [$story->get_serialize_key()]]);
|
||||
@@ -199,18 +178,8 @@ class ControllerWorkZoneTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public function testBrowseBasket()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
self::$DI['client']->request("GET", "/prod/WorkZone/Browse/Basket/" . $basket->getId() . "/");
|
||||
self::$DI['client']->request("GET", "/prod/WorkZone/Browse/Basket/1/");
|
||||
$response = self::$DI['client']->getResponse();
|
||||
$this->assertTrue($response->isOk());
|
||||
}
|
||||
|
||||
public function testDetachStoryFromWZNotFound()
|
||||
{
|
||||
$story = self::$DI['record_story_1'];
|
||||
|
||||
$route = sprintf("/prod/WorkZone/detachStory/%s/%s/", $story->get_sbas_id(), 'unknow');
|
||||
//story not yet Attched
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -11,8 +11,8 @@ class RecordsRequestTest extends \PhraseanetAuthenticatedTestCase
|
||||
{
|
||||
$request = new Request([
|
||||
'lst' => implode(';', [
|
||||
self::$DI['record_24']->get_serialize_key(),
|
||||
self::$DI['record_24']->get_serialize_key(),
|
||||
self::$DI['record_3']->get_serialize_key(),
|
||||
self::$DI['record_3']->get_serialize_key(),
|
||||
self::$DI['record_2']->get_serialize_key(),
|
||||
self::$DI['record_story_2']->get_serialize_key(),
|
||||
self::$DI['record_no_access']->get_serialize_key(),
|
||||
@@ -39,7 +39,7 @@ class RecordsRequestTest extends \PhraseanetAuthenticatedTestCase
|
||||
$exploded = explode(';', $serialized);
|
||||
|
||||
$this->assertEquals(3, count($exploded));
|
||||
$this->assertContains(self::$DI['record_24']->get_serialize_key(), $exploded);
|
||||
$this->assertContains(self::$DI['record_3']->get_serialize_key(), $exploded);
|
||||
$this->assertContains(self::$DI['record_2']->get_serialize_key(), $exploded);
|
||||
$this->assertContains(self::$DI['record_story_2']->get_serialize_key(), $exploded);
|
||||
$this->assertNotContains(self::$DI['record_no_access']->get_serialize_key(), $exploded);
|
||||
@@ -127,8 +127,8 @@ class RecordsRequestTest extends \PhraseanetAuthenticatedTestCase
|
||||
{
|
||||
$request = new Request([
|
||||
'lst' => implode(';', [
|
||||
self::$DI['record_24']->get_serialize_key(),
|
||||
self::$DI['record_24']->get_serialize_key(),
|
||||
self::$DI['record_3']->get_serialize_key(),
|
||||
self::$DI['record_3']->get_serialize_key(),
|
||||
self::$DI['record_2']->get_serialize_key(),
|
||||
self::$DI['record_story_2']->get_serialize_key(),
|
||||
self::$DI['record_no_access']->get_serialize_key(),
|
||||
@@ -150,7 +150,7 @@ class RecordsRequestTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
$this->assertEquals(2, count($exploded));
|
||||
$this->assertContains(self::$DI['record_2']->get_serialize_key(), $exploded);
|
||||
$this->assertContains(self::$DI['record_24']->get_serialize_key(), $exploded);
|
||||
$this->assertContains(self::$DI['record_3']->get_serialize_key(), $exploded);
|
||||
$this->assertNotContains(self::$DI['record_story_2']->get_serialize_key(), $exploded);
|
||||
$this->assertNotContains(self::$DI['record_no_access']->get_serialize_key(), $exploded);
|
||||
$this->assertNotContains(self::$DI['record_no_access_by_status']->get_serialize_key(), $exploded);
|
||||
@@ -158,7 +158,7 @@ class RecordsRequestTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
public function testSimpleBasket()
|
||||
{
|
||||
$basketElement = $this->insertOneBasketElement();
|
||||
$basketElement = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\BasketElement', 1);
|
||||
$request = new Request(['ssel' => $basketElement->getBasket()->getId()]);
|
||||
|
||||
$records = RecordsRequest::fromRequest(self::$DI['app'], $request);
|
||||
@@ -177,34 +177,6 @@ class RecordsRequestTest extends \PhraseanetAuthenticatedTestCase
|
||||
$this->assertContains($basketElement->getRecord(self::$DI['app'])->get_serialize_key(), $exploded);
|
||||
}
|
||||
|
||||
public function getBasket()
|
||||
{
|
||||
$elements = [
|
||||
self::$DI['record_24'],
|
||||
self::$DI['record_2'],
|
||||
self::$DI['record_no_access'],
|
||||
self::$DI['record_no_access_by_status'],
|
||||
];
|
||||
|
||||
$basket = new \Alchemy\Phrasea\Model\Entities\Basket();
|
||||
$basket->setName('test');
|
||||
$basket->setOwner(self::$DI['app']['authentication']->getUser());
|
||||
|
||||
self::$DI['app']['EM']->persist($basket);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$basket_element = new \Alchemy\Phrasea\Model\Entities\BasketElement();
|
||||
$basket_element->setRecord($element);
|
||||
$basket_element->setBasket($basket);
|
||||
$basket->addElement($basket_element);
|
||||
self::$DI['app']['EM']->persist($basket_element);
|
||||
self::$DI['app']['EM']->flush();
|
||||
}
|
||||
|
||||
return $basket;
|
||||
}
|
||||
|
||||
public function testSimpleStory()
|
||||
{
|
||||
$story = $this->getStoryWZ();
|
||||
@@ -230,7 +202,6 @@ class RecordsRequestTest extends \PhraseanetAuthenticatedTestCase
|
||||
{
|
||||
$story = $this->getStoryWZ();
|
||||
$request = new Request(['story' => $story->getId()]);
|
||||
|
||||
$records = RecordsRequest::fromRequest(self::$DI['app'], $request, true);
|
||||
|
||||
$this->assertEquals(0, count($records));
|
||||
@@ -269,13 +240,6 @@ class RecordsRequestTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
private function getStoryWZ()
|
||||
{
|
||||
$story = new \Alchemy\Phrasea\Model\Entities\StoryWZ();
|
||||
$story->setRecord(self::$DI['record_story_2']);
|
||||
$story->setUser(self::$DI['app']['authentication']->getUser());
|
||||
|
||||
self::$DI['app']['EM']->persist($story);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return $story;
|
||||
return self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\StoryWZ', 1);
|
||||
}
|
||||
}
|
||||
|
@@ -27,7 +27,7 @@ class RssFeedTest extends \PhraseanetWebTestCase
|
||||
|
||||
public function testPublicFeedAggregated()
|
||||
{
|
||||
$this->insertOneFeed(self::$DI['user'], "test", true);
|
||||
self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 2);
|
||||
|
||||
self::$DI['client']->request('GET', '/feeds/aggregated/atom/');
|
||||
$response = self::$DI['client']->getResponse();
|
||||
@@ -72,8 +72,7 @@ class RssFeedTest extends \PhraseanetWebTestCase
|
||||
public function testPublicFeed()
|
||||
{
|
||||
$this->authenticate(self::$DI['app']);
|
||||
|
||||
$feed = $this->insertOneFeed(self::$DI['user'], "test1", true);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 2);
|
||||
|
||||
self::$DI['client']->request('GET', "/feeds/feed/" . $feed->getId() . "/atom/");
|
||||
$response = self::$DI['client']->getResponse();
|
||||
@@ -86,10 +85,7 @@ class RssFeedTest extends \PhraseanetWebTestCase
|
||||
|
||||
public function testUserFeedAggregated()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user']);
|
||||
|
||||
$token = $this->insertOneAggregateToken(self::$DI['user']);
|
||||
|
||||
$token = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\AggregateToken', 1);
|
||||
$tokenValue = $token->getValue();
|
||||
|
||||
$this->logout(self::$DI['app']);
|
||||
@@ -105,19 +101,11 @@ class RssFeedTest extends \PhraseanetWebTestCase
|
||||
|
||||
public function testUserFeed()
|
||||
{
|
||||
$this->authenticate(self::$DI['app']);
|
||||
|
||||
$feed = $this->insertOneFeed(self::$DI['user']);
|
||||
|
||||
$id = $feed->getId();
|
||||
|
||||
$token = $this->insertOneFeedToken($feed, self::$DI['user']);
|
||||
|
||||
$token = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\FeedToken', 1);
|
||||
$tokenValue = $token->getValue();
|
||||
|
||||
$this->logout(self::$DI['app']);
|
||||
|
||||
self::$DI['client']->request('GET', "/feeds/userfeed/$tokenValue/$id/atom/");
|
||||
self::$DI['client']->request('GET', "/feeds/userfeed/$tokenValue/".$token->getFeed()->getId()."/atom/");
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
$this->evaluateResponse200($response);
|
||||
@@ -128,16 +116,16 @@ class RssFeedTest extends \PhraseanetWebTestCase
|
||||
|
||||
public function testGetFeedFormat()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user'], "test", true);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 2);
|
||||
self::$DI['client']->request("GET", "/feeds/feed/" . $feed->getId() . "/rss/");
|
||||
|
||||
$crawler = self::$DI['client']->request("GET", "/feeds/feed/" . $feed->getId() . "/rss/");
|
||||
$this->assertEquals("application/rss+xml", self::$DI['client']->getResponse()->headers->get("content-type"));
|
||||
$xml = self::$DI['client']->getResponse()->getContent();
|
||||
|
||||
$this->verifyXML($xml);
|
||||
$this->verifyRSS($feed, $xml);
|
||||
|
||||
$crawler = self::$DI['client']->request("GET", "/feeds/feed/" . $feed->getId() . "/atom/");
|
||||
self::$DI['client']->request("GET", "/feeds/feed/" . $feed->getId() . "/atom/");
|
||||
$this->assertEquals("application/atom+xml", self::$DI['client']->getResponse()->headers->get("content-type"));
|
||||
$xml = self::$DI['client']->getResponse()->getContent();
|
||||
$this->verifyXML($xml);
|
||||
@@ -146,9 +134,9 @@ class RssFeedTest extends \PhraseanetWebTestCase
|
||||
|
||||
public function testCooliris()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user'], "test", true);
|
||||
self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 2);
|
||||
|
||||
$crawler = self::$DI['client']->request("GET", "/feeds/cooliris/");
|
||||
self::$DI['client']->request("GET", "/feeds/cooliris/");
|
||||
$this->assertTrue(self::$DI['client']->getResponse()->isOk());
|
||||
$this->assertEquals("application/rss+xml", self::$DI['client']->getResponse()->headers->get("content-type"));
|
||||
$xml = self::$DI['client']->getResponse()->getContent();
|
||||
@@ -157,15 +145,12 @@ class RssFeedTest extends \PhraseanetWebTestCase
|
||||
|
||||
public function testAggregatedRss()
|
||||
{
|
||||
$this->insertOneFeed(self::$DI['user'], "test1", true);
|
||||
$this->insertOneFeed(self::$DI['user'], "test2", true);
|
||||
|
||||
$all_feeds = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Feed')->findBy(['public' => true], ['updatedOn' => 'DESC']);
|
||||
|
||||
foreach ($all_feeds as $feed) {
|
||||
$this->assertTrue($feed->isPublic());
|
||||
}
|
||||
$crawler = self::$DI['client']->request("GET", "/feeds/aggregated/rss/");
|
||||
self::$DI['client']->request("GET", "/feeds/aggregated/rss/");
|
||||
$this->assertTrue(self::$DI['client']->getResponse()->isOk());
|
||||
$this->assertEquals("application/rss+xml", self::$DI['client']->getResponse()->headers->get("content-type"));
|
||||
$xml = self::$DI['client']->getResponse()->getContent();
|
||||
@@ -174,15 +159,12 @@ class RssFeedTest extends \PhraseanetWebTestCase
|
||||
|
||||
public function testAggregatedAtom()
|
||||
{
|
||||
$this->insertOneFeed(self::$DI['user'], "test1", true);
|
||||
$this->insertOneFeed(self::$DI['user'], "test2", true);
|
||||
|
||||
$all_feeds = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Feed')->findBy(['public' => true], ['updatedOn' => 'DESC']);
|
||||
|
||||
foreach ($all_feeds as $feed) {
|
||||
$this->assertTrue($feed->isPublic());
|
||||
}
|
||||
$crawler = self::$DI['client']->request("GET", "/feeds/aggregated/atom/");
|
||||
self::$DI['client']->request("GET", "/feeds/aggregated/atom/");
|
||||
$this->assertTrue(self::$DI['client']->getResponse()->isOk());
|
||||
$this->assertEquals("application/atom+xml", self::$DI['client']->getResponse()->headers->get("content-type"));
|
||||
$xml = self::$DI['client']->getResponse()->getContent();
|
||||
@@ -204,15 +186,15 @@ class RssFeedTest extends \PhraseanetWebTestCase
|
||||
|
||||
public function testGetFeedId()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user'], "test1", true);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 2);
|
||||
|
||||
$crawler = self::$DI['client']->request("GET", "/feeds/feed/" . $feed->getId() . "/rss/");
|
||||
self::$DI['client']->request("GET", "/feeds/feed/" . $feed->getId() . "/rss/");
|
||||
$this->assertTrue(self::$DI['client']->getResponse()->isOk());
|
||||
$xml = self::$DI['client']->getResponse()->getContent();
|
||||
$this->verifyXML($xml);
|
||||
$this->verifyRSS($feed, $xml);
|
||||
|
||||
$crawler = self::$DI['client']->request("GET", "/feeds/feed/" . $feed->getId() . "/atom/");
|
||||
self::$DI['client']->request("GET", "/feeds/feed/" . $feed->getId() . "/atom/");
|
||||
$this->assertTrue(self::$DI['client']->getResponse()->isOk());
|
||||
$xml = self::$DI['client']->getResponse()->getContent();
|
||||
$this->verifyATOM($feed, $xml);
|
||||
@@ -220,8 +202,7 @@ class RssFeedTest extends \PhraseanetWebTestCase
|
||||
|
||||
public function testPrivateFeedAccess()
|
||||
{
|
||||
$feed = $this->insertOneFeed(self::$DI['user'], "test1", false);
|
||||
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
self::$DI['client']->request("GET", "/feeds/feed/" . $feed->getId() . "/rss/");
|
||||
$this->assertFalse(self::$DI['client']->getResponse()->isOk());
|
||||
$this->assertEquals(403, self::$DI['client']->getResponse()->getStatusCode());
|
||||
@@ -347,7 +328,7 @@ class RssFeedTest extends \PhraseanetWebTestCase
|
||||
|
||||
public function checkRSSEntryItemsNode(\DOMXPath $xpath, FeedEntry $entry, $count)
|
||||
{
|
||||
$content = $entry->getItems();
|
||||
$content = $entry->getItems()->toArray();
|
||||
$available_medium = ['image', 'audio', 'video'];
|
||||
array_walk($content, $this->removeBadItems($content, $available_medium));
|
||||
$media_group = $xpath->query("/rss/channel/item[" . $count . "]/media:group");
|
||||
@@ -390,7 +371,7 @@ class RssFeedTest extends \PhraseanetWebTestCase
|
||||
{
|
||||
$current_attributes = $this->parseAttributes($node);
|
||||
$is_thumbnail = false;
|
||||
$record = $entry_item->getRecord();
|
||||
$record = $entry_item->getRecord(self::$DI['app']);
|
||||
|
||||
if (false !== strpos($current_attributes["url"], 'preview')) {
|
||||
$ressource = $record->get_subdef('preview');
|
||||
@@ -533,7 +514,7 @@ class RssFeedTest extends \PhraseanetWebTestCase
|
||||
|
||||
if ($field["media_field"]["name"] == $node->nodeName && $role != false) {
|
||||
|
||||
if ($p4field = $entry_item->getRecord()->get_caption()->get_dc_field($field["dc_field"])) {
|
||||
if ($p4field = $entry_item->getRecord(self::$DI['app'])->get_caption()->get_dc_field($field["dc_field"])) {
|
||||
$this->assertEquals($p4field->get_serialized_values($field["separator"]), $node->nodeValue, sprintf('Asserting good value for DC %s', $field["dc_field"]));
|
||||
if (sizeof($field["media_field"]["attributes"]) > 0) {
|
||||
foreach ($node->attributes as $attribute) {
|
||||
@@ -552,12 +533,12 @@ class RssFeedTest extends \PhraseanetWebTestCase
|
||||
public function removeBadItems(Array &$item_entries, Array $available_medium)
|
||||
{
|
||||
$remove = function ($entry_item, $key) use (&$item_entries, $available_medium) {
|
||||
$preview_sd = $entry_item->getRecord()->get_subdef('preview');
|
||||
$preview_sd = $entry_item->getRecord(self::$DI['app'])->get_subdef('preview');
|
||||
$url_preview = $preview_sd->get_permalink();
|
||||
$thumbnail_sd = $entry_item->getRecord()->get_thumbnail();
|
||||
$thumbnail_sd = $entry_item->getRecord(self::$DI['app'])->get_thumbnail();
|
||||
$url_thumb = $thumbnail_sd->get_permalink();
|
||||
|
||||
if (!in_array(strtolower($entry_item->getRecord()->get_type()), $available_medium)) {
|
||||
if (!in_array(strtolower($entry_item->getRecord(self::$DI['app'])->get_type()), $available_medium)) {
|
||||
unset($item_entries[$key]); //remove
|
||||
}
|
||||
|
||||
|
@@ -280,7 +280,7 @@ class ConfigurationTest extends \PhraseanetTestCase
|
||||
$compiler->expects($this->once())
|
||||
->method('compile')
|
||||
->with(['main' => 'tiptop'])
|
||||
->will($this->returnValue('<?php return array("main" => "tiptop");'));
|
||||
->will($this->returnValue('<?php return ["main" => "tiptop"];'));
|
||||
|
||||
$yaml = $this->getMockBuilder('Symfony\Component\Yaml\Yaml')
|
||||
->disableOriginalConstructor()
|
||||
|
@@ -39,7 +39,7 @@ class BasketMiddlewareProviderTest extends MiddlewareProviderTestCase
|
||||
$this->authenticate(self::$DI['app']);
|
||||
self::$DI['app']->register(new BasketMiddlewareProvider());
|
||||
$request = new Request();
|
||||
$basket = $this->insertOneBasket(self::$DI['user']);
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
$request->attributes->set('basket', $basket->getId());
|
||||
call_user_func(self::$DI['app']['middleware.basket.converter'], $request, self::$DI['app']);
|
||||
$this->assertSame($basket, $request->attributes->get('basket'));
|
||||
@@ -59,7 +59,7 @@ class BasketMiddlewareProviderTest extends MiddlewareProviderTestCase
|
||||
$this->authenticate(self::$DI['app']);
|
||||
self::$DI['app']->register(new BasketMiddlewareProvider());
|
||||
$request = new Request();
|
||||
$basket = $this->insertOneBasket(self::$DI['user']);
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
$request->attributes->set('basket', $basket);
|
||||
call_user_func(self::$DI['app']['middleware.basket.user-access'], $request, self::$DI['app']);
|
||||
}
|
||||
@@ -69,7 +69,7 @@ class BasketMiddlewareProviderTest extends MiddlewareProviderTestCase
|
||||
$this->authenticate(self::$DI['app']);
|
||||
self::$DI['app']->register(new BasketMiddlewareProvider());
|
||||
$request = new Request();
|
||||
$basket = $this->insertOneBasket(self::$DI['user_alt1']);
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 3);
|
||||
$request->attributes->set('basket', $basket);
|
||||
$this->setExpectedException('Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException', 'Current user does not have access to the basket');
|
||||
call_user_func(self::$DI['app']['middleware.basket.user-access'], $request, self::$DI['app']);
|
||||
|
@@ -12,8 +12,9 @@ class AggregateLinkGeneratorTest extends \PhraseanetTestCase
|
||||
/**
|
||||
* @dataProvider provideGenerationData
|
||||
*/
|
||||
public function testGenerate($expected, $format, $user, $page, $renew, $alreadyCreated)
|
||||
public function testGenerate($expected, $format, $page, $renew, $alreadyCreated)
|
||||
{
|
||||
$user = self::$DI['user'];
|
||||
$feed = new Feed();
|
||||
$feed->setTitle("title");
|
||||
|
||||
@@ -29,7 +30,7 @@ class AggregateLinkGeneratorTest extends \PhraseanetTestCase
|
||||
->getMock();
|
||||
|
||||
if ($alreadyCreated) {
|
||||
$token = $this->insertOneAggregateToken($user);
|
||||
$token = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\AggregateToken', 1);
|
||||
$tokenValue = $token->getValue();
|
||||
}
|
||||
|
||||
@@ -98,40 +99,27 @@ class AggregateLinkGeneratorTest extends \PhraseanetTestCase
|
||||
->getRepository('Alchemy\Phrasea\Model\Entities\AggregateToken')
|
||||
->findBy(['value' => $capture['token']]));
|
||||
}
|
||||
$token = self::$DI['app']['EM']
|
||||
->getRepository('Alchemy\Phrasea\Model\Entities\AggregateToken')
|
||||
->findOneBy(['usrId' => $user->get_id()]);
|
||||
self::$DI['app']['EM']->remove($token);
|
||||
self::$DI['app']['EM']->flush();
|
||||
}
|
||||
|
||||
public function provideGenerationData()
|
||||
{
|
||||
$user = $this->getMockBuilder('User_Adapter')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$user->expects($this->any())
|
||||
->method('get_id')
|
||||
->will($this->returnValue(42));
|
||||
|
||||
return [
|
||||
['doliprane', 'atom', $user, null, false, false],
|
||||
['doliprane', 'atom', $user, null, false, true],
|
||||
['doliprane', 'atom', $user, null, true, false],
|
||||
['doliprane', 'atom', $user, null, true, true],
|
||||
['doliprane', 'atom', $user, 1, false, false],
|
||||
['doliprane', 'atom', $user, 1, false, true],
|
||||
['doliprane', 'atom', $user, 1, true, false],
|
||||
['doliprane', 'atom', $user, 1, true, true],
|
||||
['doliprane', 'rss', $user, null, false, false],
|
||||
['doliprane', 'rss', $user, null, false, true],
|
||||
['doliprane', 'rss', $user, null, true, false],
|
||||
['doliprane', 'rss', $user, null, true, true],
|
||||
['doliprane', 'rss', $user, 1, false, false],
|
||||
['doliprane', 'rss', $user, 1, false, true],
|
||||
['doliprane', 'rss', $user, 1, true, false],
|
||||
['doliprane', 'rss', $user, 1, true, true],
|
||||
['doliprane', 'atom', null, false, false],
|
||||
['doliprane', 'atom', null, false, true],
|
||||
['doliprane', 'atom', null, true, false],
|
||||
['doliprane', 'atom', null, true, true],
|
||||
['doliprane', 'atom', 1, false, false],
|
||||
['doliprane', 'atom', 1, false, true],
|
||||
['doliprane', 'atom', 1, true, false],
|
||||
['doliprane', 'atom', 1, true, true],
|
||||
['doliprane', 'rss', null, false, false],
|
||||
['doliprane', 'rss', null, false, true],
|
||||
['doliprane', 'rss', null, true, false],
|
||||
['doliprane', 'rss', null, true, true],
|
||||
['doliprane', 'rss', 1, false, false],
|
||||
['doliprane', 'rss', 1, false, true],
|
||||
['doliprane', 'rss', 1, true, false],
|
||||
['doliprane', 'rss', 1, true, true],
|
||||
];
|
||||
}
|
||||
|
||||
|
@@ -10,17 +10,17 @@ class FeedLinkGeneratorTest extends \PhraseanetTestCase
|
||||
/**
|
||||
* @dataProvider provideGenerationData
|
||||
*/
|
||||
public function testGenerate($expected, $format, $feed, $user, $page, $renew, $alreadyCreated)
|
||||
public function testGenerate($expected, $format, $page, $renew, $alreadyCreated)
|
||||
{
|
||||
self::$DI['app']['EM']->persist($feed);
|
||||
self::$DI['app']['EM']->flush();
|
||||
$user = self::$DI['user'];
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
|
||||
$generator = $this->getMockBuilder('Symfony\Component\Routing\Generator\UrlGenerator')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
if ($alreadyCreated) {
|
||||
$token = $this->insertOneFeedToken($feed, $user);
|
||||
$token = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\FeedToken', 1);
|
||||
$tokenValue = $token->getValue();
|
||||
}
|
||||
|
||||
@@ -43,10 +43,10 @@ class FeedLinkGeneratorTest extends \PhraseanetTestCase
|
||||
$this->assertSame($expected, $link->getUri());
|
||||
if ($format == "atom") {
|
||||
$this->assertSame("application/atom+xml", $link->getMimetype());
|
||||
$this->assertSame("Title - Atom", $link->getTitle());
|
||||
$this->assertSame("Feed test, YOLO! - Atom", $link->getTitle());
|
||||
} elseif ($format == "rss") {
|
||||
$this->assertSame("application/rss+xml", $link->getMimetype());
|
||||
$this->assertSame("Title - RSS", $link->getTitle());
|
||||
$this->assertSame("Feed test, YOLO! - RSS", $link->getTitle());
|
||||
}
|
||||
|
||||
if ($alreadyCreated) {
|
||||
@@ -93,20 +93,14 @@ class FeedLinkGeneratorTest extends \PhraseanetTestCase
|
||||
->getRepository('Alchemy\Phrasea\Model\Entities\FeedToken')
|
||||
->findBy(['value' => $capture['token']]));
|
||||
}
|
||||
$token = self::$DI['app']['EM']
|
||||
->getRepository('Alchemy\Phrasea\Model\Entities\FeedToken')
|
||||
->findOneBy(['usrId' => $user->get_id(), 'feed' => $feed->getId()]);
|
||||
self::$DI['app']['EM']->remove($token);
|
||||
self::$DI['app']['EM']->flush();
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideGenerationDataPublic
|
||||
*/
|
||||
public function testGeneratePublic($expected, $format, $feed, $page)
|
||||
public function testGeneratePublic($expected, $format, $page)
|
||||
{
|
||||
self::$DI['app']['EM']->persist($feed);
|
||||
self::$DI['app']['EM']->flush();
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
|
||||
$generator = $this->getMockBuilder('Symfony\Component\Routing\Generator\UrlGenerator')
|
||||
->disableOriginalConstructor()
|
||||
@@ -131,10 +125,10 @@ class FeedLinkGeneratorTest extends \PhraseanetTestCase
|
||||
$this->assertSame($expected, $link->getUri());
|
||||
if ($format == "atom") {
|
||||
$this->assertSame("application/atom+xml", $link->getMimetype());
|
||||
$this->assertSame("Title - Atom", $link->getTitle());
|
||||
$this->assertSame("Feed test, YOLO! - Atom", $link->getTitle());
|
||||
} elseif ($format == "rss") {
|
||||
$this->assertSame("application/rss+xml", $link->getMimetype());
|
||||
$this->assertSame("Title - RSS", $link->getTitle());
|
||||
$this->assertSame("Feed test, YOLO! - RSS", $link->getTitle());
|
||||
}
|
||||
|
||||
if (null !== $page) {
|
||||
@@ -146,47 +140,33 @@ class FeedLinkGeneratorTest extends \PhraseanetTestCase
|
||||
|
||||
public function provideGenerationData()
|
||||
{
|
||||
$user = $this->getMockBuilder('User_Adapter')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$user->expects($this->any())
|
||||
->method('get_id')
|
||||
->will($this->returnValue(42));
|
||||
|
||||
$feed = new \Alchemy\Phrasea\Model\Entities\Feed();
|
||||
$feed->setTitle('Title');
|
||||
|
||||
return [
|
||||
['doliprane', 'atom', $feed, $user, null, false, false],
|
||||
['doliprane', 'atom', $feed, $user, null, false, true],
|
||||
['doliprane', 'atom', $feed, $user, null, true, false],
|
||||
['doliprane', 'atom', $feed, $user, null, true, true],
|
||||
['doliprane', 'atom', $feed, $user, 1, false, false],
|
||||
['doliprane', 'atom', $feed, $user, 1, false, true],
|
||||
['doliprane', 'atom', $feed, $user, 1, true, false],
|
||||
['doliprane', 'atom', $feed, $user, 1, true, true],
|
||||
['doliprane', 'rss', $feed, $user, null, false, false],
|
||||
['doliprane', 'rss', $feed, $user, null, false, true],
|
||||
['doliprane', 'rss', $feed, $user, null, true, false],
|
||||
['doliprane', 'rss', $feed, $user, null, true, true],
|
||||
['doliprane', 'rss', $feed, $user, 1, false, false],
|
||||
['doliprane', 'rss', $feed, $user, 1, false, true],
|
||||
['doliprane', 'rss', $feed, $user, 1, true, false],
|
||||
['doliprane', 'rss', $feed, $user, 1, true, true],
|
||||
['doliprane', 'atom', null, false, false],
|
||||
['doliprane', 'atom', null, false, true],
|
||||
['doliprane', 'atom', null, true, false],
|
||||
['doliprane', 'atom', null, true, true],
|
||||
['doliprane', 'atom', 1, false, false],
|
||||
['doliprane', 'atom', 1, false, true],
|
||||
['doliprane', 'atom', 1, true, false],
|
||||
['doliprane', 'atom', 1, true, true],
|
||||
['doliprane', 'rss', null, false, false],
|
||||
['doliprane', 'rss', null, false, true],
|
||||
['doliprane', 'rss', null, true, false],
|
||||
['doliprane', 'rss', null, true, true],
|
||||
['doliprane', 'rss', 1, false, false],
|
||||
['doliprane', 'rss', 1, false, true],
|
||||
['doliprane', 'rss', 1, true, false],
|
||||
['doliprane', 'rss', 1, true, true],
|
||||
];
|
||||
}
|
||||
|
||||
public function provideGenerationDataPublic()
|
||||
{
|
||||
$feed = new \Alchemy\Phrasea\Model\Entities\Feed();
|
||||
$feed->setTitle('Title');
|
||||
|
||||
return [
|
||||
['doliprane', 'atom', $feed, null],
|
||||
['doliprane', 'atom', $feed, 1],
|
||||
['doliprane', 'rss', $feed, null],
|
||||
['doliprane', 'rss', $feed, 1]
|
||||
['doliprane', 'atom', null],
|
||||
['doliprane', 'atom', 1],
|
||||
['doliprane', 'rss', null],
|
||||
['doliprane', 'rss', 1]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@@ -8,7 +8,7 @@ class BasketConverterTest extends \PhraseanetTestCase
|
||||
{
|
||||
public function testConvert()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
|
||||
$converter = new BasketConverter(self::$DI['app']['EM']);
|
||||
$this->assertSame($basket, $converter->convert($basket->getId()));
|
||||
|
@@ -9,16 +9,10 @@ class TaskConverterTest extends \PhraseanetTestCase
|
||||
{
|
||||
public function testConvert()
|
||||
{
|
||||
$task = new Task();
|
||||
$task
|
||||
->setName('task 1')
|
||||
->setJobId('Alchemy\Phrasea\TaskManager\Job\NullJob');
|
||||
|
||||
self::$DI['app']['EM']->persist($task);
|
||||
self::$DI['app']['EM']->flush();
|
||||
$task = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Task', 1);
|
||||
|
||||
$converter = new TaskConverter(self::$DI['app']['EM']);
|
||||
$this->assertSame($task, $converter->convert($task->getId()));
|
||||
$this->assertSame($task, $converter->convert(1));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -97,7 +97,7 @@ class UserTest extends \PhraseanetTestCase
|
||||
public function testIsTemplate()
|
||||
{
|
||||
$this->assertFalse($this->user->isTemplate());
|
||||
$template = $this->insertOneUser('login2');
|
||||
$template = new User();
|
||||
$this->user->setModelOf($template);
|
||||
$this->assertTrue($this->user->isTemplate());
|
||||
}
|
||||
@@ -116,10 +116,10 @@ class UserTest extends \PhraseanetTestCase
|
||||
|
||||
public function testSetModelOf()
|
||||
{
|
||||
$template = $this->insertOneUser('login');
|
||||
$user = $this->insertOneUser('login2');
|
||||
$template = new User();
|
||||
$user = new User();
|
||||
$template->setModelOf($user);
|
||||
$this->assertEquals('login2', $template->getModelOf()->getLogin());
|
||||
$this->assertSame($user, $template->getModelOf());
|
||||
}
|
||||
|
||||
public function genderProvider()
|
||||
|
@@ -28,9 +28,9 @@ class UserManagerTest extends \PhraseanetTestCase
|
||||
|
||||
public function testUpdateUser()
|
||||
{
|
||||
$template = self::$DI['app']['manipulator.user']->createUser('template', 'password');
|
||||
$template = self::$DI['app']['manipulator.user']->createUser('template'.uniqid(), 'password');
|
||||
self::$DI['app']['model.user-manager']->update($template);
|
||||
$user = self::$DI['app']['manipulator.user']->createUser('login', 'password');
|
||||
$user = self::$DI['app']['manipulator.user']->createUser('login'.uniqid(), 'password');
|
||||
$user->setModelOf($template);
|
||||
self::$DI['app']['model.user-manager']->update($user);
|
||||
$this->assertNotNull($user->getPassword());
|
||||
|
@@ -16,13 +16,15 @@ class TaskManipulatorTest extends \PhraseanetTestCase
|
||||
->with(Notifier::MESSAGE_CREATE);
|
||||
|
||||
$manipulator = new TaskManipulator(self::$DI['app']['EM'], $notifier, self::$DI['app']['translator']);
|
||||
$this->assertCount(0, $this->findAllTasks());
|
||||
$this->assertCount(2, $this->findAllTasks());
|
||||
$task = $manipulator->create('prout', 'bla bla', 'super settings', 0);
|
||||
$this->assertEquals('prout', $task->getName());
|
||||
$this->assertEquals('bla bla', $task->getJobId());
|
||||
$this->assertEquals('super settings', $task->getSettings());
|
||||
$this->assertEquals(0, $task->getPeriod());
|
||||
$this->assertSame([$task], $this->findAllTasks());
|
||||
$allTasks = $this->findAllTasks();
|
||||
$this->assertCount(3, $allTasks);
|
||||
$this->assertContains($task, $allTasks);
|
||||
|
||||
return $task;
|
||||
}
|
||||
@@ -39,7 +41,8 @@ class TaskManipulatorTest extends \PhraseanetTestCase
|
||||
$task->setName('new name');
|
||||
$this->assertSame($task, $manipulator->update($task));
|
||||
self::$DI['app']['EM']->clear();
|
||||
$this->assertEquals([$task], $this->findAllTasks());
|
||||
$updated = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Task', 1);
|
||||
$this->assertEquals($task, $updated);
|
||||
}
|
||||
|
||||
public function testDelete()
|
||||
@@ -52,7 +55,7 @@ class TaskManipulatorTest extends \PhraseanetTestCase
|
||||
$manipulator = new TaskManipulator(self::$DI['app']['EM'], $notifier, self::$DI['app']['translator']);
|
||||
$task = $this->loadTask();
|
||||
$manipulator->delete($task);
|
||||
$this->assertEquals([], $this->findAllTasks());
|
||||
$this->assertNotContains($task, $this->findAllTasks());
|
||||
}
|
||||
|
||||
public function testStart()
|
||||
@@ -121,7 +124,7 @@ class TaskManipulatorTest extends \PhraseanetTestCase
|
||||
|
||||
$tasks = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Task')->findAll();
|
||||
$this->assertSame('EmptyCollection', $task->getJobId());
|
||||
$this->assertSame([$task], $tasks);
|
||||
$this->assertContains($task, $tasks);
|
||||
$settings = simplexml_load_string($task->getSettings());
|
||||
$this->assertEquals(42, (int) $settings->bas_id);
|
||||
}
|
||||
@@ -132,15 +135,7 @@ class TaskManipulatorTest extends \PhraseanetTestCase
|
||||
|
||||
private function loadTask()
|
||||
{
|
||||
$task = new Task();
|
||||
$task
|
||||
->setName('test')
|
||||
->setJobId('SuperSpace');
|
||||
|
||||
self::$DI['app']['EM']->persist($task);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return $task;
|
||||
return self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Task', 1);
|
||||
}
|
||||
|
||||
private function createNotifierMock()
|
||||
|
@@ -2,68 +2,65 @@
|
||||
|
||||
namespace Alchemy\Tests\Phrasea\Model\Repositories;
|
||||
|
||||
use Alchemy\Phrasea\Model\Entities\FeedItem;
|
||||
|
||||
class FeedItemRepositoryTest extends \PhraseanetTestCase
|
||||
{
|
||||
public function testIs_record_in_public_feedInPublicFeed()
|
||||
{
|
||||
$item = $this->insertOneFeedItem(self::$DI['user'], true);
|
||||
$record = $item->getRecord(self::$DI['app']);
|
||||
$record = self::$DI['record_7'];
|
||||
$this->assertTrue(self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\FeedItem')->isRecordInPublicFeed(self::$DI['app'], $record->get_sbas_id(), $record->get_record_id()));
|
||||
}
|
||||
|
||||
public function testIs_record_in_public_feedInPrivateFeed()
|
||||
{
|
||||
$record = $this->insertOneFeedItem(self::$DI['user'], false)->getRecord(self::$DI['app']);
|
||||
$record = self::$DI['record_2'];
|
||||
$this->assertFalse(self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\FeedItem')->isRecordInPublicFeed(self::$DI['app'], $record->get_sbas_id(), $record->get_record_id()));
|
||||
}
|
||||
|
||||
public function testLoadLatestItems()
|
||||
{
|
||||
$this->insertOneFeedItem(self::$DI['user'], true, 2);
|
||||
$this->assertCount(2, self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\FeedItem')->loadLatest(self::$DI['app'], 20));
|
||||
$this->assertCount(3, self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\FeedItem')->loadLatest(self::$DI['app'], 20));
|
||||
}
|
||||
|
||||
public function testLoadLatestItemsLessItems()
|
||||
{
|
||||
$this->insertOneFeedItem(self::$DI['user'], true, 2);
|
||||
$this->assertCount(1, self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\FeedItem')->loadLatest(self::$DI['app'], 1));
|
||||
}
|
||||
|
||||
public function testLoadLatestItemsNoPublic()
|
||||
{
|
||||
$this->insertOneFeedItem(self::$DI['user'], false, 2);
|
||||
$this->assertCount(0, self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\FeedItem')->loadLatest(self::$DI['app'], 20));
|
||||
}
|
||||
|
||||
public function testLoadLatestWithDeletedDatabox()
|
||||
{
|
||||
$record = $this->getMockBuilder('record_adapter')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$record->expects($this->any())
|
||||
->method('get_sbas_id')
|
||||
->will($this->returnValue(0));
|
||||
$record->expects($this->any())
|
||||
->method('get_record_id')
|
||||
->will($this->returnValue(self::$DI['record_1']->get_record_id()));
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 2);
|
||||
$entry = $feed->getEntries()->first();
|
||||
$item = new FeedItem();
|
||||
$item->setEntry($entry)
|
||||
->setOrd(4)
|
||||
->setRecordId(self::$DI['record_1']->get_record_id())
|
||||
->setSbasId(0);
|
||||
$entry->addItem($item);
|
||||
|
||||
$this->insertOneFeedItem(self::$DI['user'], true, 1, $record);
|
||||
$this->assertCount(0, self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\FeedItem')->loadLatest(self::$DI['app'], 20));
|
||||
}
|
||||
self::$DI['app']['EM']->persist($item);
|
||||
|
||||
public function testLoadLatestWithDeletedRecord()
|
||||
{
|
||||
$record = $this->getMockBuilder('record_adapter')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$record->expects($this->any())
|
||||
->method('get_sbas_id')
|
||||
->will($this->returnValue(self::$DI['record_1']->get_sbas_id()));
|
||||
$record->expects($this->any())
|
||||
->method('get_record_id')
|
||||
->will($this->returnValue(0));
|
||||
$item = new FeedItem();
|
||||
$item->setEntry($entry)
|
||||
->setOrd(4)
|
||||
->setRecordId(0)
|
||||
->setSbasId(self::$DI['record_1']->get_sbas_id());
|
||||
$entry->addItem($item);
|
||||
|
||||
$this->insertOneFeedItem(self::$DI['user'], true, 1, $record);
|
||||
$this->assertCount(0, self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\FeedItem')->loadLatest(self::$DI['app'], 20));
|
||||
self::$DI['app']['EM']->persist($item);
|
||||
|
||||
$item = new FeedItem();
|
||||
$item->setEntry($entry)
|
||||
->setOrd(4)
|
||||
->setRecordId(self::$DI['record_1']->get_record_id())
|
||||
->setSbasId(self::$DI['record_1']->get_record_id());
|
||||
$entry->addItem($item);
|
||||
self::$DI['app']['EM']->persist($item);
|
||||
|
||||
self::$DI['app']['EM']->persist($entry);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
$this->assertCount(4, self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\FeedItem')->loadLatest(self::$DI['app'], 20));
|
||||
}
|
||||
}
|
||||
|
@@ -8,19 +8,11 @@ class TaskRepositoryTest extends \PhraseanetTestCase
|
||||
{
|
||||
public function testFindActiveTask()
|
||||
{
|
||||
$task1 = new Task();
|
||||
$task1
|
||||
->setName('task 1')
|
||||
->setStatus(Task::STATUS_STOPPED)
|
||||
->setJobId('Alchemy\Phrasea\TaskManager\Job\NullJob');
|
||||
|
||||
$task2 = new Task();
|
||||
$task2
|
||||
->setName('task 2')
|
||||
->setJobId('Alchemy\Phrasea\TaskManager\Job\NullJob');
|
||||
$task1 = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Task', 1);
|
||||
$task1->setStatus(Task::STATUS_STOPPED);
|
||||
$task2 = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Task', 2);
|
||||
|
||||
self::$DI['app']['EM']->persist($task1);
|
||||
self::$DI['app']['EM']->persist($task2);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
$repository = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Task');
|
||||
|
@@ -8,78 +8,20 @@ class UserRepositoryTest extends \PhraseanetTestCase
|
||||
{
|
||||
public function testFindAdminsWithNoAdmins()
|
||||
{
|
||||
$this->insertOneUser('login');
|
||||
$users = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\User')->findAdmins();
|
||||
$this->assertEquals(0, count($users));
|
||||
}
|
||||
|
||||
public function testFindAdminsWithOneAdmin()
|
||||
{
|
||||
$this->insertOneUser('login', null, true);
|
||||
$users = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\User')->findAdmins();
|
||||
$this->assertEquals(1, count($users));
|
||||
}
|
||||
|
||||
public function testFindAdminsWithOneAdminButTemplate()
|
||||
{
|
||||
$user = $this->insertOneUser('login');
|
||||
$template = $this->insertOneUser('login2', null, true);
|
||||
|
||||
$template->setModelOf($user);
|
||||
|
||||
self::$DI['app']['EM']->persist($template);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
$users = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\User')->findAdmins();
|
||||
$this->assertEquals(0, count($users));
|
||||
}
|
||||
|
||||
public function testFindAdminsWithOneAdminButDeleted()
|
||||
{
|
||||
$user = $this->insertOneUser('login', null, true);
|
||||
$user->setDeleted(true);
|
||||
|
||||
self::$DI['app']['EM']->persist($user);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
$users = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\User')->findAdmins();
|
||||
$this->assertEquals(0, count($users));
|
||||
}
|
||||
|
||||
public function testFindByLogin()
|
||||
{
|
||||
$this->insertOneUser('login');
|
||||
$user = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\User')->findByLogin('login');
|
||||
$user = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\User')->findByLogin('user1');
|
||||
$this->assertInstanceOf('Alchemy\Phrasea\Model\Entities\User', $user);
|
||||
$this->assertNull(self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\User')->findByLogin('wrong-login'));
|
||||
}
|
||||
|
||||
public function testFindUserByEmail()
|
||||
{
|
||||
$this->insertOneUser('login', 'toto@toto.to');
|
||||
$user = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\User')->findByEmail('toto@toto.to');
|
||||
$user = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\User')->findByEmail('user2@phraseanet.com');
|
||||
$this->assertInstanceOf('Alchemy\Phrasea\Model\Entities\User', $user);
|
||||
}
|
||||
|
||||
public function testFindUserByEmailButDeleted()
|
||||
{
|
||||
$user = $this->insertOneUser('login', 'toto@toto.to');
|
||||
$user->setDeleted(true);
|
||||
|
||||
self::$DI['app']['EM']->persist($user);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
$this->assertNull(self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\User')->findByEmail('toto@toto.to'));
|
||||
}
|
||||
|
||||
public function testFindUserByEmailButNullEmail()
|
||||
{
|
||||
$user = $this->insertOneUser('login');
|
||||
$user->setDeleted(true);
|
||||
|
||||
self::$DI['app']['EM']->persist($user);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
$this->assertNull(self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\User')->findByEmail('toto@toto.to'));
|
||||
}
|
||||
}
|
||||
|
@@ -19,7 +19,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
if (!self::$initialized) {
|
||||
$found = false;
|
||||
foreach (self::$DI['record_24']->get_databox()->get_meta_structure()->get_elements() as $field) {
|
||||
foreach (self::$DI['record_2']->get_databox()->get_meta_structure()->get_elements() as $field) {
|
||||
if (!$field->isBusiness()) {
|
||||
continue;
|
||||
}
|
||||
@@ -27,7 +27,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
}
|
||||
|
||||
if (!$found) {
|
||||
$field = \databox_field::create(self::$DI['app'], self::$DI['record_24']->get_databox(), 'testBusiness' . mt_rand(), false);
|
||||
$field = \databox_field::create(self::$DI['app'], self::$DI['record_2']->get_databox(), 'testBusiness' . mt_rand(), false);
|
||||
$field->set_business(true);
|
||||
$field->save();
|
||||
}
|
||||
@@ -61,7 +61,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
public function testQueryRecordId()
|
||||
{
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
$query_string = 'recordid=' . $record->get_record_id();
|
||||
|
||||
self::$searchEngine->addRecord($record);
|
||||
@@ -79,7 +79,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
public function testQueryStoryId()
|
||||
{
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
$query_string = 'storyid=' . $record->get_record_id();
|
||||
|
||||
self::$searchEngine->addRecord($record);
|
||||
@@ -97,7 +97,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
public function testQueryByDateMin()
|
||||
{
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
$query_string = 'boomboklot' . $record->get_record_id() . 'dateMin';
|
||||
|
||||
$this->editRecord($query_string, $record);
|
||||
@@ -168,7 +168,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
public function testQueryByDateMax()
|
||||
{
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
$query_string = 'boomboklot' . $record->get_record_id() . 'dateMax';
|
||||
|
||||
$this->editRecord($query_string, $record);
|
||||
@@ -201,7 +201,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
public function testQueryByDateRange()
|
||||
{
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
$query_string = 'boomboklot' . $record->get_record_id() . 'dateRange';
|
||||
|
||||
$this->editRecord($query_string, $record);
|
||||
@@ -267,7 +267,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
public function testRecordNotIndexed()
|
||||
{
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
$query_string = 'boomboklot' . $record->get_record_id() . 'defaultNotIndexed';
|
||||
|
||||
$this->editRecord($query_string, $record);
|
||||
@@ -279,7 +279,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
public function testAddRecord()
|
||||
{
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
$query_string = 'boomboklot' . $record->get_record_id() . 'defaultAdd';
|
||||
|
||||
$this->editRecord($query_string, $record);
|
||||
@@ -294,7 +294,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
public function testUpdateRecord()
|
||||
{
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
|
||||
self::$searchEngine->addRecord($record);
|
||||
$this->updateIndex();
|
||||
@@ -341,7 +341,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
$options->setLocale($language);
|
||||
self::$searchEngine->setOptions($options);
|
||||
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
$index_string = sprintf(
|
||||
'boomboklot%dstemmed%s %s',
|
||||
$record->get_record_id(),
|
||||
@@ -397,7 +397,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
public function testUpdateQueryOnField()
|
||||
{
|
||||
$options = $this->getDefaultOptions();
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
|
||||
$query_string = 'boomboklot' . $record->get_record_id() . 'onfield';
|
||||
|
||||
@@ -417,7 +417,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
public function testBusinessFieldAvailable()
|
||||
{
|
||||
$options = $this->getDefaultOptions();
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
|
||||
$query_string = 'boomboklot' . $record->get_record_id() . 'businessAvailable';
|
||||
|
||||
@@ -435,7 +435,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
public function testBusinessFieldNotAvailable()
|
||||
{
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
$query_string = 'boomboklot' . $record->get_record_id() . 'businessNotAvailable';
|
||||
|
||||
$this->editRecord($query_string, $record, true, true);
|
||||
@@ -452,7 +452,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
{
|
||||
$options = $this->getDefaultOptions();
|
||||
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
$query_string = 'boomboklot' . $record->get_record_id() . 'anotherfield';
|
||||
|
||||
$selectedField = $this->editRecord($query_string, $record);
|
||||
@@ -476,7 +476,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
public function testUpdateNonIndexableRecord()
|
||||
{
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
$query_string = 'boomboklot_no_index_' . $record->get_record_id() . '_';
|
||||
|
||||
$field = $this->editRecord($query_string, $record, false);
|
||||
@@ -494,7 +494,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
public function testDeleteRecord()
|
||||
{
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
$query_string = 'boomboklot' . $record->get_record_id() . 'deleteRecord';
|
||||
|
||||
$field = $this->editRecord($query_string, $record);
|
||||
@@ -522,7 +522,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
*/
|
||||
public function testDeleteRecordWithinStemmContext($language, $word, $stemm)
|
||||
{
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
$index_string = 'boomboklot' . $record->get_record_id() . 'deleteRecordInStemmContext '.$word;
|
||||
$query_string = 'boomboklot' . $record->get_record_id() . 'deleteRecordInStemmContext '.$stemm;
|
||||
|
||||
@@ -619,7 +619,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
public function testStatusQueryOnOverOff()
|
||||
{
|
||||
$options = $this->getDefaultOptions();
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
$record->set_binary_status('00000');
|
||||
|
||||
$query_string = 'boomboklot' . $record->get_record_id() . 'statusQueryOff';
|
||||
@@ -640,7 +640,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
{
|
||||
$options = $this->getDefaultOptions();
|
||||
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
$record->set_binary_status('10000');
|
||||
|
||||
$options->setStatus([4 => ['on' => [$record->get_databox()->get_sbas_id()]]]);
|
||||
@@ -661,7 +661,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
{
|
||||
$options = $this->getDefaultOptions();
|
||||
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
$record->set_binary_status('10000');
|
||||
|
||||
$options->setStatus([4 => ['off' => [$record->get_databox()->get_sbas_id()]]]);
|
||||
@@ -682,7 +682,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
{
|
||||
$options = $this->getDefaultOptions();
|
||||
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
$record->set_binary_status('00000');
|
||||
|
||||
$options->setStatus([4 => ['off' => [$record->get_databox()->get_sbas_id()]]]);
|
||||
@@ -702,7 +702,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
public function testStatusQueryUpdate()
|
||||
{
|
||||
$options = $this->getDefaultOptions();
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
$record->set_binary_status('00000');
|
||||
|
||||
$query_string = 'boomboklot' . $record->get_record_id() . 'statusQueryUpdate';
|
||||
@@ -730,7 +730,7 @@ abstract class SearchEngineAbstractTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
public function testExcerptFromSimpleQuery()
|
||||
{
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
$query_string = 'boomboklot' . $record->get_record_id() . 'excerptSimpleQuery';
|
||||
|
||||
$this->editRecord($query_string, $record);
|
||||
|
@@ -14,7 +14,7 @@ class SearchEngineResultTest extends \PhraseanetTestCase
|
||||
public function testBasic()
|
||||
{
|
||||
$results = new ArrayCollection([
|
||||
self::$DI['record_24']
|
||||
self::$DI['record_2']
|
||||
]);
|
||||
|
||||
$query = 'Gotainer';
|
||||
@@ -52,7 +52,7 @@ class SearchEngineResultTest extends \PhraseanetTestCase
|
||||
public function testWithOffsetStartAtZero()
|
||||
{
|
||||
$results = new ArrayCollection([
|
||||
self::$DI['record_24']
|
||||
self::$DI['record_2']
|
||||
]);
|
||||
|
||||
$query = 'Gotainer';
|
||||
|
@@ -83,7 +83,7 @@ class SphinxSearchEngineTest extends SearchEngineAbstractTest
|
||||
public function tearDown()
|
||||
{
|
||||
if (!self::$skipped) {
|
||||
self::$searchEngine->removeRecord(self::$DI['record_24']);
|
||||
self::$searchEngine->removeRecord(self::$DI['record_2']);
|
||||
}
|
||||
|
||||
parent::tearDown();
|
||||
@@ -113,7 +113,7 @@ class SphinxSearchEngineTest extends SearchEngineAbstractTest
|
||||
*/
|
||||
public function testAutocomplete()
|
||||
{
|
||||
$record = self::$DI['record_24'];
|
||||
$record = self::$DI['record_2'];
|
||||
|
||||
$toupdate = [];
|
||||
|
||||
|
@@ -10,12 +10,7 @@ class FinishedJobRemoverSubscriberTest extends \PhraseanetTestCase
|
||||
{
|
||||
public function testOnJobFinish()
|
||||
{
|
||||
$task = new Task();
|
||||
$task
|
||||
->setName('task')
|
||||
->setJobId('Alchemy\Phrasea\TaskManager\Job\NullJob');
|
||||
self::$DI['app']['EM']->persist($task);
|
||||
self::$DI['app']['EM']->flush();
|
||||
$task = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Task', 1);
|
||||
$taskId = $task->getId();
|
||||
|
||||
$subscriber = new FinishedJobRemoverSubscriber(self::$DI['app']['EM']);
|
||||
|
@@ -49,11 +49,7 @@ class LiveInformationTest extends \PhraseanetTestCase
|
||||
|
||||
public function testItReturnsWorkingTaskStatus()
|
||||
{
|
||||
$task = new Task();
|
||||
$task->setName('Task')->setJobId('Null');
|
||||
|
||||
self::$DI['app']['EM']->persist($task);
|
||||
self::$DI['app']['EM']->flush();
|
||||
$task = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Task', 1);
|
||||
|
||||
$notifier = $this->createNotifierMock();
|
||||
$notifier->expects($this->once())
|
||||
@@ -82,11 +78,7 @@ class LiveInformationTest extends \PhraseanetTestCase
|
||||
|
||||
public function testItReturnsNonWorkingTaskStatus()
|
||||
{
|
||||
$task = new Task();
|
||||
$task->setName('Task')->setJobId('Null');
|
||||
|
||||
self::$DI['app']['EM']->persist($task);
|
||||
self::$DI['app']['EM']->flush();
|
||||
$task = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Task', 1);
|
||||
|
||||
$notifier = $this->createNotifierMock();
|
||||
$notifier->expects($this->once())
|
||||
|
@@ -9,13 +9,7 @@ class LogFilefactorytest extends \PhraseanetTestCase
|
||||
{
|
||||
public function testForTask()
|
||||
{
|
||||
$task = new Task();
|
||||
$task
|
||||
->setName('task')
|
||||
->setJobId('Alchemy\Phrasea\TaskManager\Job\NullJob');
|
||||
|
||||
self::$DI['app']['EM']->persist($task);
|
||||
self::$DI['app']['EM']->flush();
|
||||
$task = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Task', 1);
|
||||
|
||||
$root = __DIR__ . '/root';
|
||||
$factory = new LogFilefactory($root);
|
||||
|
@@ -19,13 +19,7 @@ class TaskLogFileTest extends LogFileTestCase
|
||||
|
||||
protected function getLogFile($root)
|
||||
{
|
||||
$task = new Task();
|
||||
$task
|
||||
->setName('task')
|
||||
->setJobId('Alchemy\Phrasea\TaskManager\Job\NullJob');
|
||||
|
||||
self::$DI['app']['EM']->persist($task);
|
||||
self::$DI['app']['EM']->flush();
|
||||
$task = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Task', 1);
|
||||
|
||||
return new TaskLogFile($root, $task);
|
||||
}
|
||||
|
@@ -21,16 +21,6 @@ class TaskListTest extends \PhraseanetTestCase
|
||||
|
||||
public function getTaskList()
|
||||
{
|
||||
$task1 = new Task();
|
||||
$task1
|
||||
->setName('task 1')
|
||||
->setJobId('Alchemy\Phrasea\TaskManager\Job\NullJob');
|
||||
|
||||
$task2 = new Task();
|
||||
$task2
|
||||
->setName('task 2')
|
||||
->setJobId('Alchemy\Phrasea\TaskManager\Job\NullJob');
|
||||
|
||||
$task3 = new Task();
|
||||
$task3
|
||||
->setName('task 3')
|
||||
@@ -38,8 +28,6 @@ class TaskListTest extends \PhraseanetTestCase
|
||||
->setJobId('Alchemy\Phrasea\TaskManager\Job\NullJob');
|
||||
|
||||
self::$DI['app']['EM']->persist($task3);
|
||||
self::$DI['app']['EM']->persist($task1);
|
||||
self::$DI['app']['EM']->persist($task2);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return new TaskList(self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Task'), self::$DI['app']['root.path'], '/path/to/php', '/path/to/php-conf');
|
||||
@@ -68,10 +56,11 @@ class TaskListTest extends \PhraseanetTestCase
|
||||
public function testGeneratedProcesses()
|
||||
{
|
||||
$list = $this->getTaskList();
|
||||
$n = 2; // task 3 is the first to be registered
|
||||
$n = 1;
|
||||
foreach ($list->refresh() as $task) {
|
||||
$this->assertEquals("'/path/to/php' '-c' '/path/to/php-conf' '-f' '".self::$DI['app']['root.path']."/bin/console' '--' '-q' 'task-manager:task:run' '".$n."' '--listen-signal' '--max-duration' '1800' '--max-memory' '134217728'", $task->createProcess()->getCommandLine());
|
||||
$n++;
|
||||
}
|
||||
$this->assertSame(3, $n);
|
||||
}
|
||||
}
|
||||
|
@@ -64,11 +64,11 @@ class TaskManagerStatusTest extends \PhraseanetTestCase
|
||||
public function provideConfAndStatusData()
|
||||
{
|
||||
return [
|
||||
// array(array(), TaskManagerStatus::STATUS_STARTED, true),
|
||||
// array(array('task-manager' => array()), TaskManagerStatus::STATUS_STARTED, true),
|
||||
[[], TaskManagerStatus::STATUS_STARTED, true],
|
||||
[['task-manager' => []], TaskManagerStatus::STATUS_STARTED, true],
|
||||
[['task-manager' => ['status' => TaskManagerStatus::STATUS_STOPPED]], TaskManagerStatus::STATUS_STOPPED, false],
|
||||
// array(array('task-manager' => array('status' => TaskManagerStatus::STATUS_STARTED)), TaskManagerStatus::STATUS_STARTED, true),
|
||||
// array(array('task-manager' => array('status' => 'unknown')), TaskManagerStatus::STATUS_STARTED, true),
|
||||
[['task-manager' => ['status' => TaskManagerStatus::STATUS_STARTED]], TaskManagerStatus::STATUS_STARTED, true],
|
||||
[['task-manager' => ['status' => 'unknown']], TaskManagerStatus::STATUS_STARTED, true],
|
||||
];
|
||||
}
|
||||
|
||||
|
@@ -183,7 +183,7 @@ class Bridge_Api_Apitest extends Bridge_Api_Abstract implements Bridge_Api_Inter
|
||||
*/
|
||||
public function connect()
|
||||
{
|
||||
return array('auth_token' => 'kikoo', 'refresh_token' => 'kooki');
|
||||
return ['auth_token' => 'kikoo', 'refresh_token' => 'kooki'];
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -413,7 +413,7 @@ class Bridge_Api_Apitest extends Bridge_Api_Abstract implements Bridge_Api_Inter
|
||||
|
||||
}
|
||||
|
||||
public function upload(record_adapter $record, array $options = array())
|
||||
public function upload(record_adapter $record, array $options = [])
|
||||
{
|
||||
|
||||
}
|
||||
@@ -433,15 +433,15 @@ class Bridge_Api_Apitest extends Bridge_Api_Abstract implements Bridge_Api_Inter
|
||||
if (self::$hasError) {
|
||||
self::$hasError = false;
|
||||
|
||||
return array('title' => 'too long');
|
||||
return ['title' => 'too long'];
|
||||
}
|
||||
|
||||
return array();
|
||||
return [];
|
||||
}
|
||||
|
||||
public function get_upload_datas(\Symfony\Component\HttpFoundation\Request $request, record_adapter $record)
|
||||
{
|
||||
return array();
|
||||
return [];
|
||||
}
|
||||
|
||||
public function is_multiple_upload()
|
||||
@@ -457,17 +457,17 @@ class Bridge_Api_Apitest extends Bridge_Api_Abstract implements Bridge_Api_Inter
|
||||
throw new \Exception('une erreur');
|
||||
}
|
||||
|
||||
return array();
|
||||
return [];
|
||||
} elseif (self::$hasError) {
|
||||
self::$hasError = false;
|
||||
|
||||
return array('title' => 'too long');
|
||||
return ['title' => 'too long'];
|
||||
}
|
||||
}
|
||||
|
||||
public function get_update_datas(\Symfony\Component\HttpFoundation\Request $request)
|
||||
{
|
||||
return array();
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -499,7 +499,7 @@ class Bridge_Api_Auth_None extends Bridge_Api_Auth_Abstract implements Bridge_Ap
|
||||
return $this->settings->get('auth_token', null) !== null;
|
||||
}
|
||||
|
||||
public function get_auth_url(Array $supp_parameters = array())
|
||||
public function get_auth_url(Array $supp_parameters = [])
|
||||
{
|
||||
return 'kameamea';
|
||||
}
|
||||
|
@@ -1,163 +0,0 @@
|
||||
<?php
|
||||
|
||||
class EntityBasketTest extends \PhraseanetAuthenticatedTestCase
|
||||
{
|
||||
/**
|
||||
*
|
||||
* @var \Alchemy\Phrasea\Model\Entities\Basket
|
||||
*/
|
||||
protected $basket;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var \Doctrine\ORM\EntityManager
|
||||
*/
|
||||
protected $em;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->em = self::$DI['app']['EM'];
|
||||
$this->basket = $this->insertOneBasket();
|
||||
}
|
||||
|
||||
public function testGetId()
|
||||
{
|
||||
$this->assertTrue(is_int($this->basket->getId()));
|
||||
$otherBasket = $this->insertOneBasket();
|
||||
$this->assertGreaterThan($this->basket->getId(), $otherBasket->getId());
|
||||
}
|
||||
|
||||
public function testGetName()
|
||||
{
|
||||
$this->basket->setName('one name');
|
||||
$this->em->persist($this->basket);
|
||||
$this->em->flush();
|
||||
$this->assertEquals('one name', $this->basket->getName());
|
||||
}
|
||||
|
||||
public function testGetDescription()
|
||||
{
|
||||
$this->basket->setDescription('une jolie description pour mon super panier');
|
||||
$this->em->persist($this->basket);
|
||||
$this->em->flush();
|
||||
$this->assertEquals('une jolie description pour mon super panier', $this->basket->getDescription());
|
||||
}
|
||||
|
||||
public function testGetUsrId()
|
||||
{
|
||||
$this->basket->setUsrId(1);
|
||||
$this->em->persist($this->basket);
|
||||
$this->em->flush();
|
||||
$this->assertEquals(1, $this->basket->getUsrId());
|
||||
}
|
||||
|
||||
public function testGetPusherId()
|
||||
{
|
||||
$this->basket->setPusherId(1);
|
||||
$this->em->persist($this->basket);
|
||||
$this->em->flush();
|
||||
$this->assertEquals(1, $this->basket->getPusherId());
|
||||
}
|
||||
|
||||
public function testGetArchived()
|
||||
{
|
||||
$this->basket->setArchived(true);
|
||||
$this->em->persist($this->basket);
|
||||
$this->em->flush();
|
||||
$this->assertTrue($this->basket->GetArchived());
|
||||
$this->basket->setArchived(false);
|
||||
$this->em->persist($this->basket);
|
||||
$this->em->flush();
|
||||
$this->assertFalse($this->basket->GetArchived());
|
||||
}
|
||||
|
||||
public function testGetCreated()
|
||||
{
|
||||
$date = $this->basket->getCreated();
|
||||
$this->assertInstanceOf('\DateTime', $date);
|
||||
}
|
||||
|
||||
public function testGetUpdated()
|
||||
{
|
||||
$date = $this->basket->getUpdated();
|
||||
$this->assertInstanceOf('\DateTime', $date);
|
||||
}
|
||||
|
||||
public function testGetElements()
|
||||
{
|
||||
$elements = $this->basket->getElements();
|
||||
|
||||
$this->assertInstanceOf('\Doctrine\ORM\PersistentCollection', $elements);
|
||||
|
||||
$this->assertEquals(0, $elements->count());
|
||||
|
||||
$basketElement = new \Alchemy\Phrasea\Model\Entities\BasketElement();
|
||||
|
||||
$basketElement->setRecord(self::$DI['record_1']);
|
||||
|
||||
$basketElement->setBasket($this->basket);
|
||||
|
||||
$this->em->persist($basketElement);
|
||||
|
||||
$this->em->flush();
|
||||
|
||||
$this->em->refresh($this->basket);
|
||||
|
||||
$this->assertEquals(1, $this->basket->getElements()->count());
|
||||
}
|
||||
|
||||
public function testGetPusher()
|
||||
{
|
||||
$this->assertNull($this->basket->getPusher(self::$DI['app'])); //no pusher
|
||||
$this->basket->setPusherId(self::$DI['user']->get_id());
|
||||
$this->assertInstanceOf('\User_Adapter', $this->basket->getPusher(self::$DI['app']));
|
||||
$this->assertEquals($this->basket->getPusher(self::$DI['app'])->get_id(), self::$DI['user']->get_id());
|
||||
}
|
||||
|
||||
public function testGetOwner()
|
||||
{
|
||||
$this->assertNotNull($this->basket->getOwner(self::$DI['app'])); //no owner
|
||||
$this->basket->setUsrId(self::$DI['user']->get_id());
|
||||
$this->assertInstanceOf('\User_Adapter', $this->basket->getOwner(self::$DI['app']));
|
||||
$this->assertEquals($this->basket->getOwner(self::$DI['app'])->get_id(), self::$DI['user']->get_id());
|
||||
}
|
||||
|
||||
public function testGetValidation()
|
||||
{
|
||||
$this->assertNull($this->basket->getValidation());
|
||||
|
||||
$validationSession = new \Alchemy\Phrasea\Model\Entities\ValidationSession();
|
||||
$validationSession->setBasket($this->basket);
|
||||
|
||||
$expires = new \DateTime();
|
||||
$expires->modify('+1 week');
|
||||
|
||||
$validationSession->setExpires($expires);
|
||||
|
||||
$validationSession->setInitiator(self::$DI['user']);
|
||||
|
||||
$this->em->persist($validationSession);
|
||||
|
||||
$this->em->flush();
|
||||
|
||||
$this->em->refresh($this->basket);
|
||||
|
||||
$this->assertInstanceOf('\Alchemy\Phrasea\Model\Entities\ValidationSession', $this->basket->getValidation());
|
||||
}
|
||||
|
||||
public function testGetIsRead()
|
||||
{
|
||||
$this->markTestIncomplete();
|
||||
}
|
||||
|
||||
public function testGetSize()
|
||||
{
|
||||
$this->markTestIncomplete();
|
||||
}
|
||||
|
||||
public function hasRecord()
|
||||
{
|
||||
$this->markTestIncomplete();
|
||||
}
|
||||
}
|
@@ -5,15 +5,11 @@ class ValidationParticipantRepositoryTest extends \PhraseanetAuthenticatedTestCa
|
||||
|
||||
public function testFindNotConfirmedAndNotRemindedParticipants()
|
||||
{
|
||||
$this->insertOneValidationBasket([
|
||||
'expires' => new \DateTime('+1 days')
|
||||
]);
|
||||
|
||||
$em = self::$DI['app']['EM'];
|
||||
$repo = $em->getRepository('\Alchemy\Phrasea\Model\Entities\ValidationParticipant');
|
||||
$repo = $em->getRepository('Alchemy\Phrasea\Model\Entities\ValidationParticipant');
|
||||
/* @var $repo Alchemy\Phrasea\Model\Repositories\ValidationParticipantRepository */
|
||||
$expireDate = new \DateTime('+2 days');
|
||||
$expireDate = new \DateTime('+8 days');
|
||||
$participants = $repo->findNotConfirmedAndNotRemindedParticipantsByExpireDate($expireDate);
|
||||
$this->assertEquals(1, count($participants));
|
||||
$this->assertEquals(3, count($participants));
|
||||
}
|
||||
}
|
||||
|
@@ -132,17 +132,17 @@ class W3CFeedRawValidator extends W3CFeedValidator
|
||||
*/
|
||||
public function validate()
|
||||
{
|
||||
$context = stream_context_create(array(
|
||||
'http' => array(
|
||||
$context = stream_context_create([
|
||||
'http' => [
|
||||
'method' => 'POST',
|
||||
'header' => 'Content-type: application/x-www-form-urlencoded',
|
||||
'content' => http_build_query(array(
|
||||
'content' => http_build_query([
|
||||
'rawdata' => $this->rawData,
|
||||
'manual' => 1,
|
||||
'output' => self::OUTPOUT)),
|
||||
'output' => self::OUTPOUT]),
|
||||
'timeout' => 5,
|
||||
),
|
||||
));
|
||||
],
|
||||
]);
|
||||
sleep(self::TIME_BETWEEN_REQUEST);
|
||||
$response = @file_get_contents(self::VALIDATOR_ENDPOINT, false, $context);
|
||||
if ( ! $response) {
|
||||
@@ -273,7 +273,7 @@ class W3CFeedValidatorResponse
|
||||
*/
|
||||
public function getWarnings()
|
||||
{
|
||||
$warnings = array();
|
||||
$warnings = [];
|
||||
$xPathQuery = "/env:Envelope/env:Body/m:feedvalidationresponse/m:warnings/m:warninglist/*";
|
||||
$warningList = $this->DOMXpath->query($xPathQuery);
|
||||
if ($warningList->length > 0) {
|
||||
@@ -291,7 +291,7 @@ class W3CFeedValidatorResponse
|
||||
*/
|
||||
public function getErrors()
|
||||
{
|
||||
$errors = array();
|
||||
$errors = [];
|
||||
$xPathQuery = "/env:Envelope/env:Body/m:feedvalidationresponse/m:errors/m:errorlist/*";
|
||||
$errorList = $this->DOMXpath->query($xPathQuery);
|
||||
if ($errorList->length > 0) {
|
||||
@@ -324,7 +324,7 @@ class W3CFeedValidatorResponse
|
||||
$ret = trim($node->nodeValue);
|
||||
} else {
|
||||
// Otherwise, do recursion
|
||||
$ret = array();
|
||||
$ret = [];
|
||||
foreach ($node->childNodes as $child) {
|
||||
if ($child->nodeType !== XML_TEXT_NODE) {
|
||||
// If there's more than one node with this node name on the
|
||||
@@ -332,7 +332,7 @@ class W3CFeedValidatorResponse
|
||||
if (isset($ret[$child->nodeName])) {
|
||||
if ( ! is_array($ret[$child->nodeName]) || ! isset($ret[$child->nodeName][0])) {
|
||||
$tmp = $ret[$child->nodeName];
|
||||
$ret[$child->nodeName] = array();
|
||||
$ret[$child->nodeName] = [];
|
||||
$ret[$child->nodeName][] = $tmp;
|
||||
}
|
||||
|
||||
|
@@ -3,26 +3,9 @@
|
||||
use Alchemy\Phrasea\CLI;
|
||||
use Alchemy\Phrasea\Application;
|
||||
use Alchemy\Phrasea\Border\File;
|
||||
use Alchemy\Phrasea\Model\Entities\AggregateToken;
|
||||
use Alchemy\Phrasea\Model\Entities\Basket;
|
||||
use Alchemy\Phrasea\Model\Entities\BasketElement;
|
||||
use Alchemy\Phrasea\Model\Entities\Feed;
|
||||
use Alchemy\Phrasea\Model\Entities\FeedEntry;
|
||||
use Alchemy\Phrasea\Model\Entities\FeedItem;
|
||||
use Alchemy\Phrasea\Model\Entities\FeedPublisher;
|
||||
use Alchemy\Phrasea\Model\Entities\FeedToken;
|
||||
use Alchemy\Phrasea\Model\Entities\LazaretFile;
|
||||
use Alchemy\Phrasea\Model\Entities\LazaretSession;
|
||||
use Alchemy\Phrasea\Model\Entities\Session;
|
||||
use Alchemy\Phrasea\Model\Entities\Task;
|
||||
use Alchemy\Phrasea\Model\Entities\User;
|
||||
use Alchemy\Phrasea\Model\Entities\ValidationData;
|
||||
use Alchemy\Phrasea\Model\Entities\ValidationSession;
|
||||
use Alchemy\Phrasea\Model\Entities\ValidationParticipant;
|
||||
use Alchemy\Phrasea\Model\Entities\UsrListOwner;
|
||||
use Alchemy\Phrasea\Model\Entities\UsrList;
|
||||
use Alchemy\Phrasea\Model\Entities\UsrListEntry;
|
||||
use Alchemy\Phrasea\Model\Entities\StoryWZ;
|
||||
use Monolog\Logger;
|
||||
use Monolog\Handler\NullHandler;
|
||||
use Silex\WebTestCase;
|
||||
@@ -151,8 +134,7 @@ abstract class PhraseanetTestCase extends WebTestCase
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$this->createSetOfUserTests(self::$DI['app']);
|
||||
self::setCollection(self::$DI['app']);
|
||||
self::$fixtureIds = array_merge(self::$fixtureIds, json_decode(file_get_contents(__DIR__ .'/../fixtures.json'), true));
|
||||
|
||||
self::resetUsersRights(self::$DI['app'], self::$DI['user']);
|
||||
self::resetUsersRights(self::$DI['app'], self::$DI['user_notAdmin']);
|
||||
@@ -160,48 +142,19 @@ abstract class PhraseanetTestCase extends WebTestCase
|
||||
self::$booted = true;
|
||||
}
|
||||
|
||||
self::$DI['record_id_resolver'] = self::$DI->protect(function ($id) {
|
||||
if (isset(self::$fixtureIds['records'][$id])) {
|
||||
return self::$fixtureIds['records'][$id];
|
||||
}
|
||||
|
||||
self::$recordsInitialized[] = $id;
|
||||
$file = new File(self::$DI['app'], self::$DI['app']['mediavorus']->guess(__DIR__ . '/../files/' . ($id < 10 ? 'test00' . $id . '.jpg' : 'test0' . $id . '.jpg')), self::$DI['collection']);
|
||||
$record = record_adapter::createFromFile($file, self::$DI['app']);
|
||||
$record->generate_subdefs($record->get_databox(), self::$DI['app']);
|
||||
self::$fixtureIds['records'][$id] = $record->get_record_id();
|
||||
|
||||
return self::$fixtureIds['records'][$id];
|
||||
self::$DI['lazaret_1'] = self::$DI->share(function ($DI) {
|
||||
return $DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\LazaretFile', self::$fixtureIds['lazaret']['lazaret_1']);
|
||||
});
|
||||
|
||||
self::$DI['story_id_resolver'] = self::$DI->protect(function ($id) {
|
||||
$id = 'story_'.$id;
|
||||
|
||||
if (isset(self::$fixtureIds['records'][$id])) {
|
||||
return self::$fixtureIds['records'][$id];
|
||||
}
|
||||
|
||||
self::$recordsInitialized[] = $id;
|
||||
$story = record_adapter::createStory(self::$DI['app'], self::$DI['collection']);
|
||||
|
||||
$media = self::$DI['app']['mediavorus']->guess(__DIR__ . '/../files/cestlafete.jpg');
|
||||
$story->substitute_subdef('preview', $media, self::$DI['app']);
|
||||
$story->substitute_subdef('thumbnail', $media, self::$DI['app']);
|
||||
|
||||
self::$fixtureIds['records'][$id] = $story->get_record_id();
|
||||
|
||||
return self::$fixtureIds['records'][$id];
|
||||
});
|
||||
|
||||
foreach (range(1, 24) as $i) {
|
||||
foreach (range(1, 7) as $i) {
|
||||
self::$DI['record_' . $i] = self::$DI->share(function ($DI) use ($i) {
|
||||
return new \record_adapter($DI['app'], self::$fixtureIds['databox']['records'], $DI['record_id_resolver']($i));
|
||||
return new \record_adapter($DI['app'], self::$fixtureIds['databox']['records'], self::$fixtureIds['record']['record_'.$i]);
|
||||
});
|
||||
}
|
||||
|
||||
foreach (range(1, 2) as $i) {
|
||||
self::$DI['record_story_' . $i] = self::$DI->share(function ($DI) use ($i) {
|
||||
return new \record_adapter($DI['app'], self::$fixtureIds['databox']['records'], $DI['story_id_resolver']($i));
|
||||
return new \record_adapter($DI['app'], self::$fixtureIds['databox']['records'], self::$fixtureIds['record']['record_story_'.$i]);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -385,510 +338,6 @@ abstract class PhraseanetTestCase extends WebTestCase
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts two tasks.
|
||||
*
|
||||
* @return Task[]
|
||||
*/
|
||||
public function insertTwoTasks()
|
||||
{
|
||||
$task1 = new Task();
|
||||
$task1
|
||||
->setName('task 1')
|
||||
->setJobId('Null');
|
||||
|
||||
$task2 = new Task();
|
||||
$task2
|
||||
->setName('task 2')
|
||||
->setJobId('Null');
|
||||
|
||||
self::$DI['app']['EM']->persist($task1);
|
||||
self::$DI['app']['EM']->persist($task2);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return [$task1, $task2];
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts one basket.
|
||||
*
|
||||
* @param User_Adapter $user
|
||||
*
|
||||
* @return Basket
|
||||
*/
|
||||
protected function insertOneBasket(\User_Adapter $user = null)
|
||||
{
|
||||
$basket = new Basket();
|
||||
$basket->setOwner($user ?: self::$DI['user']);
|
||||
$basket->setName('test');
|
||||
$basket->setDescription('description test');
|
||||
|
||||
self::$DI['app']['EM']->persist($basket);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return $basket;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts one feed.
|
||||
*
|
||||
* @param User_Adapter $user
|
||||
* @param string|null $title
|
||||
* @param bool $public
|
||||
*
|
||||
* @return Feed
|
||||
*/
|
||||
protected function insertOneFeed(\User_Adapter $user = null , $title = null, $public = false)
|
||||
{
|
||||
$feed = new Feed();
|
||||
$publisher = new FeedPublisher();
|
||||
|
||||
$user = $user ?: self::$DI['user'];
|
||||
|
||||
$publisher->setUsrId($user->get_id());
|
||||
$publisher->setIsOwner(true);
|
||||
$publisher->setFeed($feed);
|
||||
|
||||
$feed->addPublisher($publisher);
|
||||
$feed->setTitle($title ?: "test");
|
||||
$feed->setIsPublic($public);
|
||||
$feed->setSubtitle("description");
|
||||
|
||||
self::$DI['app']['EM']->persist($feed);
|
||||
self::$DI['app']['EM']->persist($publisher);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return $feed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts one feed entry.
|
||||
*
|
||||
* @param User_Adapter $user
|
||||
* @param bool $public
|
||||
*
|
||||
* @return FeedEntry
|
||||
*/
|
||||
protected function insertOneFeedEntry(\User_Adapter $user = null, $public = false)
|
||||
{
|
||||
$feed = $this->insertOneFeed($user, null, $public);
|
||||
|
||||
$entry = new FeedEntry();
|
||||
$entry->setFeed($feed);
|
||||
$entry->setTitle("test");
|
||||
$entry->setSubtitle("description");
|
||||
$entry->setAuthorName('user');
|
||||
$entry->setAuthorEmail('user@email.com');
|
||||
|
||||
$publisher = $feed->getPublisher($user ?: self::$DI['user']);
|
||||
|
||||
if ($publisher !== null) {
|
||||
$entry->setPublisher($publisher);
|
||||
}
|
||||
|
||||
$feed->addEntry($entry);
|
||||
|
||||
self::$DI['app']['EM']->persist($entry);
|
||||
self::$DI['app']['EM']->persist($feed);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return $entry;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts one feed token.
|
||||
*
|
||||
* @param Feed $feed
|
||||
* @param User_Adapter $user
|
||||
*
|
||||
* @return FeedToken
|
||||
*/
|
||||
protected function insertOneFeedToken(Feed $feed, \User_Adapter $user = null)
|
||||
{
|
||||
$user = $user ?: self::$DI['user'];
|
||||
|
||||
$token = new FeedToken();
|
||||
$token->setValue(self::$DI['app']['tokens']->generatePassword(12));
|
||||
$token->setFeed($feed);
|
||||
$token->setUsrId($user->get_id());
|
||||
|
||||
$feed->addToken($token);
|
||||
|
||||
self::$DI['app']['EM']->persist($token);
|
||||
self::$DI['app']['EM']->persist($feed);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return $token;
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert one aggregate token.
|
||||
*
|
||||
* @param User_Adapter $user
|
||||
*
|
||||
* @return AggregateToken
|
||||
*/
|
||||
protected function insertOneAggregateToken(\User_Adapter $user = null)
|
||||
{
|
||||
$user = $user ?: self::$DI['user'];
|
||||
|
||||
$token = new AggregateToken();
|
||||
$token->setValue(self::$DI['app']['tokens']->generatePassword(12));
|
||||
$token->setUsrId($user->get_id());
|
||||
|
||||
self::$DI['app']['EM']->persist($token);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return $token;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts one feed item.
|
||||
*
|
||||
* @param User_Adapter $user
|
||||
* @param boolean $public
|
||||
* @param integer $qty
|
||||
* @param record_adapter $record
|
||||
*
|
||||
* @return FeedItem
|
||||
*/
|
||||
protected function insertOneFeedItem(\User_Adapter $user = null, $public = false, $qty = 1, \record_adapter $record = null)
|
||||
{
|
||||
$entry = $this->insertOneFeedEntry($user, $public);
|
||||
|
||||
for ($i = 0; $i < $qty; $i++) {
|
||||
$item = new FeedItem();
|
||||
$item->setEntry($entry);
|
||||
|
||||
if (null === $record) {
|
||||
$actual = self::$DI['record_'.($i+1)];
|
||||
} else {
|
||||
$actual = $record;
|
||||
}
|
||||
|
||||
$item->setRecordId($actual->get_record_id());
|
||||
$item->setSbasId($actual->get_sbas_id());
|
||||
$item->setEntry($entry);
|
||||
$entry->addItem($item);
|
||||
|
||||
self::$DI['app']['EM']->persist($item);
|
||||
}
|
||||
|
||||
self::$DI['app']['EM']->persist($entry);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return $item;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts one lazaret file.
|
||||
*
|
||||
* @param User_Adapter $user
|
||||
*
|
||||
* @return LazaretFile
|
||||
*/
|
||||
protected function insertOneLazaretFile(\User_Adapter $user = null)
|
||||
{
|
||||
$user = $user ?: self::$DI['user'];
|
||||
|
||||
$lazaretSession = new LazaretSession();
|
||||
$lazaretSession->setUsrId($user->get_id());
|
||||
$lazaretSession->setUpdated(new \DateTime('now'));
|
||||
$lazaretSession->setCreated(new \DateTime('-1 day'));
|
||||
|
||||
$lazaretFile = new LazaretFile();
|
||||
$lazaretFile->setOriginalName('test');
|
||||
$lazaretFile->setFilename('test.jpg');
|
||||
$lazaretFile->setThumbFilename('thumb_test.jpg');
|
||||
$lazaretFile->setBaseId(self::$DI['collection']->get_base_id());
|
||||
$lazaretFile->setSession($lazaretSession);
|
||||
$lazaretFile->setSha256('3191af52748620e0d0da50a7b8020e118bd8b8a0845120b0bb');
|
||||
$lazaretFile->setUuid('7b8ef0e3-dc8f-4b66-9e2f-bd049d175124');
|
||||
$lazaretFile->setCreated(new \DateTime('now'));
|
||||
$lazaretFile->setUpdated(new \DateTime('-1 day'));
|
||||
|
||||
self::$DI['app']['EM']->persist($lazaretFile);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return $lazaretFile;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts one user list owner.
|
||||
*
|
||||
* @param User_Adapter $user
|
||||
*
|
||||
* @return UsrListOwner
|
||||
*/
|
||||
protected function insertOneUsrListOwner(\User_Adapter $user = null)
|
||||
{
|
||||
$user = $user ?: self::$DI['user'];
|
||||
|
||||
$owner = new UsrListOwner();
|
||||
$owner->setRole(UsrListOwner::ROLE_ADMIN);
|
||||
$owner->setUser($user);
|
||||
|
||||
self::$DI['app']['EM']->persist($owner);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return $owner;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts one user list.
|
||||
*
|
||||
* @param User_Adapter $user
|
||||
*
|
||||
* @return UsrListOwner
|
||||
*/
|
||||
protected function insertOneUsrList(\User_Adapter $user = null)
|
||||
{
|
||||
$owner = $this->insertOneUsrListOwner($user);
|
||||
$list = new UsrList();
|
||||
$list->setName('new list');
|
||||
$list->addOwner($owner);
|
||||
$owner->setList($list);
|
||||
|
||||
self::$DI['app']['EM']->persist($list);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return $list;
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert one user list entry.
|
||||
*
|
||||
* @param User_adapter $owner
|
||||
* @param User_adapter $user
|
||||
*
|
||||
* @return UsrListEntry
|
||||
*/
|
||||
protected function insertOneUsrListEntry(\User_adapter $owner, \User_adapter $user)
|
||||
{
|
||||
$list = $this->insertOneUsrList($owner);
|
||||
|
||||
$entry = new UsrListEntry();
|
||||
$entry->setUser($user);
|
||||
$entry->setList($list);
|
||||
|
||||
$list->addEntrie($entry);
|
||||
|
||||
self::$DI['app']['EM']->persist($entry);
|
||||
self::$DI['app']['EM']->persist($list);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return $entry;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts five baskets.
|
||||
*
|
||||
* @return Basket[]
|
||||
*/
|
||||
protected function insertFiveBasket()
|
||||
{
|
||||
$baskets = [];
|
||||
|
||||
for ($i = 0; $i < 5; $i ++) {
|
||||
$basket = new Basket();
|
||||
$basket->setName('test ' . $i);
|
||||
$basket->setDescription('description');
|
||||
$basket->setOwner(self::$DI['user']);
|
||||
|
||||
self::$DI['app']['EM']->persist($basket);
|
||||
$baskets[] = $basket;
|
||||
}
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return $baskets;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts one basket element.
|
||||
*
|
||||
* @param User_Adapter $user
|
||||
* @param record_adapter $record
|
||||
*
|
||||
* @return BasketElement
|
||||
*/
|
||||
protected function insertOneBasketElement(\User_Adapter $user = null, \record_adapter $record = null)
|
||||
{
|
||||
$element = new BasketElement();
|
||||
$element->setRecord($record ?: self::$DI['record_1']);
|
||||
|
||||
$basket = $this->insertOneBasket($user);
|
||||
$basket->addElement($element);
|
||||
$element->setBasket($basket);
|
||||
|
||||
self::$DI['app']['EM']->persist($basket);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return $element;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts one validation basket.
|
||||
*
|
||||
* @param array $parameters
|
||||
*
|
||||
* @return Basket
|
||||
*/
|
||||
protected function insertOneValidationBasket(array $parameters = [])
|
||||
{
|
||||
$basketElement = $this->insertOneBasketElement();
|
||||
$basket = $basketElement->getBasket();
|
||||
|
||||
$validation = new ValidationSession();
|
||||
$validation->setBasket($basket);
|
||||
$validation->setInitiator(self::$DI['user']);
|
||||
|
||||
if (isset($parameters['expires']) && $parameters['expires'] instanceof \DateTime) {
|
||||
$validation->setExpires($parameters['expires']);
|
||||
}
|
||||
|
||||
$basket->setValidation($validation);
|
||||
|
||||
$participant = new ValidationParticipant();
|
||||
$participant->setUser(self::$DI['user']);
|
||||
$participant->setCanAgree(true);
|
||||
$participant->setCanSeeOthers(true);
|
||||
|
||||
$validation->addParticipant($participant);
|
||||
$participant->setSession($validation);
|
||||
|
||||
$data = new ValidationData();
|
||||
$data->setBasketElement($basketElement);
|
||||
$data->setParticipant($participant);
|
||||
$basketElement->addValidationData($data);
|
||||
|
||||
self::$DI['app']['EM']->persist($basket);
|
||||
self::$DI['app']['EM']->persist($validation);
|
||||
self::$DI['app']['EM']->persist($participant);
|
||||
self::$DI['app']['EM']->persist($data);
|
||||
self::$DI['app']['EM']->persist($basketElement);
|
||||
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return $basket;
|
||||
}
|
||||
|
||||
/**
|
||||
* - Creates a new basket with current authenticated user as owner.
|
||||
* - Creates a new sessionValidation with the newly created basket.
|
||||
* - Sets current authenticated user as sessionValidation initiator.
|
||||
* - Adds 2 records as elements of the newly created basket.
|
||||
* - Adds 2 participants to the newly created sessionValidation.
|
||||
*
|
||||
* @return Basket
|
||||
*/
|
||||
protected function insertOneBasketEnv()
|
||||
{
|
||||
$basket = new Basket();
|
||||
$basket->setName('test');
|
||||
$basket->setDescription('description');
|
||||
$basket->setOwner(self::$DI['user']);
|
||||
|
||||
self::$DI['app']['EM']->persist($basket);
|
||||
|
||||
foreach ([self::$DI['record_1'], self::$DI['record_2']] as $record) {
|
||||
$basketElement = new BasketElement();
|
||||
$basketElement->setRecord($record);
|
||||
$basketElement->setBasket($basket);
|
||||
$basket->addElement($basketElement);
|
||||
self::$DI['app']['EM']->persist($basketElement);
|
||||
}
|
||||
|
||||
$validationSession = new ValidationSession();
|
||||
$validationSession->setBasket($basket);
|
||||
$basket->setValidation($validationSession);
|
||||
$expires = new \DateTime();
|
||||
$expires->modify('+1 week');
|
||||
$validationSession->setExpires($expires);
|
||||
$validationSession->setInitiator(self::$DI['user']);
|
||||
|
||||
foreach ([self::$DI['user_alt1'], self::$DI['user_alt2']] as $user) {
|
||||
$validationParticipant = new ValidationParticipant();
|
||||
$validationParticipant->setUser($user);
|
||||
$validationParticipant->setSession($validationSession);
|
||||
$validationSession->addParticipant($validationParticipant);
|
||||
self::$DI['app']['EM']->persist($validationParticipant);
|
||||
}
|
||||
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return $basket;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts one story.
|
||||
*
|
||||
* @param User_Adapter $user
|
||||
* @param record_adapter $record
|
||||
*
|
||||
* @return StoryWZ
|
||||
*/
|
||||
protected function insertOneStory(User_Adapter $user = null, \record_adapter $record = null)
|
||||
{
|
||||
$story = new StoryWZ();
|
||||
|
||||
$story->setRecord($record ?: self::$DI['record_1']);
|
||||
$story->setUser($user ?: self::$DI['user']);
|
||||
|
||||
self::$DI['app']['EM']->persist($story);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return $story;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts one validation session.
|
||||
*
|
||||
* @param Basket $basket
|
||||
* @param User_Adapter $user
|
||||
*
|
||||
* @return ValidationSession
|
||||
*/
|
||||
protected function insertOneValidationSession(Basket $basket = null, \User_Adapter $user = null)
|
||||
{
|
||||
$validationSession = new ValidationSession();
|
||||
|
||||
$validationSession->setBasket($basket ?: $this->insertOneBasket());
|
||||
|
||||
$expires = new \DateTime();
|
||||
$expires->modify('+1 week');
|
||||
$validationSession->setExpires($expires);
|
||||
$validationSession->setInitiator($user ?: self::$DI['user']);
|
||||
|
||||
self::$DI['app']['EM']->persist($validationSession);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
return $validationSession;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads One WZ with one basket, one story and one ValidationSession with one participant.
|
||||
*/
|
||||
protected function insertOneWZ()
|
||||
{
|
||||
$this->insertOneStory();
|
||||
$this->insertOneValidationSession($this->insertOneBasket(), self::$DI['user_alt1']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts one user.
|
||||
*
|
||||
* @param string $login
|
||||
* @param null $email
|
||||
* @param bool $admin
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
protected function insertOneUser($login, $email = null, $admin = false)
|
||||
{
|
||||
return self::$DI['app']['manipulator.user']->createUser($login, uniqid('pass'), $email, $admin);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls a URI as XMLHTTP request.
|
||||
*
|
||||
@@ -929,42 +378,6 @@ abstract class PhraseanetTestCase extends WebTestCase
|
||||
}
|
||||
}
|
||||
|
||||
private function createSetOfUserTests(Application $application)
|
||||
{
|
||||
if (false === $usr_id = User_Adapter::get_usr_id_from_login($application, 'test_phpunit')) {
|
||||
$user = User_Adapter::create($application, 'test_phpunit', random::generatePassword(), 'noone@example.com', false);
|
||||
$usr_id = $user->get_id();
|
||||
} else {
|
||||
$user = User_Adapter::getInstance($usr_id, $application);
|
||||
}
|
||||
$user->set_email('valid@phraseanet.com');
|
||||
|
||||
self::$fixtureIds['user']['test_phpunit'] = $usr_id;
|
||||
|
||||
if (false === $usr_id = User_Adapter::get_usr_id_from_login($application, 'test_phpunit_not_admin')) {
|
||||
$user = User_Adapter::create($application, 'test_phpunit_not_admin', random::generatePassword(), 'noone_not_admin@example.com', false);
|
||||
$usr_id = $user->get_id();
|
||||
} else {
|
||||
$user = User_Adapter::getInstance($usr_id, $application);
|
||||
}
|
||||
|
||||
self::$fixtureIds['user']['test_phpunit_not_admin'] = $usr_id;
|
||||
|
||||
if (false === $usr_id = User_Adapter::get_usr_id_from_login($application, 'test_phpunit_alt1')) {
|
||||
$user = User_Adapter::create($application, 'test_phpunit_alt1', random::generatePassword(), 'noonealt1@example.com', false);
|
||||
$usr_id = $user->get_id();
|
||||
}
|
||||
|
||||
self::$fixtureIds['user']['test_phpunit_alt1'] = $usr_id;
|
||||
|
||||
if (false === $usr_id = User_Adapter::get_usr_id_from_login($application, 'test_phpunit_alt2')) {
|
||||
$user = User_Adapter::create($application, 'test_phpunit_alt2', random::generatePassword(), 'noonealt2@example.com', false);
|
||||
$usr_id = $user->get_id();
|
||||
}
|
||||
|
||||
self::$fixtureIds['user']['test_phpunit_alt2'] = $usr_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gives Bases Rights to User.
|
||||
*
|
||||
@@ -1022,48 +435,6 @@ abstract class PhraseanetTestCase extends WebTestCase
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets self::$DI['collection'].
|
||||
*/
|
||||
private static function setCollection(Application $application)
|
||||
{
|
||||
$coll = $collection_no_acces = $collection_no_acces_by_status = $db = null;
|
||||
|
||||
foreach ($application['phraseanet.appbox']->get_databoxes() as $databox) {
|
||||
foreach ($databox->get_collections() as $collection) {
|
||||
if ($collection_no_acces instanceof collection && !$collection_no_acces_by_status) {
|
||||
$collection_no_acces_by_status = $collection;
|
||||
}
|
||||
if ($coll instanceof collection && !$collection_no_acces) {
|
||||
$collection_no_acces = $collection;
|
||||
}
|
||||
if (!$coll) {
|
||||
$coll = $collection;
|
||||
}
|
||||
if ($coll instanceof collection
|
||||
&& $collection_no_acces instanceof collection
|
||||
&& $collection_no_acces_by_status instanceof collection) {
|
||||
break 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
self::$fixtureIds['databox']['records'] = $coll->get_databox()->get_sbas_id();
|
||||
self::$fixtureIds['collection']['coll'] = $coll->get_base_id();
|
||||
|
||||
if (!$collection_no_acces instanceof collection) {
|
||||
$collection_no_acces = collection::create($application, $databox, $application['phraseanet.appbox'], 'BIBOO', self::$DI['user']);
|
||||
}
|
||||
self::$fixtureIds['collection']['coll_no_access'] = $collection_no_acces->get_base_id();
|
||||
|
||||
if (!$collection_no_acces_by_status instanceof collection) {
|
||||
$collection_no_acces_by_status = collection::create($application, $databox, $application['phraseanet.appbox'], 'BIBOONOACCESBYSTATUS', self::$DI['user']);
|
||||
}
|
||||
self::$fixtureIds['collection']['coll_no_status'] = $collection_no_acces_by_status->get_base_id();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes previously created Resources.
|
||||
*/
|
||||
|
@@ -337,17 +337,9 @@ class API_V1_adapterTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
public function testGet_record_related()
|
||||
{
|
||||
|
||||
$basketElement = $this->insertOneBasketElement();
|
||||
$basketElement->setRecord(self::$DI['record_1']);
|
||||
|
||||
$story = \record_adapter::createStory(self::$DI['app'], self::$DI['collection']);
|
||||
|
||||
if (!$story->hasChild(self::$DI['record_1'])) {
|
||||
$story->appendChild(self::$DI['record_1']);
|
||||
}
|
||||
|
||||
self::$DI['app']['EM']->flush($basketElement);
|
||||
$basketElement = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\BasketElement', 1);
|
||||
$story = self::$DI['record_story_1'];
|
||||
$story->appendChild(self::$DI['record_1']);
|
||||
|
||||
$request = new Request([], [], [], [], [], ['HTTP_Accept' => 'application/json']);
|
||||
$result = $this->object->get_record_related($request, self::$DI['record_1']->get_sbas_id(), self::$DI['record_1']->get_record_id());
|
||||
@@ -555,28 +547,13 @@ class API_V1_adapterTest extends \PhraseanetAuthenticatedTestCase
|
||||
$response = json_decode($result->format(), true);
|
||||
$this->assertArrayHasKey('basket', $response['response']);
|
||||
|
||||
$em = self::$DI['app']['EM'];
|
||||
|
||||
$basket = self::$DI['app']['converter.basket']->convert($response['response']['basket']['basket_id']);
|
||||
self::$DI['app']['acl.basket']->isOwner($basket, self::$DI['app']['authentication']->getUser());
|
||||
|
||||
$em->remove($basket);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
public function testDelete_basket()
|
||||
{
|
||||
$usr_id = self::$DI['app']['authentication']->getUser()->get_id();
|
||||
$user = User_Adapter::getInstance($usr_id, self::$DI['app']);
|
||||
|
||||
$em = self::$DI['app']['EM'];
|
||||
|
||||
$Basket = new Alchemy\Phrasea\Model\Entities\Basket();
|
||||
$Basket->setName('Delete test');
|
||||
$Basket->setOwner($user);
|
||||
|
||||
$em->persist($Basket);
|
||||
$em->flush();
|
||||
$Basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
|
||||
$request = new Request([], [], [], [], [], ['HTTP_Accept' => 'application/json']);
|
||||
$result = $this->object->delete_basket($request, $Basket);
|
||||
@@ -584,20 +561,13 @@ class API_V1_adapterTest extends \PhraseanetAuthenticatedTestCase
|
||||
$this->assertEquals('application/json', $result->get_content_type());
|
||||
$this->assertTrue(is_array(json_decode($result->format(), true)));
|
||||
|
||||
try {
|
||||
$basket = self::$DI['app']['converter.basket']->convert($Basket->getId());
|
||||
self::$DI['app']['acl.basket']->isOwner($basket, $user);
|
||||
$this->fail('An exception should have been raised');
|
||||
} catch (\Exception $e) {
|
||||
|
||||
}
|
||||
$this->setExpectedException('Symfony\Component\HttpKernel\Exception\NotFoundHttpException');
|
||||
self::$DI['app']['converter.basket']->convert($Basket->getId());
|
||||
}
|
||||
|
||||
public function testGet_basket()
|
||||
{
|
||||
$usr_id = self::$DI['app']['authentication']->getUser()->get_id();
|
||||
|
||||
$basket = $this->insertOneBasket();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
|
||||
$request = new Request([], [], [], [], [], ['HTTP_Accept' => 'application/json']);
|
||||
$result = $this->object->get_basket($request, $basket);
|
||||
@@ -608,9 +578,7 @@ class API_V1_adapterTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
public function testSet_basket_title()
|
||||
{
|
||||
$usr_id = self::$DI['app']['authentication']->getUser()->get_id();
|
||||
|
||||
$basket = $this->insertOneBasket();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
|
||||
$request = new Request([], [], ['name' => 'PROUTO'], [], [], ['HTTP_Accept' => 'application/json']);
|
||||
$result = $this->object->set_basket_title($request, $basket);
|
||||
@@ -627,9 +595,7 @@ class API_V1_adapterTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
public function testSet_basket_description()
|
||||
{
|
||||
$usr_id = self::$DI['app']['authentication']->getUser()->get_id();
|
||||
|
||||
$basket = $this->insertOneBasket();
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
|
||||
$request = new Request([], [], ['description' => 'une belle description'], [], [], ['HTTP_Accept' => 'application/json']);
|
||||
$result = $this->object->set_basket_description($request, $basket);
|
||||
@@ -647,7 +613,7 @@ class API_V1_adapterTest extends \PhraseanetAuthenticatedTestCase
|
||||
public function testSearch_publications()
|
||||
{
|
||||
$request = new Request([], [], [], [], [], ['HTTP_Accept' => 'application/json']);
|
||||
$feed = $this->insertOneFeed(self::$DI['user']);
|
||||
$feed = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Feed', 1);
|
||||
$result = $this->object->search_publications($request, self::$DI['user']);
|
||||
$this->checkResponseField($result, "feeds", 'array');
|
||||
}
|
||||
@@ -668,8 +634,6 @@ class API_V1_adapterTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
$date = new DateTime();
|
||||
$request = new Request([], [], [], [], [], ['HTTP_Accept' => 'application/json']);
|
||||
$feedItem = $this->insertOneFeedItem(self::$DI['user']);
|
||||
$feed = $feedItem->getEntry()->getFeed();
|
||||
|
||||
$feeds = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Feed')->getAllForUser(self::$DI['app']['acl']->get(self::$DI['user']));
|
||||
foreach ($feeds as $feed) {
|
||||
|
@@ -37,28 +37,6 @@ class record_adapterTest extends \PhraseanetAuthenticatedTestCase
|
||||
*/
|
||||
public function testSetExport()
|
||||
{
|
||||
$basket = new \Alchemy\Phrasea\Model\Entities\Basket();
|
||||
|
||||
$basket->setName('hello');
|
||||
$basket->setOwner(self::$DI['user']);
|
||||
$basket->setDescription('hello');
|
||||
|
||||
$em = self::$DI['app']['EM'];
|
||||
|
||||
$basketElement = new \Alchemy\Phrasea\Model\Entities\BasketElement();
|
||||
|
||||
$basketElement->setRecord(self::$DI['record_1']);
|
||||
$basketElement->setBasket($basket);
|
||||
|
||||
$em->persist($basketElement);
|
||||
|
||||
$basket->addElement($basketElement);
|
||||
|
||||
$em->persist($basket);
|
||||
$em->flush();
|
||||
|
||||
$receveid = [self::$DI['record_1']->get_serialize_key() => self::$DI['record_1']];
|
||||
|
||||
self::$DI['app']['acl']->get( self::$DI['app']['authentication']->getUser())->update_rights_to_base(self::$DI['record_1']->get_base_id(), ['order_master' => true]);
|
||||
|
||||
$eventManagerStub = $this->getMockBuilder('\eventsmanager_broker')
|
||||
@@ -488,21 +466,7 @@ class record_adapterTest extends \PhraseanetAuthenticatedTestCase
|
||||
|
||||
public function testGet_container_baskets()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
$this->assertInstanceOf('\Alchemy\Phrasea\Model\Entities\Basket', $basket);
|
||||
|
||||
/* @var $basket \Alchemy\Phrasea\Model\Entities\Basket */
|
||||
$basket_element = new \Alchemy\Phrasea\Model\Entities\BasketElement();
|
||||
$basket_element->setRecord(self::$DI['record_1']);
|
||||
$basket_element->setBasket($basket);
|
||||
|
||||
self::$DI['app']['EM']->persist($basket_element);
|
||||
|
||||
$basket->addElement($basket_element);
|
||||
$basket = self::$DI['app']['EM']->merge($basket);
|
||||
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
$basket = self::$DI['app']['EM']->find('Alchemy\Phrasea\Model\Entities\Basket', 1);
|
||||
$found = $sselcont_id = false;
|
||||
|
||||
$sbas_id = self::$DI['record_1']->get_sbas_id();
|
||||
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 30 KiB |