wallabag/tests/Controller/Import/PocketControllerTest.php

143 lines
4.7 KiB
PHP
Raw Normal View History

<?php
2024-02-19 00:30:12 +00:00
namespace Tests\Wallabag\Controller\Import;
2022-08-28 00:01:46 +00:00
use Craue\ConfigBundle\Util\Config;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Tests\Wallabag\WallabagTestCase;
2024-02-19 00:30:12 +00:00
use Wallabag\Import\PocketImport;
class PocketControllerTest extends WallabagTestCase
{
public function testImportPocket()
{
$this->logInAs('admin');
$client = $this->getTestClient();
$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());
}
public function testImportPocketWithRabbitEnabled()
{
$this->logInAs('admin');
$client = $this->getTestClient();
2022-08-28 00:01:46 +00:00
$client->getContainer()->get(Config::class)->set('import_with_rabbitmq', 1);
$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());
2022-08-28 00:01:46 +00:00
$client->getContainer()->get(Config::class)->set('import_with_rabbitmq', 0);
}
public function testImportPocketWithRedisEnabled()
{
$this->checkRedis();
$this->logInAs('admin');
$client = $this->getTestClient();
2022-08-28 00:01:46 +00:00
$client->getContainer()->get(Config::class)->set('import_with_redis', 1);
$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());
2022-08-28 00:01:46 +00:00
$client->getContainer()->get(Config::class)->set('import_with_redis', 0);
}
2016-03-27 18:35:56 +00:00
public function testImportPocketAuthBadToken()
{
$this->logInAs('admin');
$client = $this->getTestClient();
2016-03-27 18:35:56 +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
}
public function testImportPocketAuth()
{
$this->logInAs('admin');
$client = $this->getTestClient();
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');
static::$kernel->getContainer()->set(PocketImport::class, $pocketImport);
2016-03-27 18:35:56 +00:00
$client->request('GET', '/import/pocket/auth');
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'));
}
public function testImportPocketCallbackWithBadToken()
{
$this->logInAs('admin');
$client = $this->getTestClient();
2022-09-01 18:54:56 +00:00
$pocketImport = $this->getMockBuilder(PocketImport::class)
->disableOriginalConstructor()
->getMock();
$pocketImport
->expects($this->once())
->method('authorize')
->willReturn(false);
static::$kernel->getContainer()->set(PocketImport::class, $pocketImport);
$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.failed', $client->getContainer()->get(SessionInterface::class)->getFlashBag()->peek('notice')[0]);
}
public function testImportPocketCallback()
{
$this->logInAs('admin');
$client = $this->getTestClient();
2022-09-01 18:54:56 +00:00
$pocketImport = $this->getMockBuilder(PocketImport::class)
->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(PocketImport::class, $pocketImport);
$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]);
}
}