mirror of
https://github.com/wallabag/wallabag.git
synced 2024-12-12 02:36:27 +00:00
fdc90ceb17
Instead of using a HTTP request we just login user like FOSUser does. It allows us to mock service in container for functional tests. Also, fix a bad config name in fos_user for firewall And finally, add functional test to PocketImport
108 lines
3.6 KiB
PHP
108 lines
3.6 KiB
PHP
<?php
|
|
|
|
namespace Tests\Wallabag\ImportBundle\Controller;
|
|
|
|
use Tests\Wallabag\CoreBundle\WallabagCoreTestCase;
|
|
|
|
class PocketControllerTest extends WallabagCoreTestCase
|
|
{
|
|
public function testImportPocket()
|
|
{
|
|
$this->logInAs('admin');
|
|
$client = $this->getClient();
|
|
|
|
$crawler = $client->request('GET', '/import/pocket');
|
|
|
|
$this->assertEquals(200, $client->getResponse()->getStatusCode());
|
|
$this->assertEquals(1, $crawler->filter('button[type=submit]')->count());
|
|
}
|
|
|
|
public function testImportPocketAuthBadToken()
|
|
{
|
|
$this->logInAs('admin');
|
|
$client = $this->getClient();
|
|
|
|
$client->request('GET', '/import/pocket/auth');
|
|
|
|
$this->assertEquals(302, $client->getResponse()->getStatusCode());
|
|
}
|
|
|
|
public function testImportPocketAuth()
|
|
{
|
|
$this->logInAs('admin');
|
|
$client = $this->getClient();
|
|
|
|
$pocketImport = $this->getMockBuilder('Wallabag\ImportBundle\Import\PocketImport')
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
$pocketImport
|
|
->expects($this->once())
|
|
->method('getRequestToken')
|
|
->willReturn('token');
|
|
|
|
static::$kernel->getContainer()->set('wallabag_import.pocket.import', $pocketImport);
|
|
|
|
$client->request('GET', '/import/pocket/auth');
|
|
|
|
$this->assertEquals(301, $client->getResponse()->getStatusCode());
|
|
$this->assertContains('getpocket.com/auth/authorize', $client->getResponse()->headers->get('location'));
|
|
}
|
|
|
|
public function testImportPocketCallbackWithBadToken()
|
|
{
|
|
$this->logInAs('admin');
|
|
$client = $this->getClient();
|
|
|
|
$pocketImport = $this->getMockBuilder('Wallabag\ImportBundle\Import\PocketImport')
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
$pocketImport
|
|
->expects($this->once())
|
|
->method('authorize')
|
|
->willReturn(false);
|
|
|
|
static::$kernel->getContainer()->set('wallabag_import.pocket.import', $pocketImport);
|
|
|
|
$client->request('GET', '/import/pocket/callback');
|
|
|
|
$this->assertEquals(302, $client->getResponse()->getStatusCode());
|
|
$this->assertContains('/', $client->getResponse()->headers->get('location'), 'Import is ok, redirect to homepage');
|
|
$this->assertEquals('flashes.import.notice.failed', $client->getContainer()->get('session')->getFlashBag()->peek('notice')[0]);
|
|
}
|
|
|
|
public function testImportPocketCallback()
|
|
{
|
|
$this->logInAs('admin');
|
|
$client = $this->getClient();
|
|
|
|
$pocketImport = $this->getMockBuilder('Wallabag\ImportBundle\Import\PocketImport')
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
$pocketImport
|
|
->expects($this->once())
|
|
->method('authorize')
|
|
->willReturn(true);
|
|
|
|
$pocketImport
|
|
->expects($this->once())
|
|
->method('setMarkAsRead')
|
|
->with(false)
|
|
->willReturn($pocketImport);
|
|
|
|
$pocketImport
|
|
->expects($this->once())
|
|
->method('import')
|
|
->willReturn(true);
|
|
|
|
static::$kernel->getContainer()->set('wallabag_import.pocket.import', $pocketImport);
|
|
|
|
$client->request('GET', '/import/pocket/callback');
|
|
|
|
$this->assertEquals(302, $client->getResponse()->getStatusCode());
|
|
$this->assertContains('/', $client->getResponse()->headers->get('location'), 'Import is ok, redirect to homepage');
|
|
$this->assertEquals('flashes.import.notice.summary', $client->getContainer()->get('session')->getFlashBag()->peek('notice')[0]);
|
|
}
|
|
}
|