]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Merge pull request #3053 from wallabag/api-bulk-add
authorNicolas LÅ“uillet <nicolas@loeuillet.org>
Fri, 5 May 2017 11:56:34 +0000 (13:56 +0200)
committerGitHub <noreply@github.com>
Fri, 5 May 2017 11:56:34 +0000 (13:56 +0200)
Added API endpoint to handle a list of URL

1  2 
tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php

index e6ffd6641a319f6575f2ce41fbbd6729e09ecc1f,34a2f8940b09a6bae05f39274f44c10eec02f876..f0173cefce92dfdafa9c523192a7ead9be8fb242
@@@ -337,7 -337,7 +337,7 @@@ class EntryRestControllerTest extends W
          $this->assertEquals(false, $content['is_starred']);
          $this->assertEquals('New title for my article', $content['title']);
          $this->assertEquals(1, $content['user_id']);
 -        $this->assertCount(1, $content['tags']);
 +        $this->assertCount(2, $content['tags']);
      }
  
      public function testPostSameEntry()
          $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']);
 +        $this->assertCount(3, $content['tags']);
      }
  
      public function testPostArchivedAndStarredEntry()
              ],
          ];
  
-         $this->client->request('DELETE', '/api/entries/tags/list?list='.json_encode($list));
+         $this->client->request('DELETE', '/api/entries/tags/list?list=' . json_encode($list));
+     }
+     public function testPostEntriesListAction()
+     {
+         $list = [
+             'http://www.lemonde.fr/musiques/article/2017/04/23/loin-de-la-politique-le-printemps-de-bourges-retombe-en-enfance_5115862_1654986.html',
+             'http://0.0.0.0/entry2',
+         ];
+         $this->client->request('POST', '/api/entries/lists?urls='.json_encode($list));
  
          $this->assertEquals(200, $this->client->getResponse()->getStatusCode());
  
          $content = json_decode($this->client->getResponse()->getContent(), true);
  
          $this->assertInternalType('int', $content[0]['entry']);
-         $this->assertEquals('http://0.0.0.0/entry4', $content[0]['url']);
+         $this->assertEquals('http://www.lemonde.fr/musiques/article/2017/04/23/loin-de-la-politique-le-printemps-de-bourges-retombe-en-enfance_5115862_1654986.html', $content[0]['url']);
  
-         $entry = $this->client->getContainer()->get('doctrine.orm.entity_manager')
-             ->getRepository('WallabagCoreBundle:Entry')
-             ->findByUrlAndUserId('http://0.0.0.0/entry4', 1);
+         $this->assertInternalType('int', $content[1]['entry']);
+         $this->assertEquals('http://0.0.0.0/entry2', $content[1]['url']);
+     }
  
-         $tags = $entry->getTags();
-         $this->assertCount(2, $tags);
+     public function testDeleteEntriesListAction()
+     {
+         $list = [
+             'http://www.lemonde.fr/musiques/article/2017/04/23/loin-de-la-politique-le-printemps-de-bourges-retombe-en-enfance_5115862_1654986.html',
+             'http://0.0.0.0/entry3',
+         ];
+         $this->client->request('DELETE', '/api/entries/list?urls='.json_encode($list));
+         $this->assertEquals(200, $this->client->getResponse()->getStatusCode());
+         $content = json_decode($this->client->getResponse()->getContent(), true);
+         $this->assertTrue($content[0]['entry']);
+         $this->assertEquals('http://www.lemonde.fr/musiques/article/2017/04/23/loin-de-la-politique-le-printemps-de-bourges-retombe-en-enfance_5115862_1654986.html', $content[0]['url']);
+         $this->assertFalse($content[1]['entry']);
+         $this->assertEquals('http://0.0.0.0/entry3', $content[1]['url']);
+     }
+     public function testLimitBulkAction()
+     {
+         $list = [
+             'http://0.0.0.0/entry1',
+             'http://0.0.0.0/entry1',
+             'http://0.0.0.0/entry1',
+             'http://0.0.0.0/entry1',
+             'http://0.0.0.0/entry1',
+             'http://0.0.0.0/entry1',
+             'http://0.0.0.0/entry1',
+             'http://0.0.0.0/entry1',
+             'http://0.0.0.0/entry1',
+             'http://0.0.0.0/entry1',
+             'http://0.0.0.0/entry1',
+         ];
+         $this->client->request('POST', '/api/entries/lists?urls='.json_encode($list));
+         $this->assertEquals(400, $this->client->getResponse()->getStatusCode());
+         $this->assertContains('API limit reached', $this->client->getResponse()->getContent());
      }
  }