Fix some Scrutinizer issues

This commit is contained in:
Jeremy Benoist
2016-03-27 20:35:56 +02:00
parent 5d6f6f56a2
commit 4d0ec0e721
9 changed files with 183 additions and 32 deletions

View File

@ -38,6 +38,15 @@ class PocketController extends Controller
$requestToken = $this->get('wallabag_import.pocket.import')
->getRequestToken($this->generateUrl('import', array(), UrlGeneratorInterface::ABSOLUTE_URL));
if (false === $requestToken) {
$this->get('session')->getFlashBag()->add(
'notice',
'flashes.import.notice.failed'
);
return $this->redirect($this->generateUrl('import_pocket'));
}
$this->get('session')->set('import.pocket.code', $requestToken);
$this->get('session')->set('mark_as_read', $request->request->get('form')['mark_as_read']);

View File

@ -68,7 +68,7 @@ class PocketImport implements ImportInterface
*
* @param string $redirectUri Redirect url in case of error
*
* @return string request_token for callback method
* @return string|false request_token for callback method
*/
public function getRequestToken($redirectUri)
{

View File

@ -7,7 +7,6 @@ use Psr\Log\NullLogger;
use Doctrine\ORM\EntityManager;
use Wallabag\CoreBundle\Entity\Entry;
use Wallabag\UserBundle\Entity\User;
use Wallabag\CoreBundle\Tools\Utils;
use Wallabag\CoreBundle\Helper\ContentProxy;
class WallabagV1Import implements ImportInterface
@ -153,19 +152,25 @@ class WallabagV1Import implements ImportInterface
continue;
}
// @see ContentProxy->updateEntry
$entry = new Entry($this->user);
$entry->setUrl($importedEntry['url']);
$data = [
'title' => $importedEntry['title'],
'html' => $importedEntry['content'],
'url' => $importedEntry['url'],
'content_type' => '',
'language' => '',
];
// force content to be refreshed in case on bad fetch in the v1 installation
if (in_array($importedEntry['title'], $untitled)) {
$entry = $this->contentProxy->updateEntry($entry, $importedEntry['url']);
} else {
$entry->setContent($importedEntry['content']);
$entry->setTitle($importedEntry['title']);
$entry->setReadingTime(Utils::getReadingTime($importedEntry['content']));
$entry->setDomainName(parse_url($importedEntry['url'], PHP_URL_HOST));
$data = [];
}
$entry = $this->contentProxy->updateEntry(
new Entry($this->user),
$importedEntry['url'],
$data
);
if (array_key_exists('tags', $importedEntry) && $importedEntry['tags'] != '') {
$this->contentProxy->assignTagsToEntry(
$entry,

View File

@ -17,13 +17,36 @@ class PocketControllerTest extends WallabagCoreTestCase
$this->assertEquals(1, $crawler->filter('button[type=submit]')->count());
}
public function testImportPocketAuth()
public function testImportPocketAuthBadToken()
{
$this->logInAs('admin');
$client = $this->getClient();
$crawler = $client->request('GET', '/import/pocket/auth');
$this->assertEquals(302, $client->getResponse()->getStatusCode());
}
public function testImportPocketAuth()
{
$this->markTestSkipped('PocketImport: Find a way to properly mock a service.');
$this->logInAs('admin');
$client = $this->getClient();
$pocketImport = $this->getMockBuilder('Wallabag\ImportBundle\Import\PocketImport')
->disableOriginalConstructor()
->getMock();
$pocketImport
->expects($this->once())
->method('getRequestToken')
->willReturn('token');
$client->getContainer()->set('wallabag_import.pocket.import', $pocketImport);
$crawler = $client->request('GET', '/import/pocket/auth');
$this->assertEquals(301, $client->getResponse()->getStatusCode());
$this->assertContains('getpocket.com/auth/authorize', $client->getResponse()->headers->get('location'));
}

View File

@ -3,6 +3,7 @@
namespace Wallabag\ImportBundle\Tests\Import;
use Wallabag\UserBundle\Entity\User;
use Wallabag\CoreBundle\Entity\Entry;
use Wallabag\ImportBundle\Import\WallabagV1Import;
use Monolog\Logger;
use Monolog\Handler\TestHandler;
@ -71,7 +72,7 @@ class WallabagV1ImportTest extends \PHPUnit_Framework_TestCase
->getMock();
$this->contentProxy
->expects($this->once())
->expects($this->exactly(3))
->method('updateEntry')
->willReturn($entry);
@ -99,6 +100,11 @@ class WallabagV1ImportTest extends \PHPUnit_Framework_TestCase
->method('getRepository')
->willReturn($entryRepo);
$this->contentProxy
->expects($this->exactly(3))
->method('updateEntry')
->willReturn(new Entry($this->user));
// check that every entry persisted are archived
$this->em
->expects($this->any())