Thumbnails: add a common mode to only retrieve thumbs from popular media websites
This commit is contained in:
parent
fcba541e2f
commit
b302b3c584
9 changed files with 135 additions and 30 deletions
tests
|
@ -25,14 +25,20 @@ class ThumbnailerTest extends TestCase
|
|||
*/
|
||||
protected $thumbnailer;
|
||||
|
||||
/**
|
||||
* @var ConfigManager
|
||||
*/
|
||||
protected $conf;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$conf = new ConfigManager('tests/utils/config/configJson');
|
||||
$conf->set('thumbnails.width', self::WIDTH);
|
||||
$conf->set('thumbnails.height', self::HEIGHT);
|
||||
$conf->set('dev.debug', true);
|
||||
$this->conf = new ConfigManager('tests/utils/config/configJson');
|
||||
$this->conf->set('thumbnails.mode', Thumbnailer::MODE_ALL);
|
||||
$this->conf->set('thumbnails.width', self::WIDTH);
|
||||
$this->conf->set('thumbnails.height', self::HEIGHT);
|
||||
$this->conf->set('dev.debug', true);
|
||||
|
||||
$this->thumbnailer = new Thumbnailer($conf);
|
||||
$this->thumbnailer = new Thumbnailer($this->conf);
|
||||
// cache files in the sandbox
|
||||
WTConfigManager::addFile('tests/utils/config/wt.json');
|
||||
}
|
||||
|
@ -43,9 +49,9 @@ class ThumbnailerTest extends TestCase
|
|||
}
|
||||
|
||||
/**
|
||||
* Test a thumbnail with a custom size.
|
||||
* Test a thumbnail with a custom size in 'all' mode.
|
||||
*/
|
||||
public function testThumbnailValid()
|
||||
public function testThumbnailAllValid()
|
||||
{
|
||||
$thumb = $this->thumbnailer->get('https://github.com/shaarli/Shaarli/');
|
||||
$this->assertNotFalse($thumb);
|
||||
|
@ -54,6 +60,29 @@ class ThumbnailerTest extends TestCase
|
|||
$this->assertEquals(self::HEIGHT, imagesy($image));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test a thumbnail with a custom size in 'common' mode.
|
||||
*/
|
||||
public function testThumbnailCommonValid()
|
||||
{
|
||||
$this->conf->set('thumbnails.mode', Thumbnailer::MODE_COMMON);
|
||||
$thumb = $this->thumbnailer->get('https://imgur.com/jlFgGpe');
|
||||
$this->assertNotFalse($thumb);
|
||||
$image = imagecreatefromstring(file_get_contents($thumb));
|
||||
$this->assertEquals(self::WIDTH, imagesx($image));
|
||||
$this->assertEquals(self::HEIGHT, imagesy($image));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test a thumbnail in 'common' mode which isn't include in common websites.
|
||||
*/
|
||||
public function testThumbnailCommonInvalid()
|
||||
{
|
||||
$this->conf->set('thumbnails.mode', Thumbnailer::MODE_COMMON);
|
||||
$thumb = $this->thumbnailer->get('https://github.com/shaarli/Shaarli/');
|
||||
$this->assertFalse($thumb);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test a thumbnail that can't be retrieved.
|
||||
*/
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
use Shaarli\Config\ConfigJson;
|
||||
use Shaarli\Config\ConfigManager;
|
||||
use Shaarli\Config\ConfigPhp;
|
||||
use Shaarli\Thumbnailer;
|
||||
|
||||
require_once 'tests/Updater/DummyUpdater.php';
|
||||
require_once 'inc/rain.tpl.class.php';
|
||||
|
@ -696,7 +697,7 @@ $GLOBALS[\'privateLinkByDefault\'] = true;';
|
|||
$updater = new Updater([], [], $this->conf, true, $_SESSION);
|
||||
$this->assertTrue($updater->updateMethodWebThumbnailer());
|
||||
$this->assertFalse($this->conf->exists('thumbnail'));
|
||||
$this->assertTrue($this->conf->get('thumbnails.enabled'));
|
||||
$this->assertEquals(\Shaarli\Thumbnailer::MODE_ALL, $this->conf->get('thumbnails.mode'));
|
||||
$this->assertEquals(125, $this->conf->get('thumbnails.width'));
|
||||
$this->assertEquals(90, $this->conf->get('thumbnails.height'));
|
||||
$this->assertContains('You have enabled thumbnails', $_SESSION['warnings'][0]);
|
||||
|
@ -712,7 +713,7 @@ $GLOBALS[\'privateLinkByDefault\'] = true;';
|
|||
$updater = new Updater([], [], $this->conf, true, $_SESSION);
|
||||
$this->assertTrue($updater->updateMethodWebThumbnailer());
|
||||
$this->assertFalse($this->conf->exists('thumbnail'));
|
||||
$this->assertFalse($this->conf->get('thumbnails.enabled'));
|
||||
$this->assertEquals(Thumbnailer::MODE_NONE, $this->conf->get('thumbnails.mode'));
|
||||
$this->assertEquals(125, $this->conf->get('thumbnails.width'));
|
||||
$this->assertEquals(90, $this->conf->get('thumbnails.height'));
|
||||
$this->assertTrue(empty($_SESSION['warnings']));
|
||||
|
@ -726,7 +727,7 @@ $GLOBALS[\'privateLinkByDefault\'] = true;';
|
|||
$updater = new Updater([], [], $this->conf, true, $_SESSION);
|
||||
$this->assertTrue($updater->updateMethodWebThumbnailer());
|
||||
$this->assertFalse($this->conf->exists('thumbnail'));
|
||||
$this->assertTrue($this->conf->get('thumbnails.enabled'));
|
||||
$this->assertEquals(Thumbnailer::MODE_COMMON, $this->conf->get('thumbnails.mode'));
|
||||
$this->assertEquals(90, $this->conf->get('thumbnails.width'));
|
||||
$this->assertEquals(53, $this->conf->get('thumbnails.height'));
|
||||
$this->assertTrue(empty($_SESSION['warnings']));
|
||||
|
|
|
@ -76,7 +76,7 @@
|
|||
"extensions": []
|
||||
},
|
||||
"thumbnails": {
|
||||
"enabled": true,
|
||||
"mode": "common",
|
||||
"width": 90,
|
||||
"height": 53
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue