diff options
author | Jeremy Benoist <jeremy.benoist@gmail.com> | 2016-10-11 21:01:30 +0200 |
---|---|---|
committer | Jeremy Benoist <jeremy.benoist@gmail.com> | 2016-10-11 21:01:30 +0200 |
commit | e4cf672ccf61689ba28c2e89fc55f83167800b18 (patch) | |
tree | 5dc22c97797bdcdd0a3d2a7e182410f04a748c1e /tests | |
parent | e57df5611fe82ce61a71d51c762ee9296f18c3ac (diff) | |
parent | dbe94e73a9eaf3acb250812913b0303b35d01a2e (diff) | |
download | wallabag-e4cf672ccf61689ba28c2e89fc55f83167800b18.tar.gz wallabag-e4cf672ccf61689ba28c2e89fc55f83167800b18.tar.zst wallabag-e4cf672ccf61689ba28c2e89fc55f83167800b18.zip |
Merge remote-tracking branch 'origin/master' into 2.2
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Wallabag/ApiBundle/Controller/DeveloperControllerTest.php (renamed from tests/Wallabag/CoreBundle/Controller/DeveloperControllerTest.php) | 28 | ||||
-rw-r--r-- | tests/Wallabag/ApiBundle/Controller/WallabagRestControllerTest.php | 25 | ||||
-rw-r--r-- | tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php | 27 | ||||
-rw-r--r-- | tests/Wallabag/CoreBundle/Controller/TagControllerTest.php | 33 | ||||
-rw-r--r-- | tests/Wallabag/CoreBundle/WallabagCoreTestCase.php | 4 | ||||
-rw-r--r-- | tests/Wallabag/ImportBundle/Controller/ChromeControllerTest.php | 1 | ||||
-rw-r--r-- | tests/Wallabag/ImportBundle/Controller/FirefoxControllerTest.php | 1 |
7 files changed, 91 insertions, 28 deletions
diff --git a/tests/Wallabag/CoreBundle/Controller/DeveloperControllerTest.php b/tests/Wallabag/ApiBundle/Controller/DeveloperControllerTest.php index 97ed0d58..95befa9c 100644 --- a/tests/Wallabag/CoreBundle/Controller/DeveloperControllerTest.php +++ b/tests/Wallabag/ApiBundle/Controller/DeveloperControllerTest.php | |||
@@ -1,6 +1,6 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace Tests\Wallabag\CoreBundle\Controller; | 3 | namespace Tests\Wallabag\ApiBundle\Controller; |
4 | 4 | ||
5 | use Tests\Wallabag\CoreBundle\WallabagCoreTestCase; | 5 | use Tests\Wallabag\CoreBundle\WallabagCoreTestCase; |
6 | 6 | ||
@@ -33,6 +33,32 @@ class DeveloperControllerTest extends WallabagCoreTestCase | |||
33 | $this->assertContains('My app', $alert[0]); | 33 | $this->assertContains('My app', $alert[0]); |
34 | } | 34 | } |
35 | 35 | ||
36 | /** | ||
37 | * @depends testCreateClient | ||
38 | */ | ||
39 | public function testCreateToken() | ||
40 | { | ||
41 | $client = $this->getClient(); | ||
42 | $em = $client->getContainer()->get('doctrine.orm.entity_manager'); | ||
43 | $apiClient = $em->getRepository('WallabagApiBundle:Client')->findOneByName('My app'); | ||
44 | |||
45 | $client->request('POST', '/oauth/v2/token', [ | ||
46 | 'grant_type' => 'password', | ||
47 | 'client_id' => $apiClient->getPublicId(), | ||
48 | 'client_secret' => $apiClient->getSecret(), | ||
49 | 'username' => 'admin', | ||
50 | 'password' => 'mypassword', | ||
51 | ]); | ||
52 | |||
53 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); | ||
54 | |||
55 | $data = json_decode($client->getResponse()->getContent(), true); | ||
56 | $this->assertArrayHasKey('access_token', $data); | ||
57 | $this->assertArrayHasKey('expires_in', $data); | ||
58 | $this->assertArrayHasKey('token_type', $data); | ||
59 | $this->assertArrayHasKey('refresh_token', $data); | ||
60 | } | ||
61 | |||
36 | public function testListingClient() | 62 | public function testListingClient() |
37 | { | 63 | { |
38 | $this->logInAs('admin'); | 64 | $this->logInAs('admin'); |
diff --git a/tests/Wallabag/ApiBundle/Controller/WallabagRestControllerTest.php b/tests/Wallabag/ApiBundle/Controller/WallabagRestControllerTest.php index 65b65290..5dcb3e00 100644 --- a/tests/Wallabag/ApiBundle/Controller/WallabagRestControllerTest.php +++ b/tests/Wallabag/ApiBundle/Controller/WallabagRestControllerTest.php | |||
@@ -561,6 +561,8 @@ class WallabagRestControllerTest extends WallabagApiTestCase | |||
561 | */ | 561 | */ |
562 | public function testDeleteUserTag($tag) | 562 | public function testDeleteUserTag($tag) |
563 | { | 563 | { |
564 | $tagName = $tag['label']; | ||
565 | |||
564 | $this->client->request('DELETE', '/api/tags/'.$tag['id'].'.json'); | 566 | $this->client->request('DELETE', '/api/tags/'.$tag['id'].'.json'); |
565 | 567 | ||
566 | $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); | 568 | $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); |
@@ -577,6 +579,13 @@ class WallabagRestControllerTest extends WallabagApiTestCase | |||
577 | ->findAllByTagId($this->user->getId(), $tag['id']); | 579 | ->findAllByTagId($this->user->getId(), $tag['id']); |
578 | 580 | ||
579 | $this->assertCount(0, $entries); | 581 | $this->assertCount(0, $entries); |
582 | |||
583 | $tag = $this->client->getContainer() | ||
584 | ->get('doctrine.orm.entity_manager') | ||
585 | ->getRepository('WallabagCoreBundle:Tag') | ||
586 | ->findOneByLabel($tagName); | ||
587 | |||
588 | $this->assertNull($tag, $tagName.' was removed because it begun an orphan tag'); | ||
580 | } | 589 | } |
581 | 590 | ||
582 | public function testDeleteTagByLabel() | 591 | public function testDeleteTagByLabel() |
@@ -794,6 +803,22 @@ class WallabagRestControllerTest extends WallabagApiTestCase | |||
794 | $this->assertEquals(true, $content['exists']); | 803 | $this->assertEquals(true, $content['exists']); |
795 | } | 804 | } |
796 | 805 | ||
806 | public function testGetEntriesExistsWithManyUrls() | ||
807 | { | ||
808 | $url1 = 'http://0.0.0.0/entry2'; | ||
809 | $url2 = 'http://0.0.0.0/entry10'; | ||
810 | $this->client->request('GET', '/api/entries/exists?urls[]='.$url1.'&urls[]='.$url2); | ||
811 | |||
812 | $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); | ||
813 | |||
814 | $content = json_decode($this->client->getResponse()->getContent(), true); | ||
815 | |||
816 | $this->assertArrayHasKey($url1, $content); | ||
817 | $this->assertArrayHasKey($url2, $content); | ||
818 | $this->assertEquals(true, $content[$url1]); | ||
819 | $this->assertEquals(false, $content[$url2]); | ||
820 | } | ||
821 | |||
797 | public function testGetEntriesExistsWhichDoesNotExists() | 822 | public function testGetEntriesExistsWhichDoesNotExists() |
798 | { | 823 | { |
799 | $this->client->request('GET', '/api/entries/exists?url=http://google.com/entry2'); | 824 | $this->client->request('GET', '/api/entries/exists?url=http://google.com/entry2'); |
diff --git a/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php b/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php index d7bf03ba..9b03a519 100644 --- a/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php +++ b/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php | |||
@@ -341,22 +341,23 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
341 | $this->logInAs('admin'); | 341 | $this->logInAs('admin'); |
342 | $client = $this->getClient(); | 342 | $client = $this->getClient(); |
343 | 343 | ||
344 | $content = $client->getContainer() | 344 | $em = $client->getContainer() |
345 | ->get('doctrine.orm.entity_manager') | 345 | ->get('doctrine.orm.entity_manager'); |
346 | |||
347 | $content = $em | ||
346 | ->getRepository('WallabagCoreBundle:Entry') | 348 | ->getRepository('WallabagCoreBundle:Entry') |
347 | ->findByUrlAndUserId($this->url, $this->getLoggedInUserId()); | 349 | ->findByUrlAndUserId($this->url, $this->getLoggedInUserId()); |
348 | 350 | ||
349 | // empty content | 351 | // empty content |
350 | $content->setContent(''); | 352 | $content->setContent(''); |
351 | $client->getContainer()->get('doctrine.orm.entity_manager')->persist($content); | 353 | $em->persist($content); |
352 | $client->getContainer()->get('doctrine.orm.entity_manager')->flush(); | 354 | $em->flush(); |
353 | 355 | ||
354 | $client->request('GET', '/reload/'.$content->getId()); | 356 | $client->request('GET', '/reload/'.$content->getId()); |
355 | 357 | ||
356 | $this->assertEquals(302, $client->getResponse()->getStatusCode()); | 358 | $this->assertEquals(302, $client->getResponse()->getStatusCode()); |
357 | 359 | ||
358 | $content = $client->getContainer() | 360 | $content = $em |
359 | ->get('doctrine.orm.entity_manager') | ||
360 | ->getRepository('WallabagCoreBundle:Entry') | 361 | ->getRepository('WallabagCoreBundle:Entry') |
361 | ->findByUrlAndUserId($this->url, $this->getLoggedInUserId()); | 362 | ->findByUrlAndUserId($this->url, $this->getLoggedInUserId()); |
362 | 363 | ||
@@ -486,9 +487,11 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
486 | $this->logInAs('admin'); | 487 | $this->logInAs('admin'); |
487 | $client = $this->getClient(); | 488 | $client = $this->getClient(); |
488 | 489 | ||
490 | $em = $client->getContainer() | ||
491 | ->get('doctrine.orm.entity_manager'); | ||
492 | |||
489 | // add a new content to be removed later | 493 | // add a new content to be removed later |
490 | $user = $client->getContainer() | 494 | $user = $em |
491 | ->get('doctrine.orm.entity_manager') | ||
492 | ->getRepository('WallabagUserBundle:User') | 495 | ->getRepository('WallabagUserBundle:User') |
493 | ->findOneByUserName('admin'); | 496 | ->findOneByUserName('admin'); |
494 | 497 | ||
@@ -502,12 +505,8 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
502 | $content->setArchived(true); | 505 | $content->setArchived(true); |
503 | $content->setLanguage('fr'); | 506 | $content->setLanguage('fr'); |
504 | 507 | ||
505 | $client->getContainer() | 508 | $em->persist($content); |
506 | ->get('doctrine.orm.entity_manager') | 509 | $em->flush(); |
507 | ->persist($content); | ||
508 | $client->getContainer() | ||
509 | ->get('doctrine.orm.entity_manager') | ||
510 | ->flush(); | ||
511 | 510 | ||
512 | $client->request('GET', '/view/'.$content->getId()); | 511 | $client->request('GET', '/view/'.$content->getId()); |
513 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); | 512 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); |
diff --git a/tests/Wallabag/CoreBundle/Controller/TagControllerTest.php b/tests/Wallabag/CoreBundle/Controller/TagControllerTest.php index 86a6cca2..769ce66e 100644 --- a/tests/Wallabag/CoreBundle/Controller/TagControllerTest.php +++ b/tests/Wallabag/CoreBundle/Controller/TagControllerTest.php | |||
@@ -3,6 +3,7 @@ | |||
3 | namespace Tests\Wallabag\CoreBundle\Controller; | 3 | namespace Tests\Wallabag\CoreBundle\Controller; |
4 | 4 | ||
5 | use Tests\Wallabag\CoreBundle\WallabagCoreTestCase; | 5 | use Tests\Wallabag\CoreBundle\WallabagCoreTestCase; |
6 | use Wallabag\CoreBundle\Entity\Tag; | ||
6 | 7 | ||
7 | class TagControllerTest extends WallabagCoreTestCase | 8 | class TagControllerTest extends WallabagCoreTestCase |
8 | { | 9 | { |
@@ -134,36 +135,48 @@ class TagControllerTest extends WallabagCoreTestCase | |||
134 | $client->request('GET', '/remove-tag/'.$entry->getId().'/'.$tag->getId()); | 135 | $client->request('GET', '/remove-tag/'.$entry->getId().'/'.$tag->getId()); |
135 | 136 | ||
136 | $this->assertEquals(404, $client->getResponse()->getStatusCode()); | 137 | $this->assertEquals(404, $client->getResponse()->getStatusCode()); |
138 | |||
139 | $tag = $client->getContainer() | ||
140 | ->get('doctrine.orm.entity_manager') | ||
141 | ->getRepository('WallabagCoreBundle:Tag') | ||
142 | ->findOneByLabel($this->tagName); | ||
143 | |||
144 | $this->assertNull($tag, $this->tagName.' was removed because it begun an orphan tag'); | ||
137 | } | 145 | } |
138 | 146 | ||
139 | public function testShowEntriesForTagAction() | 147 | public function testShowEntriesForTagAction() |
140 | { | 148 | { |
141 | $this->logInAs('admin'); | 149 | $this->logInAs('admin'); |
142 | $client = $this->getClient(); | 150 | $client = $this->getClient(); |
151 | $em = $client->getContainer() | ||
152 | ->get('doctrine.orm.entity_manager'); | ||
153 | |||
154 | $tag = new Tag(); | ||
155 | $tag->setLabel($this->tagName); | ||
143 | 156 | ||
144 | $entry = $client->getContainer() | 157 | $entry = $client->getContainer() |
145 | ->get('doctrine.orm.entity_manager') | 158 | ->get('doctrine.orm.entity_manager') |
146 | ->getRepository('WallabagCoreBundle:Entry') | 159 | ->getRepository('WallabagCoreBundle:Entry') |
147 | ->findByUrlAndUserId('http://0.0.0.0/entry4', $this->getLoggedInUserId()); | 160 | ->findByUrlAndUserId('http://0.0.0.0/entry4', $this->getLoggedInUserId()); |
148 | 161 | ||
149 | $tag = $client->getContainer() | 162 | $tag->addEntry($entry); |
150 | ->get('doctrine.orm.entity_manager') | ||
151 | ->getRepository('WallabagCoreBundle:Tag') | ||
152 | ->findOneByEntryAndTagLabel($entry, 'foo'); | ||
153 | |||
154 | $crawler = $client->request('GET', '/tag/list/'.$tag->getSlug()); | ||
155 | 163 | ||
156 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); | 164 | $em->persist($entry); |
157 | $this->assertCount(2, $crawler->filter('div[class=entry]')); | 165 | $em->persist($tag); |
166 | $em->flush(); | ||
158 | 167 | ||
159 | $tag = $client->getContainer() | 168 | $tag = $client->getContainer() |
160 | ->get('doctrine.orm.entity_manager') | 169 | ->get('doctrine.orm.entity_manager') |
161 | ->getRepository('WallabagCoreBundle:Tag') | 170 | ->getRepository('WallabagCoreBundle:Tag') |
162 | ->findOneByLabel('baz'); | 171 | ->findOneByEntryAndTagLabel($entry, $this->tagName); |
163 | 172 | ||
164 | $crawler = $client->request('GET', '/tag/list/'.$tag->getSlug()); | 173 | $crawler = $client->request('GET', '/tag/list/'.$tag->getSlug()); |
165 | 174 | ||
166 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); | 175 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); |
167 | $this->assertCount(1, $crawler->filter('div[class=entry]')); | 176 | $this->assertCount(1, $crawler->filter('[id*="entry-"]')); |
177 | |||
178 | $entry->removeTag($tag); | ||
179 | $em->remove($tag); | ||
180 | $em->flush(); | ||
168 | } | 181 | } |
169 | } | 182 | } |
diff --git a/tests/Wallabag/CoreBundle/WallabagCoreTestCase.php b/tests/Wallabag/CoreBundle/WallabagCoreTestCase.php index 4f103921..7bf4b43c 100644 --- a/tests/Wallabag/CoreBundle/WallabagCoreTestCase.php +++ b/tests/Wallabag/CoreBundle/WallabagCoreTestCase.php | |||
@@ -90,9 +90,7 @@ abstract class WallabagCoreTestCase extends WebTestCase | |||
90 | try { | 90 | try { |
91 | $this->client->getContainer()->get('wallabag_core.redis.client')->connect(); | 91 | $this->client->getContainer()->get('wallabag_core.redis.client')->connect(); |
92 | } catch (\Exception $e) { | 92 | } catch (\Exception $e) { |
93 | $this->markTestSkipped( | 93 | $this->markTestSkipped('Redis is not installed/activated'); |
94 | 'Redis is not installed/activated' | ||
95 | ); | ||
96 | } | 94 | } |
97 | } | 95 | } |
98 | } | 96 | } |
diff --git a/tests/Wallabag/ImportBundle/Controller/ChromeControllerTest.php b/tests/Wallabag/ImportBundle/Controller/ChromeControllerTest.php index 23c80bec..c0417bbe 100644 --- a/tests/Wallabag/ImportBundle/Controller/ChromeControllerTest.php +++ b/tests/Wallabag/ImportBundle/Controller/ChromeControllerTest.php | |||
@@ -54,6 +54,7 @@ class ChromeControllerTest extends WallabagCoreTestCase | |||
54 | 54 | ||
55 | public function testImportChromeWithRedisEnabled() | 55 | public function testImportChromeWithRedisEnabled() |
56 | { | 56 | { |
57 | $this->checkRedis(); | ||
57 | $this->logInAs('admin'); | 58 | $this->logInAs('admin'); |
58 | $client = $this->getClient(); | 59 | $client = $this->getClient(); |
59 | $client->getContainer()->get('craue_config')->set('import_with_redis', 1); | 60 | $client->getContainer()->get('craue_config')->set('import_with_redis', 1); |
diff --git a/tests/Wallabag/ImportBundle/Controller/FirefoxControllerTest.php b/tests/Wallabag/ImportBundle/Controller/FirefoxControllerTest.php index 98f13d72..6154ae8d 100644 --- a/tests/Wallabag/ImportBundle/Controller/FirefoxControllerTest.php +++ b/tests/Wallabag/ImportBundle/Controller/FirefoxControllerTest.php | |||
@@ -54,6 +54,7 @@ class FirefoxControllerTest extends WallabagCoreTestCase | |||
54 | 54 | ||
55 | public function testImportFirefoxWithRedisEnabled() | 55 | public function testImportFirefoxWithRedisEnabled() |
56 | { | 56 | { |
57 | $this->checkRedis(); | ||
57 | $this->logInAs('admin'); | 58 | $this->logInAs('admin'); |
58 | $client = $this->getClient(); | 59 | $client = $this->getClient(); |
59 | $client->getContainer()->get('craue_config')->set('import_with_redis', 1); | 60 | $client->getContainer()->get('craue_config')->set('import_with_redis', 1); |