X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FApiBundle%2FTests%2FController%2FWallabagRestControllerTest.php;h=04875f29bd3517a0c0dd9491fcd4a94f38395fab;hb=2baca964f38e658f60c8b9f81a9db289ba85bd0d;hp=cce39d0b3fa7ae3161d28526db6fce9f529f4526;hpb=09d8bb6fa26b881da478df4c7b97620cb7aea0d0;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/ApiBundle/Tests/Controller/WallabagRestControllerTest.php b/src/Wallabag/ApiBundle/Tests/Controller/WallabagRestControllerTest.php index cce39d0b..04875f29 100644 --- a/src/Wallabag/ApiBundle/Tests/Controller/WallabagRestControllerTest.php +++ b/src/Wallabag/ApiBundle/Tests/Controller/WallabagRestControllerTest.php @@ -27,6 +27,9 @@ class WallabagRestControllerTest extends WallabagApiTestCase $this->assertEquals($entry->getTitle(), $content['title']); $this->assertEquals($entry->getUrl(), $content['url']); $this->assertCount(count($entry->getTags()), $content['tags']); + $this->assertEquals($entry->getUserName(), $content['user_name']); + $this->assertEquals($entry->getUserEmail(), $content['user_email']); + $this->assertEquals($entry->getUserId(), $content['user_id']); $this->assertTrue( $this->client->getResponse()->headers->contains( @@ -159,15 +162,35 @@ class WallabagRestControllerTest extends WallabagApiTestCase $this->assertEquals('http://www.lemonde.fr/pixels/article/2015/03/28/plongee-dans-l-univers-d-ingress-le-jeu-de-google-aux-frontieres-du-reel_4601155_4408996.html', $content['url']); $this->assertEquals(false, $content['is_archived']); $this->assertEquals(false, $content['is_starred']); + $this->assertEquals(1, $content['user_id']); $this->assertCount(1, $content['tags']); } + public function testPostSameEntry() + { + $this->client->request('POST', '/api/entries.json', array( + 'url' => 'http://www.lemonde.fr/pixels/article/2015/03/28/plongee-dans-l-univers-d-ingress-le-jeu-de-google-aux-frontieres-du-reel_4601155_4408996.html', + 'archive' => '1', + 'tags' => 'google, apple', + )); + + $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); + + $content = json_decode($this->client->getResponse()->getContent(), true); + + $this->assertGreaterThan(0, $content['id']); + $this->assertEquals('http://www.lemonde.fr/pixels/article/2015/03/28/plongee-dans-l-univers-d-ingress-le-jeu-de-google-aux-frontieres-du-reel_4601155_4408996.html', $content['url']); + $this->assertEquals(true, $content['is_archived']); + $this->assertEquals(false, $content['is_starred']); + $this->assertCount(2, $content['tags']); + } + public function testPostArchivedAndStarredEntry() { $this->client->request('POST', '/api/entries.json', array( 'url' => 'http://www.lemonde.fr/idees/article/2016/02/08/preserver-la-liberte-d-expression-sur-les-reseaux-sociaux_4861503_3232.html', - 'archive' => true, - 'starred' => true, + 'archive' => '1', + 'starred' => '1', )); $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); @@ -178,6 +201,25 @@ class WallabagRestControllerTest extends WallabagApiTestCase $this->assertEquals('http://www.lemonde.fr/idees/article/2016/02/08/preserver-la-liberte-d-expression-sur-les-reseaux-sociaux_4861503_3232.html', $content['url']); $this->assertEquals(true, $content['is_archived']); $this->assertEquals(true, $content['is_starred']); + $this->assertEquals(1, $content['user_id']); + } + + public function testPostArchivedAndStarredEntryWithoutQuotes() + { + $this->client->request('POST', '/api/entries.json', array( + 'url' => 'http://www.lemonde.fr/idees/article/2016/02/08/preserver-la-liberte-d-expression-sur-les-reseaux-sociaux_4861503_3232.html', + 'archive' => 0, + 'starred' => 1, + )); + + $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); + + $content = json_decode($this->client->getResponse()->getContent(), true); + + $this->assertGreaterThan(0, $content['id']); + $this->assertEquals('http://www.lemonde.fr/idees/article/2016/02/08/preserver-la-liberte-d-expression-sur-les-reseaux-sociaux_4861503_3232.html', $content['url']); + $this->assertEquals(false, $content['is_archived']); + $this->assertEquals(true, $content['is_starred']); } public function testPatchEntry() @@ -197,8 +239,40 @@ class WallabagRestControllerTest extends WallabagApiTestCase $this->client->request('PATCH', '/api/entries/'.$entry->getId().'.json', array( 'title' => 'New awesome title', 'tags' => 'new tag '.uniqid(), - 'star' => true, - 'archive' => false, + 'starred' => '1', + 'archive' => '0', + )); + + $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); + + $content = json_decode($this->client->getResponse()->getContent(), true); + + $this->assertEquals($entry->getId(), $content['id']); + $this->assertEquals($entry->getUrl(), $content['url']); + $this->assertEquals('New awesome title', $content['title']); + $this->assertGreaterThan($nbTags, count($content['tags'])); + $this->assertEquals(1, $content['user_id']); + } + + public function testPatchEntryWithoutQuotes() + { + $entry = $this->client->getContainer() + ->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->findOneByUser(1); + + if (!$entry) { + $this->markTestSkipped('No content found in db.'); + } + + // hydrate the tags relations + $nbTags = count($entry->getTags()); + + $this->client->request('PATCH', '/api/entries/'.$entry->getId().'.json', array( + 'title' => 'New awesome title', + 'tags' => 'new tag '.uniqid(), + 'starred' => 1, + 'archive' => 0, )); $this->assertEquals(200, $this->client->getResponse()->getStatusCode());