]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Fixed migration and added tests
authorNicolas Lœuillet <nicolas@loeuillet.org>
Fri, 28 Oct 2016 08:55:39 +0000 (10:55 +0200)
committerNicolas Lœuillet <nicolas@loeuillet.org>
Fri, 28 Oct 2016 08:55:39 +0000 (10:55 +0200)
app/DoctrineMigrations/Version20161024212538.php
tests/Wallabag/AnnotationBundle/Controller/AnnotationControllerTest.php
tests/Wallabag/ApiBundle/Controller/DeveloperControllerTest.php

index 75973b3397b35bd34e2eab51b897fd5520f8f1f4..b9dc500c45b902a2065ad3e54cacc64b6ae624c7 100644 (file)
@@ -34,6 +34,7 @@ class Version20161024212538 extends AbstractMigration implements ContainerAwareI
     {
         $this->skipIf($this->connection->getDatabasePlatform()->getName() == 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
 
+        $this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD `user_id` INT(11) DEFAULT NULL');
         $this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD CONSTRAINT FK_clients_user_clients FOREIGN KEY (user_id) REFERENCES '.$this->getTable('user').' (id) ON DELETE CASCADE');
     }
 
index cee0b8473dae5c6a766b33ed3e0bd8127493bfc6..81f9e9ec5cfc313e53a71551631750caf503ca06 100644 (file)
@@ -11,7 +11,7 @@ class AnnotationControllerTest extends WallabagAnnotationTestCase
     /**
      * This data provider allow to tests annotation from the :
      *     - API POV (when user use the api to manage annotations)
-     *     - and User POV (when user use the web interface - using javascript - to manage annotations)
+     *     - and User POV (when user use the web interface - using javascript - to manage annotations).
      */
     public function dataForEachAnnotations()
     {
index 95befa9cab2f4fe2502b7776a784c8d022d62905..6659443ba44ea461f3be2280a9a3341e9ab7904a 100644 (file)
@@ -82,11 +82,24 @@ class DeveloperControllerTest extends WallabagCoreTestCase
 
     public function testRemoveClient()
     {
-        $this->logInAs('admin');
         $client = $this->getClient();
         $em = $client->getContainer()->get('doctrine.orm.entity_manager');
-        $nbClients = $em->getRepository('WallabagApiBundle:Client')->findAll();
 
+        // Try to remove an admin's client with a wrong user
+        $this->logInAs('bob');
+        $client->request('GET', '/developer');
+        $this->assertContains('no_client', $client->getResponse()->getContent());
+
+        // get an ID of a admin's client
+        $this->logInAs('admin');
+        $nbClients = $em->getRepository('WallabagApiBundle:Client')->findByUser($this->getLoggedInUserId());
+
+        $this->logInAs('bob');
+        $client->request('GET', '/developer/client/delete/'.$nbClients[0]->getId());
+        $this->assertEquals(403, $client->getResponse()->getStatusCode());
+
+        // Try to remove the admin's client with the good user
+        $this->logInAs('admin');
         $crawler = $client->request('GET', '/developer');
 
         $link = $crawler
@@ -98,7 +111,7 @@ class DeveloperControllerTest extends WallabagCoreTestCase
         $client->click($link);
         $this->assertEquals(302, $client->getResponse()->getStatusCode());
 
-        $newNbClients = $em->getRepository('WallabagApiBundle:Client')->findAll();
+        $newNbClients = $em->getRepository('WallabagApiBundle:Client')->findByUser($this->getLoggedInUserId());
         $this->assertGreaterThan(count($newNbClients), count($nbClients));
     }
 }