2015-12-31 10:24:46 +00:00
|
|
|
<?php
|
|
|
|
|
2023-12-31 11:25:57 +00:00
|
|
|
namespace Tests\Wallabag\CoreBundle\Controller\Import;
|
2015-12-31 10:24:46 +00:00
|
|
|
|
2022-08-28 00:01:46 +00:00
|
|
|
use Craue\ConfigBundle\Util\Config;
|
|
|
|
use Symfony\Component\HttpFoundation\Session\SessionInterface;
|
2016-06-01 19:27:35 +00:00
|
|
|
use Tests\Wallabag\CoreBundle\WallabagCoreTestCase;
|
2023-12-31 17:21:09 +00:00
|
|
|
use Wallabag\CoreBundle\Import\PocketImport;
|
2015-12-31 10:24:46 +00:00
|
|
|
|
|
|
|
class PocketControllerTest extends WallabagCoreTestCase
|
|
|
|
{
|
|
|
|
public function testImportPocket()
|
|
|
|
{
|
|
|
|
$this->logInAs('admin');
|
2022-11-23 16:09:32 +00:00
|
|
|
$client = $this->getTestClient();
|
2015-12-31 10:24:46 +00:00
|
|
|
|
|
|
|
$crawler = $client->request('GET', '/import/pocket');
|
|
|
|
|
2017-07-01 07:52:38 +00:00
|
|
|
$this->assertSame(200, $client->getResponse()->getStatusCode());
|
2018-01-12 09:37:13 +00:00
|
|
|
$this->assertSame(1, $crawler->filter('button[name=action]')->count());
|
2015-12-31 10:24:46 +00:00
|
|
|
}
|
|
|
|
|
2016-09-09 16:02:29 +00:00
|
|
|
public function testImportPocketWithRabbitEnabled()
|
|
|
|
{
|
|
|
|
$this->logInAs('admin');
|
2022-11-23 16:09:32 +00:00
|
|
|
$client = $this->getTestClient();
|
2016-09-09 16:02:29 +00:00
|
|
|
|
2022-08-28 00:01:46 +00:00
|
|
|
$client->getContainer()->get(Config::class)->set('import_with_rabbitmq', 1);
|
2016-09-09 16:02:29 +00:00
|
|
|
|
|
|
|
$crawler = $client->request('GET', '/import/pocket');
|
|
|
|
|
2017-07-01 07:52:38 +00:00
|
|
|
$this->assertSame(200, $client->getResponse()->getStatusCode());
|
2018-01-12 09:37:13 +00:00
|
|
|
$this->assertSame(1, $crawler->filter('button[name=action]')->count());
|
2016-09-09 16:02:29 +00:00
|
|
|
|
2022-08-28 00:01:46 +00:00
|
|
|
$client->getContainer()->get(Config::class)->set('import_with_rabbitmq', 0);
|
2016-09-09 19:02:03 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public function testImportPocketWithRedisEnabled()
|
|
|
|
{
|
2016-09-24 17:57:59 +00:00
|
|
|
$this->checkRedis();
|
2016-09-09 19:02:03 +00:00
|
|
|
$this->logInAs('admin');
|
2022-11-23 16:09:32 +00:00
|
|
|
$client = $this->getTestClient();
|
2016-09-09 19:02:03 +00:00
|
|
|
|
2022-08-28 00:01:46 +00:00
|
|
|
$client->getContainer()->get(Config::class)->set('import_with_redis', 1);
|
2016-09-09 19:02:03 +00:00
|
|
|
|
|
|
|
$crawler = $client->request('GET', '/import/pocket');
|
|
|
|
|
2017-07-01 07:52:38 +00:00
|
|
|
$this->assertSame(200, $client->getResponse()->getStatusCode());
|
2018-01-12 09:37:13 +00:00
|
|
|
$this->assertSame(1, $crawler->filter('button[name=action]')->count());
|
2016-09-09 19:02:03 +00:00
|
|
|
|
2022-08-28 00:01:46 +00:00
|
|
|
$client->getContainer()->get(Config::class)->set('import_with_redis', 0);
|
2016-09-09 16:02:29 +00:00
|
|
|
}
|
|
|
|
|
2016-03-27 18:35:56 +00:00
|
|
|
public function testImportPocketAuthBadToken()
|
|
|
|
{
|
|
|
|
$this->logInAs('admin');
|
2022-11-23 16:09:32 +00:00
|
|
|
$client = $this->getTestClient();
|
2016-03-27 18:35:56 +00:00
|
|
|
|
2016-06-24 09:55:45 +00:00
|
|
|
$client->request('GET', '/import/pocket/auth');
|
2016-03-27 18:35:56 +00:00
|
|
|
|
2017-07-01 07:52:38 +00:00
|
|
|
$this->assertSame(302, $client->getResponse()->getStatusCode());
|
2016-03-27 18:35:56 +00:00
|
|
|
}
|
|
|
|
|
2015-12-31 10:24:46 +00:00
|
|
|
public function testImportPocketAuth()
|
|
|
|
{
|
|
|
|
$this->logInAs('admin');
|
2022-11-23 16:09:32 +00:00
|
|
|
$client = $this->getTestClient();
|
2015-12-31 10:24:46 +00:00
|
|
|
|
2022-09-01 18:54:56 +00:00
|
|
|
$pocketImport = $this->getMockBuilder(PocketImport::class)
|
2016-03-27 18:35:56 +00:00
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
$pocketImport
|
|
|
|
->expects($this->once())
|
|
|
|
->method('getRequestToken')
|
|
|
|
->willReturn('token');
|
|
|
|
|
2022-04-24 14:58:37 +00:00
|
|
|
static::$kernel->getContainer()->set(PocketImport::class, $pocketImport);
|
2016-03-27 18:35:56 +00:00
|
|
|
|
2016-06-24 09:55:45 +00:00
|
|
|
$client->request('GET', '/import/pocket/auth');
|
2015-12-31 10:24:46 +00:00
|
|
|
|
2017-07-01 07:52:38 +00:00
|
|
|
$this->assertSame(301, $client->getResponse()->getStatusCode());
|
2020-06-15 11:37:50 +00:00
|
|
|
$this->assertStringContainsString('getpocket.com/auth/authorize', $client->getResponse()->headers->get('location'));
|
2015-12-31 10:24:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public function testImportPocketCallbackWithBadToken()
|
|
|
|
{
|
|
|
|
$this->logInAs('admin');
|
2022-11-23 16:09:32 +00:00
|
|
|
$client = $this->getTestClient();
|
2015-12-31 10:24:46 +00:00
|
|
|
|
2022-09-01 18:54:56 +00:00
|
|
|
$pocketImport = $this->getMockBuilder(PocketImport::class)
|
2016-06-24 09:55:45 +00:00
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
$pocketImport
|
|
|
|
->expects($this->once())
|
|
|
|
->method('authorize')
|
|
|
|
->willReturn(false);
|
|
|
|
|
2022-04-24 14:58:37 +00:00
|
|
|
static::$kernel->getContainer()->set(PocketImport::class, $pocketImport);
|
2016-06-24 09:55:45 +00:00
|
|
|
|
|
|
|
$client->request('GET', '/import/pocket/callback');
|
2015-12-31 10:24:46 +00:00
|
|
|
|
2017-07-01 07:52:38 +00:00
|
|
|
$this->assertSame(302, $client->getResponse()->getStatusCode());
|
2020-06-15 11:37:50 +00:00
|
|
|
$this->assertStringContainsString('/', $client->getResponse()->headers->get('location'), 'Import is ok, redirect to homepage');
|
2022-08-28 00:01:46 +00:00
|
|
|
$this->assertSame('flashes.import.notice.failed', $client->getContainer()->get(SessionInterface::class)->getFlashBag()->peek('notice')[0]);
|
2015-12-31 10:24:46 +00:00
|
|
|
}
|
2016-06-24 09:55:45 +00:00
|
|
|
|
|
|
|
public function testImportPocketCallback()
|
|
|
|
{
|
|
|
|
$this->logInAs('admin');
|
2022-11-23 16:09:32 +00:00
|
|
|
$client = $this->getTestClient();
|
2016-06-24 09:55:45 +00:00
|
|
|
|
2022-09-01 18:54:56 +00:00
|
|
|
$pocketImport = $this->getMockBuilder(PocketImport::class)
|
2016-06-24 09:55:45 +00:00
|
|
|
->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);
|
|
|
|
|
2022-04-24 14:58:37 +00:00
|
|
|
static::$kernel->getContainer()->set(PocketImport::class, $pocketImport);
|
2016-06-24 09:55:45 +00:00
|
|
|
|
|
|
|
$client->request('GET', '/import/pocket/callback');
|
|
|
|
|
2017-07-01 07:52:38 +00:00
|
|
|
$this->assertSame(302, $client->getResponse()->getStatusCode());
|
2020-06-15 11:37:50 +00:00
|
|
|
$this->assertStringContainsString('/', $client->getResponse()->headers->get('location'), 'Import is ok, redirect to homepage');
|
2022-08-28 00:01:46 +00:00
|
|
|
$this->assertSame('flashes.import.notice.summary', $client->getContainer()->get(SessionInterface::class)->getFlashBag()->peek('notice')[0]);
|
2016-06-24 09:55:45 +00:00
|
|
|
}
|
2015-12-31 10:24:46 +00:00
|
|
|
}
|