Fixing tests
This commit is contained in:
parent
7f55941856
commit
48656e0eaa
@ -49,22 +49,23 @@ class DownloadImagesSubscriber implements EventSubscriber
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$em = $args->getEntityManager();
|
$config = new $this->configClass();
|
||||||
|
$config->setEntityManager($args->getEntityManager());
|
||||||
|
|
||||||
// field content has been updated
|
// field content has been updated
|
||||||
if ($args->hasChangedField('content')) {
|
if ($args->hasChangedField('content')) {
|
||||||
$html = $this->downloadImages($em, $entity);
|
$html = $this->downloadImages($config, $entity);
|
||||||
|
|
||||||
if (null !== $html) {
|
if (false !== $html) {
|
||||||
$args->setNewValue('content', $html);
|
$args->setNewValue('content', $html);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// field preview picture has been updated
|
// field preview picture has been updated
|
||||||
if ($args->hasChangedField('previewPicture')) {
|
if ($args->hasChangedField('previewPicture')) {
|
||||||
$previewPicture = $this->downloadPreviewImage($em, $entity);
|
$previewPicture = $this->downloadPreviewImage($config, $entity);
|
||||||
|
|
||||||
if (null !== $previewPicture) {
|
if (false !== $previewPicture) {
|
||||||
$entity->setPreviewPicture($previewPicture);
|
$entity->setPreviewPicture($previewPicture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -88,17 +89,25 @@ class DownloadImagesSubscriber implements EventSubscriber
|
|||||||
|
|
||||||
// update all images inside the html
|
// update all images inside the html
|
||||||
$html = $this->downloadImages($config, $entity);
|
$html = $this->downloadImages($config, $entity);
|
||||||
if (null !== $html) {
|
if (false !== $html) {
|
||||||
$entity->setContent($html);
|
$entity->setContent($html);
|
||||||
}
|
}
|
||||||
|
|
||||||
// update preview picture
|
// update preview picture
|
||||||
$previewPicture = $this->downloadPreviewImage($config, $entity);
|
$previewPicture = $this->downloadPreviewImage($config, $entity);
|
||||||
if (null !== $previewPicture) {
|
if (false !== $previewPicture) {
|
||||||
$entity->setPreviewPicture($previewPicture);
|
$entity->setPreviewPicture($previewPicture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Download all images from the html.
|
||||||
|
*
|
||||||
|
* @param Config $config
|
||||||
|
* @param Entry $entry
|
||||||
|
*
|
||||||
|
* @return string|false False in case of async
|
||||||
|
*/
|
||||||
public function downloadImages(Config $config, Entry $entry)
|
public function downloadImages(Config $config, Entry $entry)
|
||||||
{
|
{
|
||||||
// if ($config->get('download_images_with_rabbitmq')) {
|
// if ($config->get('download_images_with_rabbitmq')) {
|
||||||
@ -113,6 +122,14 @@ class DownloadImagesSubscriber implements EventSubscriber
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Download the preview picture.
|
||||||
|
*
|
||||||
|
* @param Config $config
|
||||||
|
* @param Entry $entry
|
||||||
|
*
|
||||||
|
* @return string|false False in case of async
|
||||||
|
*/
|
||||||
public function downloadPreviewImage(Config $config, Entry $entry)
|
public function downloadPreviewImage(Config $config, Entry $entry)
|
||||||
{
|
{
|
||||||
// if ($config->get('download_images_with_rabbitmq')) {
|
// if ($config->get('download_images_with_rabbitmq')) {
|
||||||
|
@ -65,6 +65,7 @@ class ContentProxy
|
|||||||
|
|
||||||
$entry->setUrl($content['url'] ?: $url);
|
$entry->setUrl($content['url'] ?: $url);
|
||||||
$entry->setTitle($title);
|
$entry->setTitle($title);
|
||||||
|
$entry->setContent($html);
|
||||||
|
|
||||||
$entry->setLanguage($content['language']);
|
$entry->setLanguage($content['language']);
|
||||||
$entry->setMimetype($content['content_type']);
|
$entry->setMimetype($content['content_type']);
|
||||||
@ -75,8 +76,6 @@ class ContentProxy
|
|||||||
$entry->setDomainName($domainName);
|
$entry->setDomainName($domainName);
|
||||||
}
|
}
|
||||||
|
|
||||||
$entry->setContent($html);
|
|
||||||
|
|
||||||
if (isset($content['open_graph']['og_image'])) {
|
if (isset($content['open_graph']['og_image'])) {
|
||||||
$entry->setPreviewPicture($content['open_graph']['og_image']);
|
$entry->setPreviewPicture($content['open_graph']['og_image']);
|
||||||
}
|
}
|
||||||
|
@ -91,20 +91,23 @@ class DownloadImages
|
|||||||
// build image path
|
// build image path
|
||||||
$absolutePath = $this->getAbsoluteLink($url, $imagePath);
|
$absolutePath = $this->getAbsoluteLink($url, $imagePath);
|
||||||
if (false === $absolutePath) {
|
if (false === $absolutePath) {
|
||||||
$this->logger->log('debug', 'Can not determine the absolute path for that image, skipping.');
|
$this->logger->log('error', 'Can not determine the absolute path for that image, skipping.');
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$res = $this->client->get(
|
try {
|
||||||
$absolutePath,
|
$res = $this->client->get($absolutePath);
|
||||||
['exceptions' => false]
|
} catch (\Exception $e) {
|
||||||
);
|
$this->logger->log('error', 'Can not retrieve image, skipping.', ['exception' => $e]);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
$ext = $this->mimeGuesser->guess($res->getHeader('content-type'));
|
$ext = $this->mimeGuesser->guess($res->getHeader('content-type'));
|
||||||
$this->logger->log('debug', 'Checking extension', ['ext' => $ext, 'header' => $res->getHeader('content-type')]);
|
$this->logger->log('debug', 'Checking extension', ['ext' => $ext, 'header' => $res->getHeader('content-type')]);
|
||||||
if (!in_array($ext, ['jpeg', 'jpg', 'gif', 'png'])) {
|
if (!in_array($ext, ['jpeg', 'jpg', 'gif', 'png'], true)) {
|
||||||
$this->logger->log('debug', 'Processed image with not allowed extension. Skipping '.$imagePath);
|
$this->logger->log('error', 'Processed image with not allowed extension. Skipping '.$imagePath);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -117,7 +120,7 @@ class DownloadImages
|
|||||||
$im = false;
|
$im = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($im === false) {
|
if (false === $im) {
|
||||||
$this->logger->log('error', 'Error while regenerating image', ['path' => $localPath]);
|
$this->logger->log('error', 'Error while regenerating image', ['path' => $localPath]);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@ -193,6 +196,8 @@ class DownloadImages
|
|||||||
return $absolute->get_uri();
|
return $absolute->get_uri();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->logger->log('error', 'Can not make an absolute link', ['base' => $base, 'url' => $url]);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Tests\Wallabag\CoreBundle\EventListener;
|
namespace Tests\Wallabag\CoreBundle\Event\Listener;
|
||||||
|
|
||||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
@ -9,7 +9,7 @@ use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
|
|||||||
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
|
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
|
||||||
use Symfony\Component\HttpKernel\HttpKernelInterface;
|
use Symfony\Component\HttpKernel\HttpKernelInterface;
|
||||||
use Symfony\Component\HttpKernel\KernelEvents;
|
use Symfony\Component\HttpKernel\KernelEvents;
|
||||||
use Wallabag\CoreBundle\EventListener\LocaleListener;
|
use Wallabag\CoreBundle\Event\Listener\LocaleListener;
|
||||||
|
|
||||||
class LocaleListenerTest extends \PHPUnit_Framework_TestCase
|
class LocaleListenerTest extends \PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Tests\Wallabag\CoreBundle\EventListener;
|
namespace Tests\Wallabag\CoreBundle\Event\Listener;
|
||||||
|
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\HttpFoundation\Session\Session;
|
use Symfony\Component\HttpFoundation\Session\Session;
|
||||||
@ -8,7 +8,7 @@ use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
|
|||||||
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
|
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
|
||||||
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
|
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
|
||||||
use Wallabag\CoreBundle\Entity\Config;
|
use Wallabag\CoreBundle\Entity\Config;
|
||||||
use Wallabag\CoreBundle\EventListener\UserLocaleListener;
|
use Wallabag\CoreBundle\Event\Listener\UserLocaleListener;
|
||||||
use Wallabag\UserBundle\Entity\User;
|
use Wallabag\UserBundle\Entity\User;
|
||||||
|
|
||||||
class UserLocaleListenerTest extends \PHPUnit_Framework_TestCase
|
class UserLocaleListenerTest extends \PHPUnit_Framework_TestCase
|
@ -1,11 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Tests\Wallabag\CoreBundle\Subscriber;
|
namespace Tests\Wallabag\CoreBundle\Event\Subscriber;
|
||||||
|
|
||||||
use Doctrine\Common\EventManager;
|
use Doctrine\Common\EventManager;
|
||||||
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
|
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
|
||||||
use Doctrine\ORM\Mapping\ClassMetadata;
|
use Doctrine\ORM\Mapping\ClassMetadata;
|
||||||
use Wallabag\CoreBundle\Subscriber\TablePrefixSubscriber;
|
use Wallabag\CoreBundle\Event\Subscriber\TablePrefixSubscriber;
|
||||||
|
|
||||||
class TablePrefixSubscriberTest extends \PHPUnit_Framework_TestCase
|
class TablePrefixSubscriberTest extends \PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
@ -83,6 +83,25 @@ class DownloadImagesTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->assertContains('/assets/images/4/2/4258f71e/ebe60399.'.$extension, $res);
|
$this->assertContains('/assets/images/4/2/4258f71e/ebe60399.'.$extension, $res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testProcessSingleImageWithBadUrl()
|
||||||
|
{
|
||||||
|
$client = new Client();
|
||||||
|
|
||||||
|
$mock = new Mock([
|
||||||
|
new Response(404, []),
|
||||||
|
]);
|
||||||
|
|
||||||
|
$client->getEmitter()->attach($mock);
|
||||||
|
|
||||||
|
$logHandler = new TestHandler();
|
||||||
|
$logger = new Logger('test', array($logHandler));
|
||||||
|
|
||||||
|
$download = new DownloadImages($client, sys_get_temp_dir().'/wallabag_test', $logger);
|
||||||
|
$res = $download->processSingleImage('T9qgcHc.jpg', 'http://imgur.com/gallery/WxtWY');
|
||||||
|
|
||||||
|
$this->assertFalse($res, 'Image can not be found, so it will not be replaced');
|
||||||
|
}
|
||||||
|
|
||||||
public function testProcessSingleImageWithBadImage()
|
public function testProcessSingleImageWithBadImage()
|
||||||
{
|
{
|
||||||
$client = new Client();
|
$client = new Client();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user