namespace Wallabag\ApiBundle\Tests\Controller;
-use Wallabag\ApiBundle\Tests\AbstractControllerTest;
+use Wallabag\ApiBundle\Tests\WallabagApiTestCase;
-class WallabagRestControllerTest extends AbstractControllerTest
+class WallabagRestControllerTest extends WallabagApiTestCase
{
protected static $salt;
$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(
$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',
+ ));
+
+ $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(1, $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',
+ ));
+
+ $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(true, $content['is_archived']);
+ $this->assertEquals(true, $content['is_starred']);
+ $this->assertEquals(1, $content['user_id']);
+ }
+
public function testPatchEntry()
{
$entry = $this->client->getContainer()
$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 testGetTagsEntry()
$tags = array();
foreach ($entry->getTags() as $tag) {
- $tags[] = array('id' => $tag->getId(), 'label' => $tag->getLabel());
+ $tags[] = array('id' => $tag->getId(), 'label' => $tag->getLabel(), 'slug' => $tag->getSlug());
}
$this->client->request('GET', '/api/entries/'.$entry->getId().'/tags');
$this->assertArrayHasKey('label', $content);
$this->assertEquals($tag['label'], $content['label']);
+ $this->assertEquals($tag['slug'], $content['slug']);
+
+ $entries = $entry = $this->client->getContainer()
+ ->get('doctrine.orm.entity_manager')
+ ->getRepository('WallabagCoreBundle:Entry')
+ ->findAllByTagId($this->user->getId(), $tag['id']);
+
+ $this->assertCount(0, $entries);
+ }
+
+ public function testGetVersion()
+ {
+ $this->client->request('GET', '/api/version');
+
+ $this->assertEquals(200, $this->client->getResponse()->getStatusCode());
+
+ $content = json_decode($this->client->getResponse()->getContent(), true);
+
+ $this->assertEquals($this->client->getContainer()->getParameter('wallabag_core.version'), $content);
}
}