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 --- .../ImportBundle/Controller/PocketController.php | 3 -- src/Wallabag/ImportBundle/Import/PocketImport.php | 1 - .../ImportBundle/Import/WallabagV1Import.php | 1 - .../Tests/Controller/WallabagV1ControllerTest.php | 45 ++++++++++++++++++++++ .../Tests/Import/WallabagV2ImportTest.php | 30 +++++++++++++++ .../Tests/fixtures/wallabag-v1-read.json | 22 +++++++++++ .../Tests/fixtures/wallabag-v2-read.json | 25 ++++++++++++ 7 files changed, 122 insertions(+), 5 deletions(-) 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') diff --git a/src/Wallabag/ImportBundle/Controller/PocketController.php b/src/Wallabag/ImportBundle/Controller/PocketController.php index bfd9fc5b..ef0407e6 100644 --- a/src/Wallabag/ImportBundle/Controller/PocketController.php +++ b/src/Wallabag/ImportBundle/Controller/PocketController.php @@ -5,11 +5,9 @@ namespace Wallabag\ImportBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; -use Wallabag\ImportBundle\Import\PocketImport; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Form\Extension\Core\Type\CheckboxType; - class PocketController extends Controller { /** @@ -24,7 +22,6 @@ class PocketController extends Controller 'required' => false, )) ->getForm(); - ; return $this->render('WallabagImportBundle:Pocket:index.html.twig', [ 'import' => $this->get('wallabag_import.pocket.import'), diff --git a/src/Wallabag/ImportBundle/Import/PocketImport.php b/src/Wallabag/ImportBundle/Import/PocketImport.php index 1cc03d5b..1ec82a41 100644 --- a/src/Wallabag/ImportBundle/Import/PocketImport.php +++ b/src/Wallabag/ImportBundle/Import/PocketImport.php @@ -124,7 +124,6 @@ class PocketImport implements ImportInterface return true; } - /** * Set whether articles must be all marked as read. * diff --git a/src/Wallabag/ImportBundle/Import/WallabagV1Import.php b/src/Wallabag/ImportBundle/Import/WallabagV1Import.php index 9ea698f9..1d773d3b 100644 --- a/src/Wallabag/ImportBundle/Import/WallabagV1Import.php +++ b/src/Wallabag/ImportBundle/Import/WallabagV1Import.php @@ -128,7 +128,6 @@ class WallabagV1Import implements ImportInterface */ public function setMarkAsRead($markAsRead) { - var_dump($markAsRead); $this->markAsRead = $markAsRead; return $this; 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