From 71f43c5fa1f2a498501ad3009b49c2e84f71847c Mon Sep 17 00:00:00 2001 From: kondou Date: Thu, 1 Aug 2013 16:24:29 +0200 Subject: [PATCH] Add OC_Image Unit Test data() somehow does not return, what file_get_contents() returns, so I skipped related tests. --- tests/data/testimage.gif | Bin 0 -> 362 bytes tests/data/testimage.jpg | Bin 0 -> 25392 bytes tests/data/testimage.png | Bin 0 -> 5391 bytes tests/lib/image.php | 220 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 220 insertions(+) create mode 100644 tests/data/testimage.gif create mode 100644 tests/data/testimage.jpg create mode 100644 tests/data/testimage.png create mode 100644 tests/lib/image.php diff --git a/tests/data/testimage.gif b/tests/data/testimage.gif new file mode 100644 index 0000000000000000000000000000000000000000..3026395c5e652cb617d6124df386683edf4166e5 GIT binary patch literal 362 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 fS#`gC_0+HalbZ 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 + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +class Test_Image extends PHPUnit_Framework_TestCase { + + public function testGetMimeTypeForFile() { + $mimetype = \OC_Image::getMimeTypeForFile(OC::$SERVERROOT.'/tests/data/testimage.png'); + $this->assertEquals('image/png', $mimetype); + + $mimetype = \OC_Image::getMimeTypeForFile(OC::$SERVERROOT.'/tests/data/testimage.jpg'); + $this->assertEquals('image/jpeg', $mimetype); + + $mimetype = \OC_Image::getMimeTypeForFile(OC::$SERVERROOT.'/tests/data/testimage.gif'); + $this->assertEquals('image/gif', $mimetype); + + $mimetype = \OC_Image::getMimeTypeForFile(null); + $this->assertEquals('', $mimetype); + } + + public function testConstructDestruct() { + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.png'); + $this->assertInstanceOf('\OC_Image', $img); + unset($img); + + $imgcreate = imagecreatefromjpeg(OC::$SERVERROOT.'/tests/data/testimage.jpg'); + $img = new \OC_Image($imgcreate); + $this->assertInstanceOf('\OC_Image', $img); + unset($img); + + $base64 = base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif')); + $img = new \OC_Image($base64); + $this->assertInstanceOf('\OC_Image', $img); + unset($img); + + $img = new \OC_Image(null); + $this->assertInstanceOf('\OC_Image', $img); + unset($img); + } + + public function testValid() { + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.png'); + $this->assertTrue($img->valid()); + + $text = base64_encode("Lorem ipsum dolor sir amet …"); + $img = new \OC_Image($text); + $this->assertFalse($img->valid()); + + $img = new \OC_Image(null); + $this->assertFalse($img->valid()); + } + + public function testMimeType() { + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.png'); + $this->assertEquals('image/png', $img->mimeType()); + + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.jpg'); + $this->assertEquals('image/jpeg', $img->mimeType()); + + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.gif'); + $this->assertEquals('image/gif', $img->mimeType()); + + $img = new \OC_Image(null); + $this->assertEquals('', $img->mimeType()); + } + + public function testWidth() { + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.png'); + $this->assertEquals(128, $img->width()); + + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.jpg'); + $this->assertEquals(1680, $img->width()); + + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.gif'); + $this->assertEquals(64, $img->width()); + + $img = new \OC_Image(null); + $this->assertEquals(-1, $img->width()); + } + + public function testHeight() { + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.png'); + $this->assertEquals(128, $img->height()); + + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.jpg'); + $this->assertEquals(1050, $img->height()); + + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.gif'); + $this->assertEquals(64, $img->height()); + + $img = new \OC_Image(null); + $this->assertEquals(-1, $img->height()); + } + + public function testSave() { + $img = new \OC_Image(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()); + } + + public function testData() { + $this->markTestSkipped("Somehow data() doesn't equal file_get_contents's data"); + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.png'); + $expected = file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.png'); + $this->assertEquals($expected, $img->data()); + + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.jpg'); + $expected = file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg'); + $this->assertEquals($expected, $img->data()); + + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.gif'); + $expected = file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif'); + $this->assertEquals($expected, $img->data()); + } + + public function testToString() { + $this->markTestSkipped("Somehow data() doesn't equal file_get_contents's data"); + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.png'); + $expected = base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.png')); + $this->assertEquals($expected, (string)$img); + + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.jpg'); + $expected = base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); + $this->assertEquals($expected, (string)$img); + + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.gif'); + $expected = base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif')); + $this->assertEquals($expected, (string)$img); + } + + public function testResize() { + $img = new \OC_Image(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(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(OC::$SERVERROOT.'/tests/data/testimage.gif'); + $this->assertTrue($img->resize(100)); + $this->assertEquals(100, $img->width()); + $this->assertEquals(100, $img->height()); + } + + public function testPreciseResize() { + $img = new \OC_Image(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(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(OC::$SERVERROOT.'/tests/data/testimage.gif'); + $this->assertTrue($img->preciseResize(1000, 1337)); + $this->assertEquals(1000, $img->width()); + $this->assertEquals(1337, $img->height()); + } + + public function testCenterCrop() { + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.png'); + $img->centerCrop(); + $this->assertEquals(128, $img->width()); + $this->assertEquals(128, $img->height()); + + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.jpg'); + $img->centerCrop(); + $this->assertEquals(1050, $img->width()); + $this->assertEquals(1050, $img->height()); + + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.gif'); + $img->centerCrop(512); + $this->assertEquals(512, $img->width()); + $this->assertEquals(512, $img->height()); + } + + public function testCrop() { + $img = new \OC_Image(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(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(OC::$SERVERROOT.'/tests/data/testimage.gif'); + $this->assertTrue($img->crop(10, 10, 15, 15)); + $this->assertEquals(15, $img->width()); + $this->assertEquals(15, $img->height()); + } + + public function testFitIn() { + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.png'); + $this->assertTrue($img->fitIn(200, 100)); + $this->assertEquals(100, $img->width()); + $this->assertEquals(100, $img->height()); + + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.jpg'); + $this->assertTrue($img->fitIn(840, 840)); + $this->assertEquals(840, $img->width()); + $this->assertEquals(525, $img->height()); + + $img = new \OC_Image(OC::$SERVERROOT.'/tests/data/testimage.gif'); + $this->assertTrue($img->fitIn(200, 250)); + $this->assertEquals(200, $img->width()); + $this->assertEquals(200, $img->height()); + } +} -- 2.39.5