|
|
|
|
@ -8,6 +8,7 @@ |
|
|
|
|
namespace Test; |
|
|
|
|
|
|
|
|
|
use OC; |
|
|
|
|
use OC\Image; |
|
|
|
|
use OCP\IConfig; |
|
|
|
|
|
|
|
|
|
class ImageTest extends \Test\TestCase { |
|
|
|
|
@ -19,105 +20,105 @@ class ImageTest extends \Test\TestCase { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testConstructDestruct() { |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); |
|
|
|
|
$this->assertInstanceOf('\OC_Image', $img); |
|
|
|
|
$this->assertInstanceOf('\OC\Image', $img); |
|
|
|
|
$this->assertInstanceOf('\OCP\IImage', $img); |
|
|
|
|
unset($img); |
|
|
|
|
|
|
|
|
|
$imgcreate = imagecreatefromjpeg(OC::$SERVERROOT.'/tests/data/testimage.jpg'); |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->setResource($imgcreate); |
|
|
|
|
$this->assertInstanceOf('\OC_Image', $img); |
|
|
|
|
$this->assertInstanceOf('\OC\Image', $img); |
|
|
|
|
$this->assertInstanceOf('\OCP\IImage', $img); |
|
|
|
|
unset($img); |
|
|
|
|
|
|
|
|
|
$base64 = base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif')); |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromBase64($base64); |
|
|
|
|
$this->assertInstanceOf('\OC_Image', $img); |
|
|
|
|
$this->assertInstanceOf('\OC\Image', $img); |
|
|
|
|
$this->assertInstanceOf('\OCP\IImage', $img); |
|
|
|
|
unset($img); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$this->assertInstanceOf('\OC_Image', $img); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$this->assertInstanceOf('\OC\Image', $img); |
|
|
|
|
$this->assertInstanceOf('\OCP\IImage', $img); |
|
|
|
|
unset($img); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testValid() { |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); |
|
|
|
|
$this->assertTrue($img->valid()); |
|
|
|
|
|
|
|
|
|
$text = base64_encode('Lorem ipsum dolor sir amet …'); |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromBase64($text); |
|
|
|
|
$this->assertFalse($img->valid()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$this->assertFalse($img->valid()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testMimeType() { |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); |
|
|
|
|
$this->assertEquals('image/png', $img->mimeType()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$this->assertEquals('', $img->mimeType()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromData(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); |
|
|
|
|
$this->assertEquals('image/jpeg', $img->mimeType()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif'))); |
|
|
|
|
$this->assertEquals('image/gif', $img->mimeType()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testWidth() { |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); |
|
|
|
|
$this->assertEquals(128, $img->width()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromData(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); |
|
|
|
|
$this->assertEquals(1680, $img->width()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif'))); |
|
|
|
|
$this->assertEquals(64, $img->width()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$this->assertEquals(-1, $img->width()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testHeight() { |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); |
|
|
|
|
$this->assertEquals(128, $img->height()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromData(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); |
|
|
|
|
$this->assertEquals(1050, $img->height()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif'))); |
|
|
|
|
$this->assertEquals(64, $img->height()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$this->assertEquals(-1, $img->height()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testSave() { |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); |
|
|
|
|
$img->resize(16); |
|
|
|
|
$img->save(OC::$SERVERROOT.'/tests/data/testimage2.png'); |
|
|
|
|
$this->assertEquals(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage2.png'), $img->data()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.jpg'); |
|
|
|
|
$img->resize(128); |
|
|
|
|
$img->save(OC::$SERVERROOT.'/tests/data/testimage2.jpg'); |
|
|
|
|
@ -125,7 +126,7 @@ class ImageTest extends \Test\TestCase { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testData() { |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); |
|
|
|
|
$raw = imagecreatefromstring(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.png')); |
|
|
|
|
// Preserve transparency |
|
|
|
|
@ -145,7 +146,7 @@ class ImageTest extends \Test\TestCase { |
|
|
|
|
->method('getSystemValueInt') |
|
|
|
|
->with('preview_max_memory', 256) |
|
|
|
|
->willReturn(256); |
|
|
|
|
$img = new \OC_Image(null, null, $config); |
|
|
|
|
$img = new Image(null, null, $config); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.jpg'); |
|
|
|
|
$raw = imagecreatefromstring(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); |
|
|
|
|
imageinterlace($raw, true); |
|
|
|
|
@ -154,7 +155,7 @@ class ImageTest extends \Test\TestCase { |
|
|
|
|
$expected = ob_get_clean(); |
|
|
|
|
$this->assertEquals($expected, $img->data()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.gif'); |
|
|
|
|
$raw = imagecreatefromstring(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif')); |
|
|
|
|
ob_start(); |
|
|
|
|
@ -164,7 +165,7 @@ class ImageTest extends \Test\TestCase { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testDataNoResource() { |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$this->assertNull($img->data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -172,36 +173,36 @@ class ImageTest extends \Test\TestCase { |
|
|
|
|
* @depends testData |
|
|
|
|
*/ |
|
|
|
|
public function testToString() { |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); |
|
|
|
|
$expected = base64_encode($img->data()); |
|
|
|
|
$this->assertEquals($expected, (string)$img); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromData(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); |
|
|
|
|
$expected = base64_encode($img->data()); |
|
|
|
|
$this->assertEquals($expected, (string)$img); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.gif'); |
|
|
|
|
$expected = base64_encode($img->data()); |
|
|
|
|
$this->assertEquals($expected, (string)$img); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testResize() { |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); |
|
|
|
|
$this->assertTrue($img->resize(32)); |
|
|
|
|
$this->assertEquals(32, $img->width()); |
|
|
|
|
$this->assertEquals(32, $img->height()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromData(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); |
|
|
|
|
$this->assertTrue($img->resize(840)); |
|
|
|
|
$this->assertEquals(840, $img->width()); |
|
|
|
|
$this->assertEquals(525, $img->height()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif'))); |
|
|
|
|
$this->assertTrue($img->resize(100)); |
|
|
|
|
$this->assertEquals(100, $img->width()); |
|
|
|
|
@ -209,19 +210,19 @@ class ImageTest extends \Test\TestCase { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testPreciseResize() { |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); |
|
|
|
|
$this->assertTrue($img->preciseResize(128, 512)); |
|
|
|
|
$this->assertEquals(128, $img->width()); |
|
|
|
|
$this->assertEquals(512, $img->height()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromData(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); |
|
|
|
|
$this->assertTrue($img->preciseResize(64, 840)); |
|
|
|
|
$this->assertEquals(64, $img->width()); |
|
|
|
|
$this->assertEquals(840, $img->height()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif'))); |
|
|
|
|
$this->assertTrue($img->preciseResize(1000, 1337)); |
|
|
|
|
$this->assertEquals(1000, $img->width()); |
|
|
|
|
@ -229,19 +230,19 @@ class ImageTest extends \Test\TestCase { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testCenterCrop() { |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); |
|
|
|
|
$img->centerCrop(); |
|
|
|
|
$this->assertEquals(128, $img->width()); |
|
|
|
|
$this->assertEquals(128, $img->height()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromData(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); |
|
|
|
|
$img->centerCrop(); |
|
|
|
|
$this->assertEquals(1050, $img->width()); |
|
|
|
|
$this->assertEquals(1050, $img->height()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif'))); |
|
|
|
|
$img->centerCrop(512); |
|
|
|
|
$this->assertEquals(512, $img->width()); |
|
|
|
|
@ -249,19 +250,19 @@ class ImageTest extends \Test\TestCase { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testCrop() { |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); |
|
|
|
|
$this->assertTrue($img->crop(0, 0, 50, 20)); |
|
|
|
|
$this->assertEquals(50, $img->width()); |
|
|
|
|
$this->assertEquals(20, $img->height()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromData(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); |
|
|
|
|
$this->assertTrue($img->crop(500, 700, 550, 300)); |
|
|
|
|
$this->assertEquals(550, $img->width()); |
|
|
|
|
$this->assertEquals(300, $img->height()); |
|
|
|
|
|
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif'))); |
|
|
|
|
$this->assertTrue($img->crop(10, 10, 15, 15)); |
|
|
|
|
$this->assertEquals(15, $img->width()); |
|
|
|
|
@ -284,7 +285,7 @@ class ImageTest extends \Test\TestCase { |
|
|
|
|
* @param int[] $expected |
|
|
|
|
*/ |
|
|
|
|
public function testFitIn($filename, $asked, $expected) { |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT . '/tests/data/' . $filename); |
|
|
|
|
$this->assertTrue($img->fitIn($asked[0], $asked[1])); |
|
|
|
|
$this->assertEquals($expected[0], $img->width()); |
|
|
|
|
@ -307,7 +308,7 @@ class ImageTest extends \Test\TestCase { |
|
|
|
|
* @param string $filename |
|
|
|
|
*/ |
|
|
|
|
public function testScaleDownToFitWhenSmallerAlready($filename) { |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/' . $filename); |
|
|
|
|
$currentWidth = $img->width(); |
|
|
|
|
$currentHeight = $img->height(); |
|
|
|
|
@ -340,7 +341,7 @@ class ImageTest extends \Test\TestCase { |
|
|
|
|
* @param int[] $expected |
|
|
|
|
*/ |
|
|
|
|
public function testScaleDownWhenBigger($filename, $asked, $expected) { |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/' . $filename); |
|
|
|
|
//$this->assertTrue($img->scaleDownToFit($asked[0], $asked[1])); |
|
|
|
|
$img->scaleDownToFit($asked[0], $asked[1]); |
|
|
|
|
@ -360,7 +361,7 @@ class ImageTest extends \Test\TestCase { |
|
|
|
|
* @dataProvider convertDataProvider |
|
|
|
|
*/ |
|
|
|
|
public function testConvert($mimeType) { |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); |
|
|
|
|
$tempFile = tempnam(sys_get_temp_dir(), 'img-test'); |
|
|
|
|
|
|
|
|
|
@ -369,14 +370,14 @@ class ImageTest extends \Test\TestCase { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testMemoryLimitFromFile() { |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage-badheader.jpg'); |
|
|
|
|
$this->assertFalse($img->valid()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testMemoryLimitFromData() { |
|
|
|
|
$data = file_get_contents(OC::$SERVERROOT.'/tests/data/testimage-badheader.jpg'); |
|
|
|
|
$img = new \OC_Image(); |
|
|
|
|
$img = new Image(); |
|
|
|
|
$img->loadFromData($data); |
|
|
|
|
$this->assertFalse($img->valid()); |
|
|
|
|
} |
|
|
|
|
|