forked from Intervention/image
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathExifCommandTest.php
112 lines (101 loc) · 3.73 KB
/
ExifCommandTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<?php
use Intervention\Image\Image;
use Intervention\Image\Commands\ExifCommand;
use PHPUnit\Framework\TestCase;
class ExifCommandTest extends TestCase
{
public function tearDown()
{
Mockery::close();
}
public function testFetchAll()
{
$image = new Image;
$image->dirname = __DIR__.'/images';
$image->basename = 'exif.jpg';
$command = new ExifCommand([]);
$result = $command->execute($image);
$this->assertTrue($result);
$this->assertTrue($command->hasOutput());
$this->assertInternalType('array', $command->getOutput());
}
public function testFetchDefined()
{
$image = new Image;
$image->dirname = __DIR__.'/images';
$image->basename = 'exif.jpg';
$command = new ExifCommand(['Artist']);
$result = $command->execute($image);
$this->assertTrue($result);
$this->assertTrue($command->hasOutput());
$this->assertEquals('Oliver Vogel', $command->getOutput());
}
public function testFetchNonExisting()
{
$image = new Image;
$image->dirname = __DIR__.'/images';
$image->basename = 'exif.jpg';
$command = new ExifCommand(['xxx']);
$result = $command->execute($image);
$this->assertTrue($result);
$this->assertTrue($command->hasOutput());
$this->assertEquals(null, $command->getOutput());
}
public function testFetchFromPng()
{
$image = new Image;
$image->dirname = __DIR__.'/images';
$image->basename = 'star.png';
$command = new ExifCommand(['Orientation']);
$result = $command->execute($image);
$this->assertTrue($result);
$this->assertTrue($command->hasOutput());
$this->assertEquals(null, $command->getOutput());
}
public function testImagickFetchAll()
{
$image = $this->imagick()->make(__DIR__.'/images/exif.jpg');
$command = new \Intervention\Image\Imagick\Commands\ExifCommand([]);
$command->dontPreferExtension();
$result = $command->execute($image);
$this->assertTrue($result);
$this->assertTrue($command->hasOutput());
$this->assertInternalType('array', $command->getOutput());
$this->assertEquals('Oliver Vogel', $command->getOutput()['Artist']);
}
public function testImagickFetchDefined()
{
$image = $this->imagick()->make(__DIR__.'/images/exif.jpg');
$command = new \Intervention\Image\Imagick\Commands\ExifCommand(['Artist']);
$command->dontPreferExtension();
$result = $command->execute($image);
$this->assertTrue($result);
$this->assertTrue($command->hasOutput());
$this->assertEquals('Oliver Vogel', $command->getOutput());
}
public function testImagickNonExisting()
{
$image = $this->imagick()->make(__DIR__.'/images/exif.jpg');
$command = new \Intervention\Image\Imagick\Commands\ExifCommand(['xx']);
$command->dontPreferExtension();
$result = $command->execute($image);
$this->assertTrue($result);
$this->assertTrue($command->hasOutput());
$this->assertEquals(null, $command->getOutput());
}
public function testImagickFallbackToExifExtenstion()
{
$image = $this->imagick()->make(__DIR__.'/images/exif.jpg');
$command = new \Intervention\Image\Imagick\Commands\ExifCommand(['Artist']);
$result = $command->execute($image);
$this->assertTrue($result);
$this->assertTrue($command->hasOutput());
$this->assertEquals('Oliver Vogel', $command->getOutput());
}
private function imagick()
{
return new \Intervention\Image\ImageManager([
'driver' => 'imagick'
]);
}
}