X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FImportBundle%2FTests%2FImport%2FWallabagV1ImportTest.php;h=496cf2d37dc23d44235297686eaf7cce8e70ab5c;hb=5d6f6f56a2a0f72a67c2d3f96eb61986cf821a1e;hp=8a8eb3fa8005fb50a4c3ebdfa697340d7f7307bb;hpb=7019c7cf6c6af39c0f458769e20c3f9306477943;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/ImportBundle/Tests/Import/WallabagV1ImportTest.php b/src/Wallabag/ImportBundle/Tests/Import/WallabagV1ImportTest.php index 8a8eb3fa..496cf2d3 100644 --- a/src/Wallabag/ImportBundle/Tests/Import/WallabagV1ImportTest.php +++ b/src/Wallabag/ImportBundle/Tests/Import/WallabagV1ImportTest.php @@ -12,6 +12,7 @@ class WallabagV1ImportTest extends \PHPUnit_Framework_TestCase protected $user; protected $em; protected $logHandler; + protected $contentProxy; private function getWallabagV1Import($unsetUser = false) { @@ -21,26 +22,30 @@ class WallabagV1ImportTest extends \PHPUnit_Framework_TestCase ->disableOriginalConstructor() ->getMock(); - $pocket = new WallabagV1Import($this->em); + $this->contentProxy = $this->getMockBuilder('Wallabag\CoreBundle\Helper\ContentProxy') + ->disableOriginalConstructor() + ->getMock(); + + $wallabag = new WallabagV1Import($this->em, $this->contentProxy); $this->logHandler = new TestHandler(); $logger = new Logger('test', array($this->logHandler)); - $pocket->setLogger($logger); + $wallabag->setLogger($logger); if (false === $unsetUser) { - $pocket->setUser($this->user); + $wallabag->setUser($this->user); } - return $pocket; + return $wallabag; } public function testInit() { $wallabagV1Import = $this->getWallabagV1Import(); - $this->assertEquals('Wallabag v1', $wallabagV1Import->getName()); + $this->assertEquals('wallabag v1', $wallabagV1Import->getName()); $this->assertNotEmpty($wallabagV1Import->getUrl()); - $this->assertContains('This importer will import all your wallabag v1 articles.', $wallabagV1Import->getDescription()); + $this->assertEquals('import.wallabag_v1.description', $wallabagV1Import->getDescription()); } public function testImport() @@ -52,19 +57,61 @@ class WallabagV1ImportTest extends \PHPUnit_Framework_TestCase ->disableOriginalConstructor() ->getMock(); - $entryRepo->expects($this->exactly(3)) - ->method('existByUrlAndUserId') - ->will($this->onConsecutiveCalls(false, true, false)); + $entryRepo->expects($this->exactly(4)) + ->method('findByUrlAndUserId') + ->will($this->onConsecutiveCalls(false, true, false, false)); $this->em ->expects($this->any()) ->method('getRepository') ->willReturn($entryRepo); + $entry = $this->getMockBuilder('Wallabag\CoreBundle\Entity\Entry') + ->disableOriginalConstructor() + ->getMock(); + + $this->contentProxy + ->expects($this->once()) + ->method('updateEntry') + ->willReturn($entry); + $res = $wallabagV1Import->import(); $this->assertTrue($res); - $this->assertEquals(['skipped' => 1, 'imported' => 2], $wallabagV1Import->getSummary()); + $this->assertEquals(['skipped' => 1, 'imported' => 3], $wallabagV1Import->getSummary()); + } + + public function testImportAndMarkAllAsRead() + { + $wallabagV1Import = $this->getWallabagV1Import(); + $wallabagV1Import->setFilepath(__DIR__.'/../fixtures/wallabag-v1-read.json'); + + $entryRepo = $this->getMockBuilder('Wallabag\CoreBundle\Repository\EntryRepository') + ->disableOriginalConstructor() + ->getMock(); + + $entryRepo->expects($this->exactly(3)) + ->method('findByUrlAndUserId') + ->will($this->onConsecutiveCalls(false, false, false)); + + $this->em + ->expects($this->any()) + ->method('getRepository') + ->willReturn($entryRepo); + + // check that every entry persisted are archived + $this->em + ->expects($this->any()) + ->method('persist') + ->with($this->callback(function ($persistedEntry) { + return $persistedEntry->isArchived(); + })); + + $res = $wallabagV1Import->setMarkAsRead(true)->import(); + + $this->assertTrue($res); + + $this->assertEquals(['skipped' => 0, 'imported' => 3], $wallabagV1Import->getSummary()); } public function testImportBadFile() @@ -77,7 +124,7 @@ class WallabagV1ImportTest extends \PHPUnit_Framework_TestCase $this->assertFalse($res); $records = $this->logHandler->getRecords(); - $this->assertContains('WallabagV1Import: unable to read file', $records[0]['message']); + $this->assertContains('WallabagImport: unable to read file', $records[0]['message']); $this->assertEquals('ERROR', $records[0]['level_name']); } @@ -91,7 +138,7 @@ class WallabagV1ImportTest extends \PHPUnit_Framework_TestCase $this->assertFalse($res); $records = $this->logHandler->getRecords(); - $this->assertContains('WallabagV1Import: user is not defined', $records[0]['message']); + $this->assertContains('WallabagImport: user is not defined', $records[0]['message']); $this->assertEquals('ERROR', $records[0]['level_name']); } }