wp-optimize
/
vendor
/
rosell-dk
/
webp-convert
/
tests
/
Convert
/
Converters
/
AbstractConverterTest.php
AbstractConverterTest.php in WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance 3.2.5, at vendor/rosell-dk/webp-convert/tests/Convert/Converters/AbstractConverterTest.php
| 1 | <?php |
| 2 | |
| 3 | namespace WebPConvert\Tests\Convert\Converters; |
| 4 | |
| 5 | use WebPConvert\Convert\Converters\AbstractConverter; |
| 6 | use WebPConvert\Tests\Convert\Exposers\AbstractConverterExposer; |
| 7 | use WebPConvert\Tests\Convert\TestConverters\ExposedConverter; |
| 8 | use WebPConvert\Tests\Convert\TestConverters\SuccessGuaranteedConverter; |
| 9 | |
| 10 | use PHPUnit\Framework\TestCase; |
| 11 | |
| 12 | class AbstractConverterTest extends TestCase |
| 13 | { |
| 14 | |
| 15 | public static function getImageFolder() |
| 16 | { |
| 17 | return realpath(__DIR__ . '/../../images'); |
| 18 | } |
| 19 | |
| 20 | public static function getImagePath($image) |
| 21 | { |
| 22 | return self::getImageFolder() . '/' . $image; |
| 23 | } |
| 24 | |
| 25 | |
| 26 | public function testConvert() |
| 27 | { |
| 28 | SuccessGuaranteedConverter::convert( |
| 29 | self::getImagePath('test.jpg'), |
| 30 | self::getImagePath('test.webp') |
| 31 | ); |
| 32 | $this->addToAssertionCount(1); |
| 33 | } |
| 34 | |
| 35 | public function testMimeTypeGuesser() |
| 36 | { |
| 37 | |
| 38 | //$this->assertEquals('image/jpeg', ExposedConverter::exposedGetMimeType(self::$imgDir . '/test.jpg')); |
| 39 | //$this->assertEquals('image/png', ExposedConverter::exposedGetMimeType(self::$imgDir . '/test.png')); |
| 40 | //$mimeTypeMaybeDetected = ExposedConverter::exposedGetMimeType(self::$imgDir . '/png-without-extension'); |
| 41 | |
| 42 | $successConverterJpeg = SuccessGuaranteedConverter::createInstance( |
| 43 | self::getImagePath('test.jpg'), |
| 44 | self::getImagePath('test.jpg.webp') |
| 45 | ); |
| 46 | $this->assertEquals('image/jpeg', $successConverterJpeg->getMimeTypeOfSource()); |
| 47 | |
| 48 | $successConverterPng = SuccessGuaranteedConverter::createInstance( |
| 49 | self::getImagePath('test.png'), |
| 50 | self::getImagePath('test.png.webp') |
| 51 | ); |
| 52 | $this->assertEquals('image/png', $successConverterPng->getMimeTypeOfSource()); |
| 53 | |
| 54 | $successConverterPngMaybeDetected = SuccessGuaranteedConverter::createInstance( |
| 55 | self::getImagePath('png-without-extension'), |
| 56 | self::getImagePath('png-without-extension.webp') |
| 57 | ); |
| 58 | |
| 59 | $mimeTypeMaybeDetected = $successConverterPngMaybeDetected->getMimeTypeOfSource(); |
| 60 | |
| 61 | if ($mimeTypeMaybeDetected === false) { |
| 62 | // It was not detected, and that is ok! |
| 63 | // - it is not possible to detect mime type on all platforms. In case it could not be detected, |
| 64 | // - and file extension could not be mapped either, the method returns false. |
| 65 | $this->addToAssertionCount(1); |
| 66 | } else { |
| 67 | $this->assertEquals('image/png', $mimeTypeMaybeDetected); |
| 68 | } |
| 69 | } |
| 70 | |
| 71 | public function testDefaultOptions() |
| 72 | { |
| 73 | $converter = new SuccessGuaranteedConverter( |
| 74 | self::getImagePath('test.jpg'), |
| 75 | self::getImagePath('test.jpg.webp') |
| 76 | ); |
| 77 | |
| 78 | $exposer = new AbstractConverterExposer($converter); |
| 79 | |
| 80 | $defaultOptions = $exposer->getOptions(); |
| 81 | |
| 82 | //$this->assertSame('auto', $defaultOptions['quality']); |
| 83 | $this->assertSame(75, $defaultOptions['quality']); |
| 84 | $this->assertSame(85, $defaultOptions['max-quality']); |
| 85 | $this->assertSame(75, $defaultOptions['default-quality']); |
| 86 | $this->assertSame('none', $defaultOptions['metadata']); |
| 87 | } |
| 88 | |
| 89 | |
| 90 | public function testOptionMerging() |
| 91 | { |
| 92 | $converter = new SuccessGuaranteedConverter( |
| 93 | self::getImagePath('test.jpg'), |
| 94 | self::getImagePath('test.webp'), |
| 95 | [ |
| 96 | 'quality' => 80 |
| 97 | ] |
| 98 | ); |
| 99 | |
| 100 | $exposer = new AbstractConverterExposer($converter); |
| 101 | |
| 102 | //$exposer->prepareOptions(); |
| 103 | |
| 104 | $mergedOptions = $exposer->getOptions(); |
| 105 | |
| 106 | $this->assertSame(80, $mergedOptions['quality']); |
| 107 | } |
| 108 | } |
| 109 |