diff options
Diffstat (limited to 'www/wiki/tests/phpunit/includes/media/XCFTest.php')
-rw-r--r-- | www/wiki/tests/phpunit/includes/media/XCFTest.php | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/www/wiki/tests/phpunit/includes/media/XCFTest.php b/www/wiki/tests/phpunit/includes/media/XCFTest.php new file mode 100644 index 00000000..b75335d6 --- /dev/null +++ b/www/wiki/tests/phpunit/includes/media/XCFTest.php @@ -0,0 +1,83 @@ +<?php + +/** + * @group Media + */ +class XCFHandlerTest extends MediaWikiMediaTestCase { + + /** @var XCFHandler */ + protected $handler; + + protected function setUp() { + parent::setUp(); + $this->handler = new XCFHandler(); + } + + /** + * @param string $filename + * @param int $expectedWidth Width + * @param int $expectedHeight Height + * @dataProvider provideGetImageSize + * @covers XCFHandler::getImageSize + */ + public function testGetImageSize( $filename, $expectedWidth, $expectedHeight ) { + $file = $this->dataFile( $filename, 'image/x-xcf' ); + $actual = $this->handler->getImageSize( $file, $file->getLocalRefPath() ); + $this->assertEquals( $expectedWidth, $actual[0] ); + $this->assertEquals( $expectedHeight, $actual[1] ); + } + + public static function provideGetImageSize() { + return [ + [ '80x60-2layers.xcf', 80, 60 ], + [ '80x60-RGB.xcf', 80, 60 ], + [ '80x60-Greyscale.xcf', 80, 60 ], + ]; + } + + /** + * @param string $metadata Serialized metadata + * @param int $expected One of the class constants of XCFHandler + * @dataProvider provideIsMetadataValid + * @covers XCFHandler::isMetadataValid + */ + public function testIsMetadataValid( $metadata, $expected ) { + $actual = $this->handler->isMetadataValid( null, $metadata ); + $this->assertEquals( $expected, $actual ); + } + + public static function provideIsMetadataValid() { + return [ + [ '', XCFHandler::METADATA_BAD ], + [ serialize( [ 'error' => true ] ), XCFHandler::METADATA_GOOD ], + [ false, XCFHandler::METADATA_BAD ], + [ serialize( [ 'colorType' => 'greyscale-alpha' ] ), XCFHandler::METADATA_GOOD ], + ]; + } + + /** + * @param string $filename + * @param string $expected Serialized array + * @dataProvider provideGetMetadata + * @covers XCFHandler::getMetadata + */ + public function testGetMetadata( $filename, $expected ) { + $file = $this->dataFile( $filename, 'image/png' ); + $actual = $this->handler->getMetadata( $file, "$this->filePath/$filename" ); + $this->assertEquals( $expected, $actual ); + } + + public static function provideGetMetadata() { + return [ + [ '80x60-2layers.xcf', + 'a:1:{s:9:"colorType";s:16:"truecolour-alpha";}' + ], + [ '80x60-RGB.xcf', + 'a:1:{s:9:"colorType";s:16:"truecolour-alpha";}' + ], + [ '80x60-Greyscale.xcf', + 'a:1:{s:9:"colorType";s:15:"greyscale-alpha";}' + ], + ]; + } +} |