mirror of
https://github.com/wallabag/wallabag.git
synced 2024-11-05 16:39:49 +00:00
cs & tests for wllbg v1 import
This commit is contained in:
parent
c10fcb3bbb
commit
c32ae320fe
7 changed files with 122 additions and 5 deletions
|
@ -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'),
|
||||
|
|
|
@ -124,7 +124,6 @@ class PocketImport implements ImportInterface
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set whether articles must be all marked as read.
|
||||
*
|
||||
|
|
|
@ -128,7 +128,6 @@ class WallabagV1Import implements ImportInterface
|
|||
*/
|
||||
public function setMarkAsRead($markAsRead)
|
||||
{
|
||||
var_dump($markAsRead);
|
||||
$this->markAsRead = $markAsRead;
|
||||
|
||||
return $this;
|
||||
|
|
|
@ -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');
|
||||
|
|
|
@ -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();
|
||||
|
|
22
src/Wallabag/ImportBundle/Tests/fixtures/wallabag-v1-read.json
vendored
Normal file
22
src/Wallabag/ImportBundle/Tests/fixtures/wallabag-v1-read.json
vendored
Normal file
File diff suppressed because one or more lines are too long
25
src/Wallabag/ImportBundle/Tests/fixtures/wallabag-v2-read.json
vendored
Normal file
25
src/Wallabag/ImportBundle/Tests/fixtures/wallabag-v2-read.json
vendored
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue