X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tests%2FWallabag%2FCoreBundle%2FController%2FEntryControllerTest.php;fp=tests%2FWallabag%2FCoreBundle%2FController%2FEntryControllerTest.php;h=765c108e9ad4512d61168d86027c796734a1609f;hb=76459e5694084f3eea6d30f438ffc95fb35cbe67;hp=15f05d489e80dc4d582f7a4db18ee5b8b946970c;hpb=074110ca2dd3ba0d58f2fa93076933d06b46df77;p=github%2Fwallabag%2Fwallabag.git diff --git a/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php b/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php index 15f05d48..765c108e 100644 --- a/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php +++ b/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php @@ -1041,7 +1041,7 @@ class EntryControllerTest extends WallabagCoreTestCase $this->assertSame('test title entry' . $ids[$key], $result); } - rsort($ids); + $ids = array_reverse($ids); $crawler = $client->request('GET', '/unread/list'); $form = $crawler->filter('button[id=submit-sort]')->form(); @@ -1061,6 +1061,201 @@ class EntryControllerTest extends WallabagCoreTestCase } } + public function testSortOnCreationDate() + { + $this->logInAs('admin'); + $client = $this->getClient(); + + $entry1 = new Entry($this->getLoggedInUser()); + $entry1->setTitle('test title entry7'); + $entry1->setCreatedAt(new \DateTime('2013-04-03T13:37:00')); + $this->getEntityManager()->persist($entry1); + + $entry2 = new Entry($this->getLoggedInUser()); + $entry2->setTitle('test title entry8'); + $entry2->setCreatedAt(new \DateTime('2012-04-03T13:37:00')); + $this->getEntityManager()->persist($entry2); + + $entry3 = new Entry($this->getLoggedInUser()); + $entry3->setTitle('test title entry9'); + $entry3->setCreatedAt(new \DateTime('2014-04-03T13:37:00')); + $this->getEntityManager()->persist($entry3); + + $this->getEntityManager()->flush(); + + $crawler = $client->request('GET', '/unread/list'); + $form = $crawler->filter('button[id=submit-sort]')->form(); + $data = [ + 'entry_sort[sortType]' => 'createdAt', + 'entry_sort[sortOrder]' => 'asc', + ]; + $crawler = $client->submit($form, $data); + + $this->assertCount(7, $crawler->filter('li.entry')); + + $matches = []; + preg_match_all('/test title entry([0-9])/', $client->getResponse()->getContent(), $matches); + + $results = array_values(array_unique($matches[0])); + + $ids = [8, 7, 9, 1, 2, 4, 5]; + + foreach ($results as $key => $result) { + $this->assertSame('test title entry' . $ids[$key], $result); + } + + $ids = array_reverse($ids); + + $crawler = $client->request('GET', '/unread/list'); + $form = $crawler->filter('button[id=submit-sort]')->form(); + $data = [ + 'entry_sort[sortType]' => 'createdAt', + 'entry_sort[sortOrder]' => 'desc', + ]; + $crawler = $client->submit($form, $data); + + $matches = []; + preg_match_all('/test title entry([0-9])/', $client->getResponse()->getContent(), $matches); + + $results = array_values(array_unique($matches[0])); + + foreach ($results as $key => $result) { + $this->assertSame('test title entry' . $ids[$key], $result); + } + } + + public function testSortOnStarredDate() + { + $this->logInAs('admin'); + $client = $this->getClient(); + + $entry1 = new Entry($this->getLoggedInUser()); + $entry1->setTitle('test title entry7'); + $entry1->setStarred(true); + $entry1->setStarredAt(new \DateTime('2013-04-03T13:37:00')); + $this->getEntityManager()->persist($entry1); + + $entry2 = new Entry($this->getLoggedInUser()); + $entry2->setTitle('test title entry8'); + $entry2->setStarred(true); + $entry2->setStarredAt(new \DateTime('2012-04-03T13:37:00')); + $this->getEntityManager()->persist($entry2); + + $entry3 = new Entry($this->getLoggedInUser()); + $entry3->setTitle('test title entry9'); + $entry3->setStarred(true); + $entry3->setStarredAt(new \DateTime('2014-04-03T13:37:00')); + $this->getEntityManager()->persist($entry3); + + $this->getEntityManager()->flush(); + + $crawler = $client->request('GET', '/starred/list'); + $form = $crawler->filter('button[id=submit-sort]')->form(); + $data = [ + 'entry_sort[sortType]' => 'starredAt', + 'entry_sort[sortOrder]' => 'asc', + ]; + $crawler = $client->submit($form, $data); + + $this->assertCount(4, $crawler->filter('li.entry')); + + $matches = []; + preg_match_all('/test title entry([0-9])/', $client->getResponse()->getContent(), $matches); + + $results = array_values(array_unique($matches[0])); + + $ids = [5, 8, 7, 9]; + + foreach ($results as $key => $result) { + $this->assertSame('test title entry' . $ids[$key], $result); + } + + $ids = array_reverse($ids); + + $crawler = $client->request('GET', '/starred/list'); + $form = $crawler->filter('button[id=submit-sort]')->form(); + $data = [ + 'entry_sort[sortType]' => 'starredAt', + 'entry_sort[sortOrder]' => 'desc', + ]; + $crawler = $client->submit($form, $data); + + $matches = []; + preg_match_all('/test title entry([0-9])/', $client->getResponse()->getContent(), $matches); + + $results = array_values(array_unique($matches[0])); + + foreach ($results as $key => $result) { + $this->assertSame('test title entry' . $ids[$key], $result); + } + } + + public function testSortOnArchivedDate() + { + $this->logInAs('admin'); + $client = $this->getClient(); + + $entry1 = new Entry($this->getLoggedInUser()); + $entry1->setTitle('test title entry7'); + $entry1->setArchived(true); + $entry1->setArchivedAt(new \DateTime('2010-04-03T13:37:00')); + $this->getEntityManager()->persist($entry1); + + $entry2 = new Entry($this->getLoggedInUser()); + $entry2->setTitle('test title entry8'); + $entry2->setArchived(true); + $entry2->setArchivedAt(new \DateTime('2000-04-03T13:37:00')); + $this->getEntityManager()->persist($entry2); + + $entry3 = new Entry($this->getLoggedInUser()); + $entry3->setTitle('test title entry9'); + $entry3->setArchived(true); + $entry3->setArchivedAt(new \DateTime('2020-04-03T13:37:00')); + $this->getEntityManager()->persist($entry3); + + $this->getEntityManager()->flush(); + + $crawler = $client->request('GET', '/archive/list'); + $form = $crawler->filter('button[id=submit-sort]')->form(); + $data = [ + 'entry_sort[sortType]' => 'archivedAt', + 'entry_sort[sortOrder]' => 'asc', + ]; + $crawler = $client->submit($form, $data); + + $this->assertCount(4, $crawler->filter('li.entry')); + + $matches = []; + preg_match_all('/test title entry([0-9])/', $client->getResponse()->getContent(), $matches); + + $results = array_values(array_unique($matches[0])); + + $ids = [6, 8, 7, 9]; + + foreach ($results as $key => $result) { + $this->assertSame('test title entry' . $ids[$key], $result); + } + + $ids = array_reverse($ids); + + $crawler = $client->request('GET', '/archive/list'); + $form = $crawler->filter('button[id=submit-sort]')->form(); + $data = [ + 'entry_sort[sortType]' => 'archivedAt', + 'entry_sort[sortOrder]' => 'desc', + ]; + $crawler = $client->submit($form, $data); + + $matches = []; + preg_match_all('/test title entry([0-9])/', $client->getResponse()->getContent(), $matches); + + $results = array_values(array_unique($matches[0])); + + foreach ($results as $key => $result) { + $this->assertSame('test title entry' . $ids[$key], $result); + } + } + public function testShareEntryPublicly() { $this->logInAs('admin');