1
0
mirror of https://github.com/Intervention/image.git synced 2025-08-28 16:19:50 +02:00

exif() and orientate() now throw exception, if image is not instantiated from filepath

This commit is contained in:
Oliver Vogel
2015-11-27 19:20:53 +01:00
parent cff322864b
commit 40cb418c49
4 changed files with 36 additions and 11 deletions

View File

@@ -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

View File

@@ -1,5 +1,6 @@
<?php
use Intervention\Image\Image;
use Intervention\Image\Commands\ExifCommand;
class ExifCommandTest extends PHPUnit_Framework_TestCase
@@ -11,7 +12,7 @@ class ExifCommandTest extends PHPUnit_Framework_TestCase
public function testFetchAll()
{
$image = Mockery::mock('Intervention\Image\Image');
$image = new Image;
$image->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);
}
}

View File

@@ -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';

View File

@@ -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';