diff --git a/.travis.yml b/.travis.yml index 639c6cee77..29c095710f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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 diff --git a/lib/Alchemy/Phrasea/Application.php b/lib/Alchemy/Phrasea/Application.php index 9b57f7cf66..7d1b188e3c 100644 --- a/lib/Alchemy/Phrasea/Application.php +++ b/lib/Alchemy/Phrasea/Application.php @@ -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('', ''), $value)); + return twig_escape_filter($twig, str_replace(['[[em]]', '[[/em]]'], ['', ''], $value)); } return "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('', ''), $value->getValue())) + . twig_escape_filter($twig, str_replace(['[[em]]', '[[/em]]'], ['', ''], $value->getValue())) . ""; - }, 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); diff --git a/lib/Alchemy/Phrasea/Command/Developer/RegenerateSqliteDb.php b/lib/Alchemy/Phrasea/Command/Developer/RegenerateSqliteDb.php index c2b6f8377c..245bae6340 100644 --- a/lib/Alchemy/Phrasea/Command/Developer/RegenerateSqliteDb.php +++ b/lib/Alchemy/Phrasea/Command/Developer/RegenerateSqliteDb.php @@ -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("".$e->getMessage().""); 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); + } } diff --git a/lib/Alchemy/Phrasea/Controller/Root/RSSFeeds.php b/lib/Alchemy/Phrasea/Controller/Root/RSSFeeds.php index f82ed19285..bada024c18 100644 --- a/lib/Alchemy/Phrasea/Controller/Root/RSSFeeds.php +++ b/lib/Alchemy/Phrasea/Controller/Root/RSSFeeds.php @@ -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'); diff --git a/lib/Alchemy/Phrasea/Feed/Formatter/AtomFormatter.php b/lib/Alchemy/Phrasea/Feed/Formatter/AtomFormatter.php index 759cd44e02..61d6dec6c8 100644 --- a/lib/Alchemy/Phrasea/Feed/Formatter/AtomFormatter.php +++ b/lib/Alchemy/Phrasea/Feed/Formatter/AtomFormatter.php @@ -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; diff --git a/lib/Alchemy/Phrasea/Feed/Formatter/CoolirisFormatter.php b/lib/Alchemy/Phrasea/Feed/Formatter/CoolirisFormatter.php index 6dc48f7607..a649f64c4c 100644 --- a/lib/Alchemy/Phrasea/Feed/Formatter/CoolirisFormatter.php +++ b/lib/Alchemy/Phrasea/Feed/Formatter/CoolirisFormatter.php @@ -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 { diff --git a/lib/Alchemy/Phrasea/Feed/Formatter/FeedFormatterAbstract.php b/lib/Alchemy/Phrasea/Feed/Formatter/FeedFormatterAbstract.php index 8a9379f595..cdc7db37cd 100644 --- a/lib/Alchemy/Phrasea/Feed/Formatter/FeedFormatterAbstract.php +++ b/lib/Alchemy/Phrasea/Feed/Formatter/FeedFormatterAbstract.php @@ -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'); diff --git a/lib/Alchemy/Phrasea/Feed/Formatter/FeedFormatterInterface.php b/lib/Alchemy/Phrasea/Feed/Formatter/FeedFormatterInterface.php index 75f810a43a..73f8694a27 100644 --- a/lib/Alchemy/Phrasea/Feed/Formatter/FeedFormatterInterface.php +++ b/lib/Alchemy/Phrasea/Feed/Formatter/FeedFormatterInterface.php @@ -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'); } diff --git a/lib/Alchemy/Phrasea/Feed/Formatter/RssFormatter.php b/lib/Alchemy/Phrasea/Feed/Formatter/RssFormatter.php index 381f4ffe93..649b274021 100644 --- a/lib/Alchemy/Phrasea/Feed/Formatter/RssFormatter.php +++ b/lib/Alchemy/Phrasea/Feed/Formatter/RssFormatter.php @@ -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; diff --git a/lib/Alchemy/Phrasea/Model/Entities/ValidationSession.php b/lib/Alchemy/Phrasea/Model/Entities/ValidationSession.php index 07546f672c..739d76dd6c 100644 --- a/lib/Alchemy/Phrasea/Model/Entities/ValidationSession.php +++ b/lib/Alchemy/Phrasea/Model/Entities/ValidationSession.php @@ -290,6 +290,6 @@ class ValidationSession } } - throw new NotFoundHttpException('Particpant not found' . $user->get_email()); + throw new NotFoundHttpException('Participant not found ' . $user->get_email()); } } diff --git a/lib/classes/API/V1/adapter.php b/lib/classes/API/V1/adapter.php index 611feff56f..dfe83c8e86 100644 --- a/lib/classes/API/V1/adapter.php +++ b/lib/classes/API/V1/adapter.php @@ -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]); diff --git a/lib/classes/caption/Field/Value.php b/lib/classes/caption/Field/Value.php index 0e10648c66..e2fd7c486b 100644 --- a/lib/classes/caption/Field/Value.php +++ b/lib/classes/caption/Field/Value.php @@ -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); diff --git a/lib/classes/collection.php b/lib/classes/collection.php index e9f95cf6c9..2ab05aa707 100644 --- a/lib/classes/collection.php +++ b/lib/classes/collection.php @@ -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(); diff --git a/templates/web/admin/publications/list.html.twig b/templates/web/admin/publications/list.html.twig index e9a1f760cc..c927185a7c 100644 --- a/templates/web/admin/publications/list.html.twig +++ b/templates/web/admin/publications/list.html.twig @@ -79,9 +79,9 @@ {{ app['date-formatter'].getDate(feed.getCreatedOn()) }} - {% 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 %} diff --git a/templates/web/login/index.html.twig b/templates/web/login/index.html.twig index 444e10bc80..4114b624a0 100644 --- a/templates/web/login/index.html.twig +++ b/templates/web/login/index.html.twig @@ -10,9 +10,9 @@ {% block header_rss %} {% for feed in feeds %} {% set link = app['feed.user-link-generator'].generatePublic(feed, 'rss') %} - + {% set link = app['feed.user-link-generator'].generatePublic(feed, 'atom') %} - + {% endfor %} {% endblock %} diff --git a/tests/Alchemy/Tests/Phrasea/ACL/BasketACLTest.php b/tests/Alchemy/Tests/Phrasea/ACL/BasketACLTest.php index 410c845201..b10183ceeb 100644 --- a/tests/Alchemy/Tests/Phrasea/ACL/BasketACLTest.php +++ b/tests/Alchemy/Tests/Phrasea/ACL/BasketACLTest.php @@ -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'])); } diff --git a/tests/Alchemy/Tests/Phrasea/Application/ApiTestCase.php b/tests/Alchemy/Tests/Phrasea/Application/ApiTestCase.php index d099a638da..b2d90abba9 100644 --- a/tests/Alchemy/Tests/Phrasea/Application/ApiTestCase.php +++ b/tests/Alchemy/Tests/Phrasea/Application/ApiTestCase.php @@ -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); diff --git a/tests/Alchemy/Tests/Phrasea/Application/LightboxTest.php b/tests/Alchemy/Tests/Phrasea/Application/LightboxTest.php index 9a0093b339..3f049b3c16 100644 --- a/tests/Alchemy/Tests/Phrasea/Application/LightboxTest.php +++ b/tests/Alchemy/Tests/Phrasea/Application/LightboxTest.php @@ -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')); diff --git a/tests/Alchemy/Tests/Phrasea/Application/OverviewTest.php b/tests/Alchemy/Tests/Phrasea/Application/OverviewTest.php index 8cbf485b15..b0e5c229d7 100644 --- a/tests/Alchemy/Tests/Phrasea/Application/OverviewTest.php +++ b/tests/Alchemy/Tests/Phrasea/Application/OverviewTest.php @@ -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/'); diff --git a/tests/Alchemy/Tests/Phrasea/Authentication/Phrasea/FailureManagerTest.php b/tests/Alchemy/Tests/Phrasea/Authentication/Phrasea/FailureManagerTest.php index fc1b30f5b3..597fa37c20 100644 --- a/tests/Alchemy/Tests/Phrasea/Authentication/Phrasea/FailureManagerTest.php +++ b/tests/Alchemy/Tests/Phrasea/Authentication/Phrasea/FailureManagerTest.php @@ -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') diff --git a/tests/Alchemy/Tests/Phrasea/Border/Checker/Sha256Test.php b/tests/Alchemy/Tests/Phrasea/Border/Checker/Sha256Test.php index 02b7b90512..3406d1a122 100644 --- a/tests/Alchemy/Tests/Phrasea/Border/Checker/Sha256Test.php +++ b/tests/Alchemy/Tests/Phrasea/Border/Checker/Sha256Test.php @@ -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()); } diff --git a/tests/Alchemy/Tests/Phrasea/Border/ManagerTest.php b/tests/Alchemy/Tests/Phrasea/Border/ManagerTest.php index d67cca09b3..dda30d14a4 100644 --- a/tests/Alchemy/Tests/Phrasea/Border/ManagerTest.php +++ b/tests/Alchemy/Tests/Phrasea/Border/ManagerTest.php @@ -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); } /** diff --git a/tests/Alchemy/Tests/Phrasea/Command/Task/TaskListTest.php b/tests/Alchemy/Tests/Phrasea/Command/Task/TaskListTest.php index bbf1090942..fe5a7cb757 100644 --- a/tests/Alchemy/Tests/Phrasea/Command/Task/TaskListTest.php +++ b/tests/Alchemy/Tests/Phrasea/Command/Task/TaskListTest.php @@ -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'); diff --git a/tests/Alchemy/Tests/Phrasea/Command/Task/TaskRunTest.php b/tests/Alchemy/Tests/Phrasea/Command/Task/TaskRunTest.php index 89a29c53b5..53124eb1d7 100644 --- a/tests/Alchemy/Tests/Phrasea/Command/Task/TaskRunTest.php +++ b/tests/Alchemy/Tests/Phrasea/Command/Task/TaskRunTest.php @@ -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']); diff --git a/tests/Alchemy/Tests/Phrasea/Command/Task/TaskStartTest.php b/tests/Alchemy/Tests/Phrasea/Command/Task/TaskStartTest.php index aff88e2689..97d452826e 100644 --- a/tests/Alchemy/Tests/Phrasea/Command/Task/TaskStartTest.php +++ b/tests/Alchemy/Tests/Phrasea/Command/Task/TaskStartTest.php @@ -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']); diff --git a/tests/Alchemy/Tests/Phrasea/Command/Task/TaskStateTest.php b/tests/Alchemy/Tests/Phrasea/Command/Task/TaskStateTest.php index f000e99244..ef64697c0c 100644 --- a/tests/Alchemy/Tests/Phrasea/Command/Task/TaskStateTest.php +++ b/tests/Alchemy/Tests/Phrasea/Command/Task/TaskStateTest.php @@ -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']); diff --git a/tests/Alchemy/Tests/Phrasea/Command/Task/TaskStopTest.php b/tests/Alchemy/Tests/Phrasea/Command/Task/TaskStopTest.php index 1b69ac0d8f..748c8a86ed 100644 --- a/tests/Alchemy/Tests/Phrasea/Command/Task/TaskStopTest.php +++ b/tests/Alchemy/Tests/Phrasea/Command/Task/TaskStopTest.php @@ -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']); diff --git a/tests/Alchemy/Tests/Phrasea/Controller/Admin/PublicationTest.php b/tests/Alchemy/Tests/Phrasea/Controller/Admin/PublicationTest.php index 723673f9b5..acdcb8c03b 100644 --- a/tests/Alchemy/Tests/Phrasea/Controller/Admin/PublicationTest.php +++ b/tests/Alchemy/Tests/Phrasea/Controller/Admin/PublicationTest.php @@ -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/"); diff --git a/tests/Alchemy/Tests/Phrasea/Controller/Admin/TaskManagerTest.php b/tests/Alchemy/Tests/Phrasea/Controller/Admin/TaskManagerTest.php index 5a928815dd..10d400768a 100644 --- a/tests/Alchemy/Tests/Phrasea/Controller/Admin/TaskManagerTest.php +++ b/tests/Alchemy/Tests/Phrasea/Controller/Admin/TaskManagerTest.php @@ -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()); } } diff --git a/tests/Alchemy/Tests/Phrasea/Controller/Admin/UsersTest.php b/tests/Alchemy/Tests/Phrasea/Controller/Admin/UsersTest.php index 6898559b95..487da0270a 100644 --- a/tests/Alchemy/Tests/Phrasea/Controller/Admin/UsersTest.php +++ b/tests/Alchemy/Tests/Phrasea/Controller/Admin/UsersTest.php @@ -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()); diff --git a/tests/Alchemy/Tests/Phrasea/Controller/Client/BasketsTest.php b/tests/Alchemy/Tests/Phrasea/Controller/Client/BasketsTest.php index 40bc291b9c..823f9524b5 100644 --- a/tests/Alchemy/Tests/Phrasea/Controller/Client/BasketsTest.php +++ b/tests/Alchemy/Tests/Phrasea/Controller/Client/BasketsTest.php @@ -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() diff --git a/tests/Alchemy/Tests/Phrasea/Controller/Prod/BasketTest.php b/tests/Alchemy/Tests/Phrasea/Controller/Prod/BasketTest.php index 3111fb1939..1df30ae6c6 100644 --- a/tests/Alchemy/Tests/Phrasea/Controller/Prod/BasketTest.php +++ b/tests/Alchemy/Tests/Phrasea/Controller/Prod/BasketTest.php @@ -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()); } } diff --git a/tests/Alchemy/Tests/Phrasea/Controller/Prod/BridgeTest.php b/tests/Alchemy/Tests/Phrasea/Controller/Prod/BridgeTest.php index 38aadc46d6..9f0a666dad 100644 --- a/tests/Alchemy/Tests/Phrasea/Controller/Prod/BridgeTest.php +++ b/tests/Alchemy/Tests/Phrasea/Controller/Prod/BridgeTest.php @@ -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()); } diff --git a/tests/Alchemy/Tests/Phrasea/Controller/Prod/DownloadTest.php b/tests/Alchemy/Tests/Phrasea/Controller/Prod/DownloadTest.php index 483db7ac25..c6e5731a79 100644 --- a/tests/Alchemy/Tests/Phrasea/Controller/Prod/DownloadTest.php +++ b/tests/Alchemy/Tests/Phrasea/Controller/Prod/DownloadTest.php @@ -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() diff --git a/tests/Alchemy/Tests/Phrasea/Controller/Prod/FeedTest.php b/tests/Alchemy/Tests/Phrasea/Controller/Prod/FeedTest.php index 154a581c82..739c87a68f 100644 --- a/tests/Alchemy/Tests/Phrasea/Controller/Prod/FeedTest.php +++ b/tests/Alchemy/Tests/Phrasea/Controller/Prod/FeedTest.php @@ -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")); diff --git a/tests/Alchemy/Tests/Phrasea/Controller/Prod/LazaretTest.php b/tests/Alchemy/Tests/Phrasea/Controller/Prod/LazaretTest.php index d38083c6b4..edd75bd9e7 100644 --- a/tests/Alchemy/Tests/Phrasea/Controller/Prod/LazaretTest.php +++ b/tests/Alchemy/Tests/Phrasea/Controller/Prod/LazaretTest.php @@ -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; } /** diff --git a/tests/Alchemy/Tests/Phrasea/Controller/Prod/QueryTest.php b/tests/Alchemy/Tests/Phrasea/Controller/Prod/QueryTest.php index 80e557e79d..eadce7a996 100644 --- a/tests/Alchemy/Tests/Phrasea/Controller/Prod/QueryTest.php +++ b/tests/Alchemy/Tests/Phrasea/Controller/Prod/QueryTest.php @@ -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()); diff --git a/tests/Alchemy/Tests/Phrasea/Controller/Prod/RecordsTest.php b/tests/Alchemy/Tests/Phrasea/Controller/Prod/RecordsTest.php index f2c69b2bdb..990a79e0d2 100644 --- a/tests/Alchemy/Tests/Phrasea/Controller/Prod/RecordsTest.php +++ b/tests/Alchemy/Tests/Phrasea/Controller/Prod/RecordsTest.php @@ -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', diff --git a/tests/Alchemy/Tests/Phrasea/Controller/Prod/StoryTest.php b/tests/Alchemy/Tests/Phrasea/Controller/Prod/StoryTest.php index 7b78318c7d..11ad4a2f35 100644 --- a/tests/Alchemy/Tests/Phrasea/Controller/Prod/StoryTest.php +++ b/tests/Alchemy/Tests/Phrasea/Controller/Prod/StoryTest.php @@ -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() diff --git a/tests/Alchemy/Tests/Phrasea/Controller/Prod/TooltipTest.php b/tests/Alchemy/Tests/Phrasea/Controller/Prod/TooltipTest.php index 5d6de60d1f..acbdfe4e08 100644 --- a/tests/Alchemy/Tests/Phrasea/Controller/Prod/TooltipTest.php +++ b/tests/Alchemy/Tests/Phrasea/Controller/Prod/TooltipTest.php @@ -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()); } diff --git a/tests/Alchemy/Tests/Phrasea/Controller/Prod/UsrListsTest.php b/tests/Alchemy/Tests/Phrasea/Controller/Prod/UsrListsTest.php index a5206e7d91..308593531e 100644 --- a/tests/Alchemy/Tests/Phrasea/Controller/Prod/UsrListsTest.php +++ b/tests/Alchemy/Tests/Phrasea/Controller/Prod/UsrListsTest.php @@ -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()); diff --git a/tests/Alchemy/Tests/Phrasea/Controller/Prod/WorkZoneTest.php b/tests/Alchemy/Tests/Phrasea/Controller/Prod/WorkZoneTest.php index ed9281f230..e3d8370668 100644 --- a/tests/Alchemy/Tests/Phrasea/Controller/Prod/WorkZoneTest.php +++ b/tests/Alchemy/Tests/Phrasea/Controller/Prod/WorkZoneTest.php @@ -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 - } - } diff --git a/tests/Alchemy/Tests/Phrasea/Controller/RecordsRequestTest.php b/tests/Alchemy/Tests/Phrasea/Controller/RecordsRequestTest.php index 776110ff0d..269db0340a 100644 --- a/tests/Alchemy/Tests/Phrasea/Controller/RecordsRequestTest.php +++ b/tests/Alchemy/Tests/Phrasea/Controller/RecordsRequestTest.php @@ -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); } } diff --git a/tests/Alchemy/Tests/Phrasea/Controller/Root/RSSFeedTest.php b/tests/Alchemy/Tests/Phrasea/Controller/Root/RSSFeedTest.php index 581470b621..b4d28d6ed4 100644 --- a/tests/Alchemy/Tests/Phrasea/Controller/Root/RSSFeedTest.php +++ b/tests/Alchemy/Tests/Phrasea/Controller/Root/RSSFeedTest.php @@ -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 } diff --git a/tests/Alchemy/Tests/Phrasea/Core/Configuration/ConfigurationTest.php b/tests/Alchemy/Tests/Phrasea/Core/Configuration/ConfigurationTest.php index 1d67b31242..7821c83e23 100644 --- a/tests/Alchemy/Tests/Phrasea/Core/Configuration/ConfigurationTest.php +++ b/tests/Alchemy/Tests/Phrasea/Core/Configuration/ConfigurationTest.php @@ -280,7 +280,7 @@ class ConfigurationTest extends \PhraseanetTestCase $compiler->expects($this->once()) ->method('compile') ->with(['main' => 'tiptop']) - ->will($this->returnValue(' "tiptop");')); + ->will($this->returnValue(' "tiptop"];')); $yaml = $this->getMockBuilder('Symfony\Component\Yaml\Yaml') ->disableOriginalConstructor() diff --git a/tests/Alchemy/Tests/Phrasea/Core/Middleware/BasketMiddlewareProviderTest.php b/tests/Alchemy/Tests/Phrasea/Core/Middleware/BasketMiddlewareProviderTest.php index 12ef29e14c..b94d2b9bb6 100644 --- a/tests/Alchemy/Tests/Phrasea/Core/Middleware/BasketMiddlewareProviderTest.php +++ b/tests/Alchemy/Tests/Phrasea/Core/Middleware/BasketMiddlewareProviderTest.php @@ -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']); diff --git a/tests/Alchemy/Tests/Phrasea/Feed/AggregateLinkGeneratorTest.php b/tests/Alchemy/Tests/Phrasea/Feed/AggregateLinkGeneratorTest.php index 49715a54e5..5b78a6cc43 100644 --- a/tests/Alchemy/Tests/Phrasea/Feed/AggregateLinkGeneratorTest.php +++ b/tests/Alchemy/Tests/Phrasea/Feed/AggregateLinkGeneratorTest.php @@ -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], ]; } diff --git a/tests/Alchemy/Tests/Phrasea/Feed/FeedLinkGeneratorTest.php b/tests/Alchemy/Tests/Phrasea/Feed/FeedLinkGeneratorTest.php index 914665610a..b9dd0dbae3 100644 --- a/tests/Alchemy/Tests/Phrasea/Feed/FeedLinkGeneratorTest.php +++ b/tests/Alchemy/Tests/Phrasea/Feed/FeedLinkGeneratorTest.php @@ -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] ]; } } diff --git a/tests/Alchemy/Tests/Phrasea/Model/Converter/BasketConverterTest.php b/tests/Alchemy/Tests/Phrasea/Model/Converter/BasketConverterTest.php index 122d7cf4c5..963e135fe1 100644 --- a/tests/Alchemy/Tests/Phrasea/Model/Converter/BasketConverterTest.php +++ b/tests/Alchemy/Tests/Phrasea/Model/Converter/BasketConverterTest.php @@ -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())); diff --git a/tests/Alchemy/Tests/Phrasea/Model/Converter/TaskConverterTest.php b/tests/Alchemy/Tests/Phrasea/Model/Converter/TaskConverterTest.php index 418c15ffda..425a688702 100644 --- a/tests/Alchemy/Tests/Phrasea/Model/Converter/TaskConverterTest.php +++ b/tests/Alchemy/Tests/Phrasea/Model/Converter/TaskConverterTest.php @@ -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)); } /** diff --git a/tests/Alchemy/Tests/Phrasea/Model/Entities/UserTest.php b/tests/Alchemy/Tests/Phrasea/Model/Entities/UserTest.php index 600c8afced..3f78db8617 100644 --- a/tests/Alchemy/Tests/Phrasea/Model/Entities/UserTest.php +++ b/tests/Alchemy/Tests/Phrasea/Model/Entities/UserTest.php @@ -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() diff --git a/tests/Alchemy/Tests/Phrasea/Model/Manager/UserManagerTest.php b/tests/Alchemy/Tests/Phrasea/Model/Manager/UserManagerTest.php index f8c6bf8e71..3dfbfa7384 100644 --- a/tests/Alchemy/Tests/Phrasea/Model/Manager/UserManagerTest.php +++ b/tests/Alchemy/Tests/Phrasea/Model/Manager/UserManagerTest.php @@ -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()); diff --git a/tests/Alchemy/Tests/Phrasea/Model/Manipulator/TaskManipulatorTest.php b/tests/Alchemy/Tests/Phrasea/Model/Manipulator/TaskManipulatorTest.php index 204466fff9..5ed712c4d3 100644 --- a/tests/Alchemy/Tests/Phrasea/Model/Manipulator/TaskManipulatorTest.php +++ b/tests/Alchemy/Tests/Phrasea/Model/Manipulator/TaskManipulatorTest.php @@ -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() diff --git a/tests/Alchemy/Tests/Phrasea/Model/Repositories/FeedItemRepositoryTest.php b/tests/Alchemy/Tests/Phrasea/Model/Repositories/FeedItemRepositoryTest.php index 4258882647..0af59b5b3d 100644 --- a/tests/Alchemy/Tests/Phrasea/Model/Repositories/FeedItemRepositoryTest.php +++ b/tests/Alchemy/Tests/Phrasea/Model/Repositories/FeedItemRepositoryTest.php @@ -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)); } } diff --git a/tests/Alchemy/Tests/Phrasea/Model/Repositories/TaskRepositoryTest.php b/tests/Alchemy/Tests/Phrasea/Model/Repositories/TaskRepositoryTest.php index 4660d4dc82..6f35d8fd0b 100644 --- a/tests/Alchemy/Tests/Phrasea/Model/Repositories/TaskRepositoryTest.php +++ b/tests/Alchemy/Tests/Phrasea/Model/Repositories/TaskRepositoryTest.php @@ -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'); diff --git a/tests/Alchemy/Tests/Phrasea/Model/Repositories/UserRepositoryTest.php b/tests/Alchemy/Tests/Phrasea/Model/Repositories/UserRepositoryTest.php index 403b3d49a0..6882e0196d 100644 --- a/tests/Alchemy/Tests/Phrasea/Model/Repositories/UserRepositoryTest.php +++ b/tests/Alchemy/Tests/Phrasea/Model/Repositories/UserRepositoryTest.php @@ -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')); - } } diff --git a/tests/Alchemy/Tests/Phrasea/SearchEngine/SearchEngineAbstractTest.php b/tests/Alchemy/Tests/Phrasea/SearchEngine/SearchEngineAbstractTest.php index c7e12dada4..c35bfb795f 100644 --- a/tests/Alchemy/Tests/Phrasea/SearchEngine/SearchEngineAbstractTest.php +++ b/tests/Alchemy/Tests/Phrasea/SearchEngine/SearchEngineAbstractTest.php @@ -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); diff --git a/tests/Alchemy/Tests/Phrasea/SearchEngine/SearchEngineResultTest.php b/tests/Alchemy/Tests/Phrasea/SearchEngine/SearchEngineResultTest.php index fe68a14ab4..d81dcbea85 100644 --- a/tests/Alchemy/Tests/Phrasea/SearchEngine/SearchEngineResultTest.php +++ b/tests/Alchemy/Tests/Phrasea/SearchEngine/SearchEngineResultTest.php @@ -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'; diff --git a/tests/Alchemy/Tests/Phrasea/SearchEngine/SphinxSearchEngineTest.php b/tests/Alchemy/Tests/Phrasea/SearchEngine/SphinxSearchEngineTest.php index 733f619fe9..a9f7f630d4 100644 --- a/tests/Alchemy/Tests/Phrasea/SearchEngine/SphinxSearchEngineTest.php +++ b/tests/Alchemy/Tests/Phrasea/SearchEngine/SphinxSearchEngineTest.php @@ -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 = []; diff --git a/tests/Alchemy/Tests/Phrasea/TaskManager/Event/FinishedJobRemoverSubscriberTest.php b/tests/Alchemy/Tests/Phrasea/TaskManager/Event/FinishedJobRemoverSubscriberTest.php index eb45c5e777..39ff0e5f1a 100644 --- a/tests/Alchemy/Tests/Phrasea/TaskManager/Event/FinishedJobRemoverSubscriberTest.php +++ b/tests/Alchemy/Tests/Phrasea/TaskManager/Event/FinishedJobRemoverSubscriberTest.php @@ -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']); diff --git a/tests/Alchemy/Tests/Phrasea/TaskManager/LiveInformationTest.php b/tests/Alchemy/Tests/Phrasea/TaskManager/LiveInformationTest.php index 455e0191e7..260775c233 100644 --- a/tests/Alchemy/Tests/Phrasea/TaskManager/LiveInformationTest.php +++ b/tests/Alchemy/Tests/Phrasea/TaskManager/LiveInformationTest.php @@ -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()) diff --git a/tests/Alchemy/Tests/Phrasea/TaskManager/Log/LogFileFactoryTest.php b/tests/Alchemy/Tests/Phrasea/TaskManager/Log/LogFileFactoryTest.php index ff76e93f5f..ce99b1f6e4 100644 --- a/tests/Alchemy/Tests/Phrasea/TaskManager/Log/LogFileFactoryTest.php +++ b/tests/Alchemy/Tests/Phrasea/TaskManager/Log/LogFileFactoryTest.php @@ -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); diff --git a/tests/Alchemy/Tests/Phrasea/TaskManager/Log/TaskLogFileTest.php b/tests/Alchemy/Tests/Phrasea/TaskManager/Log/TaskLogFileTest.php index 630008f32d..dec32be22b 100644 --- a/tests/Alchemy/Tests/Phrasea/TaskManager/Log/TaskLogFileTest.php +++ b/tests/Alchemy/Tests/Phrasea/TaskManager/Log/TaskLogFileTest.php @@ -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); } diff --git a/tests/Alchemy/Tests/Phrasea/TaskManager/TaskListTest.php b/tests/Alchemy/Tests/Phrasea/TaskManager/TaskListTest.php index 541efb4709..c333d4445e 100644 --- a/tests/Alchemy/Tests/Phrasea/TaskManager/TaskListTest.php +++ b/tests/Alchemy/Tests/Phrasea/TaskManager/TaskListTest.php @@ -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); } } diff --git a/tests/Alchemy/Tests/Phrasea/TaskManager/TaskManagerStatusTest.php b/tests/Alchemy/Tests/Phrasea/TaskManager/TaskManagerStatusTest.php index bb8f9e2258..6434f61d97 100644 --- a/tests/Alchemy/Tests/Phrasea/TaskManager/TaskManagerStatusTest.php +++ b/tests/Alchemy/Tests/Phrasea/TaskManager/TaskManagerStatusTest.php @@ -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], ]; } diff --git a/tests/classes/Bridge/Bridge_datas.inc b/tests/classes/Bridge/Bridge_datas.inc index a3881c1d09..2872fcff60 100644 --- a/tests/classes/Bridge/Bridge_datas.inc +++ b/tests/classes/Bridge/Bridge_datas.inc @@ -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'; } diff --git a/tests/classes/Doctrine/Entities/BasketTest.php b/tests/classes/Doctrine/Entities/BasketTest.php deleted file mode 100644 index c736aa171b..0000000000 --- a/tests/classes/Doctrine/Entities/BasketTest.php +++ /dev/null @@ -1,163 +0,0 @@ -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(); - } -} diff --git a/tests/classes/Doctrine/Repositories/ValidationParticipantRepositoryTest.php b/tests/classes/Doctrine/Repositories/ValidationParticipantRepositoryTest.php index 1913ef4ae7..a2652dddba 100644 --- a/tests/classes/Doctrine/Repositories/ValidationParticipantRepositoryTest.php +++ b/tests/classes/Doctrine/Repositories/ValidationParticipantRepositoryTest.php @@ -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)); } } diff --git a/tests/classes/FeedValidator.inc b/tests/classes/FeedValidator.inc index d70731ec66..ff5c664824 100644 --- a/tests/classes/FeedValidator.inc +++ b/tests/classes/FeedValidator.inc @@ -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; } diff --git a/tests/classes/PhraseanetTestCase.php b/tests/classes/PhraseanetTestCase.php index 3254cfda0e..a2decd91d1 100644 --- a/tests/classes/PhraseanetTestCase.php +++ b/tests/classes/PhraseanetTestCase.php @@ -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. */ diff --git a/tests/classes/api/v1/api_v1_adapterTest.php b/tests/classes/api/v1/api_v1_adapterTest.php index 7511d41425..576339dab0 100644 --- a/tests/classes/api/v1/api_v1_adapterTest.php +++ b/tests/classes/api/v1/api_v1_adapterTest.php @@ -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) { diff --git a/tests/classes/record/adapterTest.php b/tests/classes/record/adapterTest.php index 3b735b3940..52e6bfa7b5 100644 --- a/tests/classes/record/adapterTest.php +++ b/tests/classes/record/adapterTest.php @@ -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(); diff --git a/tests/db-ref.sqlite b/tests/db-ref.sqlite deleted file mode 100644 index 79b6b45af4..0000000000 Binary files a/tests/db-ref.sqlite and /dev/null differ diff --git a/tests/files/cestlafete.jpg b/tests/files/cestlafete.jpg index 7e47016c34..ad3f88bcb5 100755 Binary files a/tests/files/cestlafete.jpg and b/tests/files/cestlafete.jpg differ diff --git a/tests/files/test002.jpg b/tests/files/test002.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test002.jpg and /dev/null differ diff --git a/tests/files/test003.jpg b/tests/files/test003.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test003.jpg and /dev/null differ diff --git a/tests/files/test004.jpg b/tests/files/test004.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test004.jpg and /dev/null differ diff --git a/tests/files/test005.jpg b/tests/files/test005.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test005.jpg and /dev/null differ diff --git a/tests/files/test006.jpg b/tests/files/test006.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test006.jpg and /dev/null differ diff --git a/tests/files/test007.jpg b/tests/files/test007.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test007.jpg and /dev/null differ diff --git a/tests/files/test008.jpg b/tests/files/test008.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test008.jpg and /dev/null differ diff --git a/tests/files/test009.jpg b/tests/files/test009.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test009.jpg and /dev/null differ diff --git a/tests/files/test010.jpg b/tests/files/test010.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test010.jpg and /dev/null differ diff --git a/tests/files/test011.jpg b/tests/files/test011.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test011.jpg and /dev/null differ diff --git a/tests/files/test012.jpg b/tests/files/test012.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test012.jpg and /dev/null differ diff --git a/tests/files/test013.jpg b/tests/files/test013.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test013.jpg and /dev/null differ diff --git a/tests/files/test014.jpg b/tests/files/test014.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test014.jpg and /dev/null differ diff --git a/tests/files/test015.jpg b/tests/files/test015.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test015.jpg and /dev/null differ diff --git a/tests/files/test016.jpg b/tests/files/test016.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test016.jpg and /dev/null differ diff --git a/tests/files/test017.jpg b/tests/files/test017.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test017.jpg and /dev/null differ diff --git a/tests/files/test018.jpg b/tests/files/test018.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test018.jpg and /dev/null differ diff --git a/tests/files/test019.jpg b/tests/files/test019.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test019.jpg and /dev/null differ diff --git a/tests/files/test020.jpg b/tests/files/test020.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test020.jpg and /dev/null differ diff --git a/tests/files/test021.jpg b/tests/files/test021.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test021.jpg and /dev/null differ diff --git a/tests/files/test022.jpg b/tests/files/test022.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test022.jpg and /dev/null differ diff --git a/tests/files/test023.jpg b/tests/files/test023.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test023.jpg and /dev/null differ diff --git a/tests/files/test024.jpg b/tests/files/test024.jpg deleted file mode 100644 index 7e47016c34..0000000000 Binary files a/tests/files/test024.jpg and /dev/null differ