From c32ae320fec4135f5b32d57ef88349317a3b1f3f Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Sat, 13 Feb 2016 16:20:00 +0100 Subject: cs & tests for wllbg v1 import --- .../Tests/Controller/WallabagV1ControllerTest.php | 45 ++++++++++++++++++++++ .../Tests/Import/WallabagV2ImportTest.php | 30 +++++++++++++++ .../Tests/fixtures/wallabag-v1-read.json | 22 +++++++++++ .../Tests/fixtures/wallabag-v2-read.json | 25 ++++++++++++ 4 files changed, 122 insertions(+) create mode 100644 src/Wallabag/ImportBundle/Tests/fixtures/wallabag-v1-read.json create mode 100644 src/Wallabag/ImportBundle/Tests/fixtures/wallabag-v2-read.json (limited to 'src/Wallabag/ImportBundle/Tests') diff --git a/src/Wallabag/ImportBundle/Tests/Controller/WallabagV1ControllerTest.php b/src/Wallabag/ImportBundle/Tests/Controller/WallabagV1ControllerTest.php index 819bb0e6..c10d0d18 100644 --- a/src/Wallabag/ImportBundle/Tests/Controller/WallabagV1ControllerTest.php +++ b/src/Wallabag/ImportBundle/Tests/Controller/WallabagV1ControllerTest.php @@ -58,6 +58,51 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase $this->assertContains('Import summary', $alert[0]); } + public function testImportWallabagWithFileAndMarkAllAsRead() + { + $this->logInAs('admin'); + $client = $this->getClient(); + + $crawler = $client->request('GET', '/import/wallabag-v1'); + $form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form(); + + $file = new UploadedFile(__DIR__.'/../fixtures/wallabag-v1-read.json', 'wallabag-v1-read.json'); + + $data = array( + 'upload_import_file[file]' => $file, + 'upload_import_file[mark_as_read]' => 1, + ); + + $client->submit($form, $data); + + $this->assertEquals(302, $client->getResponse()->getStatusCode()); + + $crawler = $client->followRedirect(); + + $content1 = $client->getContainer() + ->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->findByUrlAndUserId( + 'http://gilbert.pellegrom.me/recreating-the-square-slider', + $this->getLoggedInUserId() + ); + + $this->assertTrue($content1->isArchived()); + + $content2 = $client->getContainer() + ->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->findByUrlAndUserId( + 'https://www.wallabag.org/features/', + $this->getLoggedInUserId() + ); + + $this->assertTrue($content2->isArchived()); + + $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text'))); + $this->assertContains('Import summary', $alert[0]); + } + public function testImportWallabagWithEmptyFile() { $this->logInAs('admin'); diff --git a/src/Wallabag/ImportBundle/Tests/Import/WallabagV2ImportTest.php b/src/Wallabag/ImportBundle/Tests/Import/WallabagV2ImportTest.php index 3268cd3e..8728364b 100644 --- a/src/Wallabag/ImportBundle/Tests/Import/WallabagV2ImportTest.php +++ b/src/Wallabag/ImportBundle/Tests/Import/WallabagV2ImportTest.php @@ -72,6 +72,36 @@ class WallabagV2ImportTest extends \PHPUnit_Framework_TestCase $this->assertEquals(['skipped' => 1, 'imported' => 2], $wallabagV2Import->getSummary()); } + public function testImportAndMarkAllAsRead() + { + $wallabagV2Import = $this->getWallabagV2Import(); + $wallabagV2Import->setFilepath(__DIR__.'/../fixtures/wallabag-v2-read.json'); + + $entryRepo = $this->getMockBuilder('Wallabag\CoreBundle\Repository\EntryRepository') + ->disableOriginalConstructor() + ->getMock(); + + $entryRepo->expects($this->exactly(2)) + ->method('findByUrlAndUserId') + ->will($this->onConsecutiveCalls(false, false)); + + $this->em + ->expects($this->any()) + ->method('getRepository') + ->willReturn($entryRepo); + + $res = $wallabagV2Import->setMarkAsRead(true)->import(); + + $this->assertTrue($res); + + $this->em + ->expects($this->any()) + ->method('getBuilderForArchiveByUser') + ->willReturn($entryRepo); + + $this->assertEquals(['skipped' => 0, 'imported' => 2], $wallabagV2Import->getSummary()); + } + public function testImportBadFile() { $wallabagV1Import = $this->getWallabagV2Import(); diff --git a/src/Wallabag/ImportBundle/Tests/fixtures/wallabag-v1-read.json b/src/Wallabag/ImportBundle/Tests/fixtures/wallabag-v1-read.json new file mode 100644 index 00000000..73c6bebb --- /dev/null +++ b/src/Wallabag/ImportBundle/Tests/fixtures/wallabag-v1-read.json @@ -0,0 +1,22 @@ +[ + { + "id":"3","0":"3", + "title":"Features - wallabag","1":"Features - wallabag", + "url":"https:\/\/www.wallabag.org\/features\/","2":"https:\/\/www.wallabag.org\/features\/", + "is_read":"1","3":"1", + "is_fav":"1","4":"1", + "content":"\n\t\t

Here are some features. If one is missing, you can open a new issue<\/a>.<\/p>\n