mirror of
https://github.com/roundcube/roundcubemail.git
synced 2026-03-07 00:26:48 +01:00
* Check plugins composer.json using CI * Add "require-dev" and "config.allow-plugins" to plugins * fix composer.json format - rm invalid email * fix composer.json format - fix ext require * fix composer.json format - fix plugin name * tmp * Revert "tmp" * fix ext in ext install * disable plugin in plugin install until Roundcube is fully autoloadable * fix composer.json format - fix non-canonical license name * Revert "Add "require-dev" and "config.allow-plugins" to plugins" * no composer install for plugins needed * Revert "fix ext in ext install" * add standard "Test" suffix to phpunit files * rm unneeded "suffix" in phpunit config * simplify phpunit config * fix default "xhtml" doctype in unit testing * fix test_format_date test to not rely on other tests * even more phpunit config simplify * stricter/unify phpunit params for E2E tests * run E2E tests on maximal php version too with lowest deps * "repositories" in bundled plugins are useless as for root package only * add/unify missing plugin test
124 lines
3.4 KiB
PHP
124 lines
3.4 KiB
PHP
<?php
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
/**
|
|
* Test class to test rcube_image class
|
|
*/
|
|
class Framework_Image extends TestCase
|
|
{
|
|
/**
|
|
* Test props() method
|
|
*/
|
|
public function test_props()
|
|
{
|
|
$object = new rcube_image(INSTALL_PATH . 'skins/elastic/thumbnail.png');
|
|
|
|
if (!function_exists('getimagesize')) {
|
|
$this->markTestSkipped();
|
|
}
|
|
|
|
$props = $object->props();
|
|
|
|
$this->assertSame('png', $props['type']);
|
|
$this->assertSame(64, $props['width']);
|
|
$this->assertSame(64, $props['height']);
|
|
}
|
|
|
|
/**
|
|
* Test resize() method
|
|
*/
|
|
public function test_resize()
|
|
{
|
|
$object = new rcube_image(INSTALL_PATH . 'skins/elastic/thumbnail.png');
|
|
|
|
if (!function_exists('getimagesize')) {
|
|
$this->markTestSkipped();
|
|
}
|
|
|
|
$file = rcube_utils::temp_filename('tests');
|
|
|
|
$this->assertSame('png', $object->resize(32, $file));
|
|
|
|
$object = new rcube_image($file);
|
|
$props = $object->props();
|
|
|
|
@unlink($file);
|
|
|
|
$this->assertSame('png', $props['type']);
|
|
$this->assertSame(32, $props['width']);
|
|
$this->assertSame(32, $props['height']);
|
|
}
|
|
|
|
/**
|
|
* Test convert() method
|
|
*/
|
|
public function test_convert()
|
|
{
|
|
$object = new rcube_image(INSTALL_PATH . 'skins/elastic/thumbnail.png');
|
|
|
|
if (!function_exists('getimagesize')) {
|
|
$this->markTestSkipped();
|
|
}
|
|
|
|
$file = rcube_utils::temp_filename('tests');
|
|
|
|
$this->assertTrue($object->convert(rcube_image::TYPE_JPG, $file));
|
|
|
|
$object = new rcube_image($file);
|
|
$props = $object->props();
|
|
|
|
@unlink($file);
|
|
|
|
$this->assertSame('jpeg', $props['type']);
|
|
$this->assertSame(64, $props['width']);
|
|
$this->assertSame(64, $props['height']);
|
|
}
|
|
|
|
/**
|
|
* Test is_convertable() method
|
|
*/
|
|
public function test_convertable()
|
|
{
|
|
rcube::get_instance()->config->set('im_convert_path', '');
|
|
|
|
$file = rcube_utils::temp_filename('tests');
|
|
$object = new rcube_image($file);
|
|
|
|
if (class_exists('Imagick', false)) {
|
|
$this->assertTrue($object->is_convertable('image/gif'));
|
|
$this->assertFalse($object->is_convertable('xxx'));
|
|
} elseif (!function_exists('getimagesize')) {
|
|
$this->markTestSkipped();
|
|
}
|
|
|
|
if (function_exists('imagecreatefromgif')) {
|
|
$this->assertTrue($object->is_convertable('image/gif'));
|
|
} else {
|
|
$this->assertFalse($object->is_convertable('image/gif'));
|
|
}
|
|
|
|
if (function_exists('imagecreatefromjpeg')) {
|
|
$this->assertTrue($object->is_convertable('image/jpg'));
|
|
$this->assertTrue($object->is_convertable('image/jpeg'));
|
|
} else {
|
|
$this->assertFalse($object->is_convertable('image/jpg'));
|
|
$this->assertFalse($object->is_convertable('image/jpeg'));
|
|
}
|
|
|
|
if (function_exists('imagecreatefrompng')) {
|
|
$this->assertTrue($object->is_convertable('image/png'));
|
|
} else {
|
|
$this->assertFalse($object->is_convertable('image/png'));
|
|
}
|
|
|
|
if (function_exists('imagecreatefromwebp')) {
|
|
$this->assertTrue($object->is_convertable('image/webp'));
|
|
} else {
|
|
$this->assertFalse($object->is_convertable('image/webp'));
|
|
}
|
|
|
|
$this->assertFalse($object->is_convertable('xxx'));
|
|
}
|
|
}
|