From 40cb418c49f32c5140ef798ab8c273ae9aae9e07 Mon Sep 17 00:00:00 2001 From: Oliver Vogel Date: Fri, 27 Nov 2015 19:20:53 +0100 Subject: [PATCH] exif() and orientate() now throw exception, if image is not instantiated from filepath --- .../Image/Commands/ExifCommand.php | 6 +++++ tests/ExifCommandTest.php | 23 ++++++++++--------- tests/GdSystemTest.php | 9 ++++++++ tests/ImagickSystemTest.php | 9 ++++++++ 4 files changed, 36 insertions(+), 11 deletions(-) diff --git a/src/Intervention/Image/Commands/ExifCommand.php b/src/Intervention/Image/Commands/ExifCommand.php index 2986cae8..c992647d 100644 --- a/src/Intervention/Image/Commands/ExifCommand.php +++ b/src/Intervention/Image/Commands/ExifCommand.php @@ -21,6 +21,12 @@ class ExifCommand extends AbstractCommand ); } + if ( ! $image->basePath()) { + throw new \Intervention\Image\Exception\RuntimeException( + "Reading Exif data is only possible, if the image is instantiated from a filepath." + ); + } + $key = $this->argument(0)->value(); // try to read exif data from image file diff --git a/tests/ExifCommandTest.php b/tests/ExifCommandTest.php index 80996f08..6c9509fc 100644 --- a/tests/ExifCommandTest.php +++ b/tests/ExifCommandTest.php @@ -1,5 +1,6 @@ dirname = __DIR__.'/images'; $image->basename = 'exif.jpg'; $command = new ExifCommand(array()); @@ -23,7 +24,7 @@ class ExifCommandTest extends PHPUnit_Framework_TestCase public function testFetchDefined() { - $image = Mockery::mock('Intervention\Image\Image'); + $image = new Image; $image->dirname = __DIR__.'/images'; $image->basename = 'exif.jpg'; $command = new ExifCommand(array('Artist')); @@ -35,7 +36,7 @@ class ExifCommandTest extends PHPUnit_Framework_TestCase public function testFetchNonExisting() { - $image = Mockery::mock('Intervention\Image\Image'); + $image = new Image; $image->dirname = __DIR__.'/images'; $image->basename = 'exif.jpg'; $command = new ExifCommand(array('xxx')); @@ -47,7 +48,7 @@ class ExifCommandTest extends PHPUnit_Framework_TestCase public function testFetchFromPng() { - $image = Mockery::mock('Intervention\Image\Image'); + $image = new Image; $image->dirname = __DIR__.'/images'; $image->basename = 'star.png'; $command = new ExifCommand(array('Orientation')); @@ -57,13 +58,13 @@ class ExifCommandTest extends PHPUnit_Framework_TestCase $this->assertEquals(null, $command->getOutput()); } - public function testReturnNullOnExifReadFail() + /** + * @expectedException \Intervention\Image\Exception\RuntimeException + */ + public function testFetchFromNonFileInstance() { - $image = Mockery::mock('Intervention\Image\Image'); - $command = new ExifCommand(array('Orientation')); - $result = $command->execute($image); - $this->assertTrue($result); - $this->assertTrue($command->hasOutput()); - $this->assertEquals(null, $command->getOutput()); + $image = new Image; + $command = new ExifCommand(array('Artist')); + $command->execute($image); } } diff --git a/tests/GdSystemTest.php b/tests/GdSystemTest.php index 5fdcd339..cfd67c79 100644 --- a/tests/GdSystemTest.php +++ b/tests/GdSystemTest.php @@ -1497,6 +1497,15 @@ class GdSystemTest extends PHPUnit_Framework_TestCase $this->assertEquals(null, $data); } + /** + * @expectedException \Intervention\Image\Exception\RuntimeException + */ + public function testExifReadNonFileInstance() + { + $img = $this->manager()->canvas(300, 200); + $data = $img->exif(); + } + public function testSaveImage() { $save_as = 'tests/tmp/foo.jpg'; diff --git a/tests/ImagickSystemTest.php b/tests/ImagickSystemTest.php index 89b8f8ee..ddd6d73c 100644 --- a/tests/ImagickSystemTest.php +++ b/tests/ImagickSystemTest.php @@ -1483,6 +1483,15 @@ class ImagickSystemTest extends PHPUnit_Framework_TestCase $this->assertEquals(null, $data); } + /** + * @expectedException \Intervention\Image\Exception\RuntimeException + */ + public function testExifReadNonFileInstance() + { + $img = $this->manager()->canvas(300, 200); + $data = $img->exif(); + } + public function testSaveImage() { $save_as = 'tests/tmp/foo.jpg';