Skip to content

Commit

Permalink
Merge pull request #36 from mirko-pagliai/develop
Browse files Browse the repository at this point in the history
* removed `Thumber\TestSuite\TestCase::assertFileExtension()` method;
  • Loading branch information
mirko-pagliai authored Apr 11, 2018
2 parents e5a6f26 + 315cfcc commit 125ced7
Show file tree
Hide file tree
Showing 7 changed files with 45 additions and 117 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# 1.x branch
## 1.4 branch
# 1.4.1
* removed `Thumber\TestSuite\TestCase::assertFileExtension()` method;
* removed `Thumber\TestSuite\TestCase::assertImageSize()` method;
* `Thumber\TestSuite\TestCase::assertMime()` method renamed as `assertFileMime()`.

# 1.4.0
* removed all methods provided previously by the `ThumbHelper`. These methods
are now called dynamically by the `__call()` magic method;
Expand Down
43 changes: 8 additions & 35 deletions src/TestSuite/TestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,17 @@
use Cake\TestSuite\TestCase as CakeTestCase;
use Thumber\ThumbTrait;
use Tools\ReflectionTrait;
use Tools\TestSuite\TestCaseTrait;

/**
* Thumber TestCase class
*/
abstract class TestCase extends CakeTestCase
{
use ReflectionTrait;
use TestCaseTrait {
assertFileMime as baseAssertFileMime;
}
use ThumbTrait;

/**
Expand Down Expand Up @@ -54,20 +58,6 @@ protected static function createCopy($path)
return $result;
}

/**
* Asserts for the extension of a file
* @param string $expected Expected extension
* @param string $file File
* @param string $message The failure message that will be appended to the
* generated message
* @return void
* @since 1.1.1
*/
public static function assertFileExtension($expected, $file, $message = '')
{
self::assertEquals($expected, pathinfo($file, PATHINFO_EXTENSION), $message);
}

/**
* Asserts that the contents of one image file is equal to the contents of
* another image file
Expand Down Expand Up @@ -98,37 +88,20 @@ public static function assertImageFileEquals($expected, $actual, $message = '')
//@codingStandardsIgnoreEnd
}

/**
* Asserts that an image file has size
* @param string $filename Path to the tested file
* @param int $width Image width
* @param int $height Image height
* @param string $message The failure message that will be appended to the
* generated message
* @return void
*/
public static function assertImageSize($filename, $width, $height, $message = '')
{
self::assertFileExists($filename, $message);
self::assertEquals(array_values(getimagesize($filename))[0], $width);
self::assertEquals(array_values(getimagesize($filename))[1], $height);
}

/**
* Asserts that a file has a MIME content type
* @param string $filename Path to the tested file
* @param string $mime MIME content type, like `text/plain` or `application/octet-stream`
* @param string $expectedMime MIME content type, like `text/plain` or `application/octet-stream`
* @param string $message The failure message that will be appended to the
* generated message
* @return void
*/
public function assertMime($filename, $mime, $message = '')
public function assertFileMime($filename, $expectedMime, $message = '')
{
parent::skipIf(!version_compare(PHP_VERSION, '7.0', '>') &&
in_array($mime, ['image/x-ms-bmp', 'image/vnd.adobe.photoshop']));
in_array($expectedMime, ['image/x-ms-bmp', 'image/vnd.adobe.photoshop']));

self::assertFileExists($filename, $message);
self::assertEquals($mime, mime_content_type($filename), $message);
self::baseAssertFileMime($filename, $expectedMime, $message);
}

/**
Expand Down
2 changes: 1 addition & 1 deletion src/ThumbTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ protected function getDriver()
*/
protected function getExtension($path)
{
$extension = strtolower(pathinfo(explode('?', $path, 2)[0], PATHINFO_EXTENSION));
$extension = get_extension($path);

switch ($extension) {
case 'jpeg':
Expand Down
50 changes: 0 additions & 50 deletions tests/TestCase/TestSuite/TestCaseTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,23 +23,6 @@ class TestCaseTest extends TestCase
{
use ThumbTrait;

/**
* Test for `assertFileExtension()` method
* @ŧest
*/
public function testAssertFileExtension()
{
foreach ([
'jpg' => 'file.jpg',
'jpg' => 'file.JPG',
'jpeg' => 'file.jpeg',
'jpg' => 'path/to/file.jpg',
'jpg' => '/full/path/to/file.jpg',
] as $extension => $filename) {
$this->assertFileExtension($extension, $filename);
}
}

/**
* Test for `assertImageFileEquals()` method
* @ŧest
Expand All @@ -55,39 +38,6 @@ public function testAssertImageFileEquals()
$this->assertImageFileEquals('resize_w200_h200.jpg', $copy);
}

/**
* Test for `assertImageSize()` method
* @ŧest
*/
public function testAssertImageSize()
{
$file = Configure::read(THUMBER . '.comparingDir') . 'resize_w200_h300_noAspectRatio.jpg';

$this->assertImageSize($file, 200, 300);
$this->assertImageSize(
$file,
array_values(getimagesize($file))[0],
array_values(getimagesize($file))[1]
);
}

/**
* Test for `assertMime()` method
* @ŧest
*/
public function testAssertMime()
{
$file = tempnam(TMP, 'test_file.txt');

file_put_contents($file, 'this is a test file');

$this->assertMime($file, mime_content_type($file));
$this->assertMime($file, 'text/plain');

//@codingStandardsIgnoreLine
@unlink($file);
}

/**
* Test for `assertThumbPath()` method
* @ŧest
Expand Down
50 changes: 25 additions & 25 deletions tests/TestCase/Utility/ThumbCreatorOperationsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,17 @@ public function testCrop()
{
$thumb = (new ThumbCreator('400x400.jpg'))->crop(200, 200)->save();
$this->assertImageSize($thumb, 200, 200);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');

//Only width
$thumb = (new ThumbCreator('400x400.jpg'))->crop(200)->save();
$this->assertImageSize($thumb, 200, 200);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');

//In this case, the width will be the original size
$thumb = (new ThumbCreator('400x400.jpg'))->crop(400, 200)->save();
$this->assertImageSize($thumb, 400, 200);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');
}

/**
Expand All @@ -64,7 +64,7 @@ public function testCropXAndY()
{
$thumb = (new ThumbCreator('400x400.jpg'))->crop(200, 200, ['x' => 50, 'y' => 50])->save();
$this->assertImageSize($thumb, 200, 200);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');
}

/**
Expand Down Expand Up @@ -96,11 +96,11 @@ public function testFit()
{
$thumb = (new ThumbCreator('example_pic.jpg'))->fit(200)->save();
$this->assertImageSize($thumb, 200, 200);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');

$thumb = (new ThumbCreator('example_pic.jpg'))->fit(200, 400)->save();
$this->assertImageSize($thumb, 200, 400);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');
}

/**
Expand All @@ -125,7 +125,7 @@ public function testFitPosition()
{
$thumb = (new ThumbCreator('example_pic.jpg'))->fit(200, 200, ['position' => 'top'])->save();
$this->assertImageSize($thumb, 200, 200);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');
}

/**
Expand All @@ -151,17 +151,17 @@ public function testFitUpsize()
//In this case, the thumbnail will keep the original dimensions
$thumb = (new ThumbCreator('400x400.jpg'))->fit(450, 450, ['upsize' => true])->save();
$this->assertImageSize($thumb, 400, 400);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');

//In this case, the thumbnail will exceed the original size
$thumb = (new ThumbCreator('400x400.jpg'))->fit(450, 450, ['upsize' => false])->save();
$this->assertImageSize($thumb, 450, 450);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');

//In this case, the thumbnail will exceed the original size
$thumb = (new ThumbCreator('400x400.jpg'))->fit(null, 450, ['upsize' => false])->save();
$this->assertImageSize($thumb, 450, 450);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');
}

/**
Expand Down Expand Up @@ -202,11 +202,11 @@ public function testResize()
{
$thumb = (new ThumbCreator('400x400.jpg'))->resize(200)->save();
$this->assertImageSize($thumb, 200, 200);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');

$thumb = (new ThumbCreator('400x400.jpg'))->resize(null, 200)->save();
$this->assertImageSize($thumb, 200, 200);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');
}

/**
Expand All @@ -232,12 +232,12 @@ public function testResizeAspectRatio()
//In this case, the thumbnail will keep the ratio
$thumb = (new ThumbCreator('400x400.jpg'))->resize(200, 300, ['aspectRatio' => true])->save();
$this->assertImageSize($thumb, 200, 200);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');

//In this case, the thumbnail will not maintain the ratio
$thumb = (new ThumbCreator('400x400.jpg'))->resize(200, 300, ['aspectRatio' => false])->save();
$this->assertImageSize($thumb, 200, 300);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');
}

/**
Expand Down Expand Up @@ -266,17 +266,17 @@ public function testResizeUpsize()
//In this case, the thumbnail will keep the original dimensions
$thumb = (new ThumbCreator('400x400.jpg'))->resize(450, 450, ['upsize' => true])->save();
$this->assertImageSize($thumb, 400, 400);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');

//In this case, the thumbnail will exceed the original size
$thumb = (new ThumbCreator('400x400.jpg'))->resize(450, 450, ['upsize' => false])->save();
$this->assertImageSize($thumb, 450, 450);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');

//In this case, the thumbnail will exceed the original size
$thumb = (new ThumbCreator('400x400.jpg'))->resize(null, 450, ['upsize' => false])->save();
$this->assertImageSize($thumb, 450, 450);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');
}

/**
Expand Down Expand Up @@ -311,23 +311,23 @@ public function testResizeAspectRatioAndUpsize()
'upsize' => true,
])->save();
$this->assertImageSize($thumb, 400, 400);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');

//In this case, the thumbnail will not keep the ratio and the original dimensions
$thumb = (new ThumbCreator('400x400.jpg'))->resize(500, 600, [
'aspectRatio' => false,
'upsize' => false,
])->save();
$this->assertImageSize($thumb, 500, 600);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');

//In this case, the thumbnail will not keep the ratio and the original dimensions
$thumb = (new ThumbCreator('400x400.jpg'))->resize(null, 600, [
'aspectRatio' => false,
'upsize' => false,
])->save();
$this->assertImageSize($thumb, 400, 600);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');
}

/**
Expand Down Expand Up @@ -378,11 +378,11 @@ public function testResizeCanvas()
{
$thumb = (new ThumbCreator('400x400.jpg'))->resizeCanvas(200, 100)->save();
$this->assertImageSize($thumb, 200, 100);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');

$thumb = (new ThumbCreator('400x400.jpg'))->resizeCanvas(null, 200)->save();
$this->assertImageSize($thumb, 400, 200);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');
}

/**
Expand All @@ -407,7 +407,7 @@ public function testResizeCanvasAnchor()
{
$thumb = (new ThumbCreator('400x400.jpg'))->resizeCanvas(300, 300, ['anchor' => 'bottom'])->save();
$this->assertImageSize($thumb, 300, 300);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');
}

/**
Expand All @@ -429,7 +429,7 @@ public function testResizeCanvasRelativeAndBgcolor()
{
$thumb = (new ThumbCreator('400x400.jpg'))->resizeCanvas(300, 300, ['relative' => true, 'bgcolor' => '#000000'])->save();
$this->assertImageSize($thumb, 700, 700);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');
}

/**
Expand All @@ -452,7 +452,7 @@ public function testSeveralMethods()
{
$thumb = (new ThumbCreator('example_pic.jpg'))->crop(600)->resize(200)->save();
$this->assertImageSize($thumb, 200, 200);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');
}

/**
Expand Down
10 changes: 5 additions & 5 deletions tests/TestCase/Utility/ThumbCreatorSaveTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -50,17 +50,17 @@ public function testSave()
foreach ($extensions as $extension => $expectedMimetype) {
$thumb = (new ThumbCreator('400x400.' . $extension))->resize(200)->save();
$this->assertThumbPath($thumb);
$this->assertMime($thumb, $expectedMimetype);
$this->assertFileMime($thumb, $expectedMimetype);

//Using `format` option
$thumb = (new ThumbCreator('400x400.png'))->resize(200)->save(['format' => $extension]);
$this->assertThumbPath($thumb);
$this->assertMime($thumb, $expectedMimetype);
$this->assertFileMime($thumb, $expectedMimetype);

//Using `target` option
$thumb = (new ThumbCreator('400x400.png'))->resize(200)->save(['target' => 'image.' . $extension]);
$this->assertEquals($this->getPath('image.' . $extension), $thumb);
$this->assertMime($thumb, $expectedMimetype);
$this->assertFileMime($thumb, $expectedMimetype);
}
}

Expand Down Expand Up @@ -143,7 +143,7 @@ public function testSaveWithQuality()
{
$thumb = (new ThumbCreator('400x400.jpg'))->resize(200)->save(['quality' => 10]);
$this->assertThumbPath($thumb);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');
}

/**
Expand Down Expand Up @@ -175,7 +175,7 @@ public function testSaveWithTarget()
{
$thumb = (new ThumbCreator('400x400.jpg'))->resize(200)->save(['target' => 'thumb.jpg']);
$this->assertEquals($this->getPath('thumb.jpg'), $thumb);
$this->assertMime($thumb, 'image/jpeg');
$this->assertFileMime($thumb, 'image/jpeg');
}

/**
Expand Down
2 changes: 1 addition & 1 deletion version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.4.0
1.4.1

0 comments on commit 125ced7

Please sign in to comment.