X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FAnnotationBundle%2FTests%2FController%2FAnnotationControllerTest.php;h=3eba719384a7c690aca3405c301ded906deee214;hb=4094ea47712efbe58624ff74daeb1f77c9b0edcf;hp=c0efe272cda7666fff9a647e5ec2f9ff9ee45305;hpb=4dc872238a61f33c886c423c5812cc578b3b1cdc;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/AnnotationBundle/Tests/Controller/AnnotationControllerTest.php b/src/Wallabag/AnnotationBundle/Tests/Controller/AnnotationControllerTest.php index c0efe272..3eba7193 100644 --- a/src/Wallabag/AnnotationBundle/Tests/Controller/AnnotationControllerTest.php +++ b/src/Wallabag/AnnotationBundle/Tests/Controller/AnnotationControllerTest.php @@ -11,11 +11,12 @@ class AnnotationControllerTest extends WallabagAnnotationTestCase $annotation = $this->client->getContainer() ->get('doctrine.orm.entity_manager') ->getRepository('WallabagAnnotationBundle:Annotation') - ->findOneBy(array('user' => 1)); + ->findOneByUsername('admin'); if (!$annotation) { $this->markTestSkipped('No content found in db.'); } + $this->logInAs('admin'); $crawler = $this->client->request('GET', 'annotations/'.$annotation->getEntry()->getId().'.json'); $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); @@ -32,18 +33,25 @@ class AnnotationControllerTest extends WallabagAnnotationTestCase $entry = $this->client->getContainer() ->get('doctrine.orm.entity_manager') ->getRepository('WallabagCoreBundle:Entry') - ->findOneBy(array('user' => 1)); + ->findOneByUsernameAndNotArchived('admin'); - $headers = array('CONTENT_TYPE' => 'application/json'); - $content = json_encode(array( + $headers = ['CONTENT_TYPE' => 'application/json']; + $content = json_encode([ 'text' => 'my annotation', 'quote' => 'my quote', - 'range' => '[{"start":"","startOffset":24,"end":"","endOffset":31}]', - )); - $crawler = $this->client->request('POST', 'annotations/'.$entry->getId().'.json', array(), array(), $headers, $content); + 'ranges' => ['start' => '', 'startOffset' => 24, 'end' => '', 'endOffset' => 31], + ]); + $crawler = $this->client->request('POST', 'annotations/'.$entry->getId().'.json', [], [], $headers, $content); $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); + $content = json_decode($this->client->getResponse()->getContent(), true); + + $this->assertEquals('Big boss', $content['user']); + $this->assertEquals('v1.0', $content['annotator_schema_version']); + $this->assertEquals('my annotation', $content['text']); + $this->assertEquals('my quote', $content['quote']); + $annotation = $this->client->getContainer() ->get('doctrine.orm.entity_manager') ->getRepository('WallabagAnnotationBundle:Annotation') @@ -57,25 +65,56 @@ class AnnotationControllerTest extends WallabagAnnotationTestCase $annotation = $this->client->getContainer() ->get('doctrine.orm.entity_manager') ->getRepository('WallabagAnnotationBundle:Annotation') - ->findOneBy(array('user' => 1)); + ->findOneByUsername('admin'); $this->logInAs('admin'); - $headers = array('CONTENT_TYPE' => 'application/json'); - $content = json_encode(array( + $headers = ['CONTENT_TYPE' => 'application/json']; + $content = json_encode([ 'text' => 'a modified annotation', - )); - $crawler = $this->client->request('PUT', 'annotations/'.$annotation->getId().'.json', array(), array(), $headers, $content); + ]); + $crawler = $this->client->request('PUT', 'annotations/'.$annotation->getId().'.json', [], [], $headers, $content); $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); $content = json_decode($this->client->getResponse()->getContent(), true); + $this->assertEquals('Big boss', $content['user']); + $this->assertEquals('v1.0', $content['annotator_schema_version']); $this->assertEquals('a modified annotation', $content['text']); + $this->assertEquals('my quote', $content['quote']); $annotationUpdated = $this->client->getContainer() ->get('doctrine.orm.entity_manager') ->getRepository('WallabagAnnotationBundle:Annotation') - ->findAnnotationById($annotation->getId()); + ->findOneById($annotation->getId()); $this->assertEquals('a modified annotation', $annotationUpdated->getText()); } + + public function testDeleteAnnotation() + { + $annotation = $this->client->getContainer() + ->get('doctrine.orm.entity_manager') + ->getRepository('WallabagAnnotationBundle:Annotation') + ->findOneByUsername('admin'); + + $this->logInAs('admin'); + + $headers = ['CONTENT_TYPE' => 'application/json']; + $content = json_encode([ + 'text' => 'a modified annotation', + ]); + $crawler = $this->client->request('DELETE', 'annotations/'.$annotation->getId().'.json', [], [], $headers, $content); + $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); + + $content = json_decode($this->client->getResponse()->getContent(), true); + + $this->assertEquals('a modified annotation', $content['text']); + + $annotationDeleted = $this->client->getContainer() + ->get('doctrine.orm.entity_manager') + ->getRepository('WallabagAnnotationBundle:Annotation') + ->findOneById($annotation->getId()); + + $this->assertNull($annotationDeleted); + } }