X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2Fmedia%2FBitmapScalingTest.php;h=92a927f8ec3782163eb1be3add478376e2657aa3;hb=e91875e1eb2e2b3a9b14a56828e1f033a3b47182;hp=c4706bf64449def39051281b5a7f2db2189eca53;hpb=f6c81c1750d38aab484e4dc11c29f67e99cb55f7;p=lhc%2Fweb%2Fwiklou.git diff --git a/tests/phpunit/includes/media/BitmapScalingTest.php b/tests/phpunit/includes/media/BitmapScalingTest.php index c4706bf644..92a927f8ec 100644 --- a/tests/phpunit/includes/media/BitmapScalingTest.php +++ b/tests/phpunit/includes/media/BitmapScalingTest.php @@ -1,20 +1,24 @@ setMwGlobals( array( + $this->setMwGlobals( [ 'wgMaxImageArea' => 1.25e7, // 3500x3500 'wgCustomConvertCommand' => 'dummy', // Set so that we don't get client side rendering - ) ); + ] ); } /** * @dataProvider provideNormaliseParams + * @covers BitmapHandler::normaliseParams */ - function testNormaliseParams( $fileDimensions, $expectedParams, $params, $msg ) { + public function testNormaliseParams( $fileDimensions, $expectedParams, $params, $msg ) { $file = new FakeDimensionFile( $fileDimensions ); $handler = new BitmapHandler; $valid = $handler->normaliseParams( $file, $params ); @@ -23,132 +27,125 @@ class BitmapScalingTest extends MediaWikiTestCase { } public static function provideNormaliseParams() { - return array( + return [ /* Regular resize operations */ - array( - array( 1024, 768 ), - array( + [ + [ 1024, 768 ], + [ 'width' => 512, 'height' => 384, 'physicalWidth' => 512, 'physicalHeight' => 384, - 'page' => 1, - ), - array( 'width' => 512 ), + 'page' => 1, 'interlace' => false, + ], + [ 'width' => 512 ], 'Resizing with width set', - ), - array( - array( 1024, 768 ), - array( + ], + [ + [ 1024, 768 ], + [ 'width' => 512, 'height' => 384, 'physicalWidth' => 512, 'physicalHeight' => 384, - 'page' => 1, - ), - array( 'width' => 512, 'height' => 768 ), + 'page' => 1, 'interlace' => false, + ], + [ 'width' => 512, 'height' => 768 ], 'Resizing with height set too high', - ), - array( - array( 1024, 768 ), - array( + ], + [ + [ 1024, 768 ], + [ 'width' => 512, 'height' => 384, 'physicalWidth' => 512, 'physicalHeight' => 384, - 'page' => 1, - ), - array( 'width' => 1024, 'height' => 384 ), + 'page' => 1, 'interlace' => false, + ], + [ 'width' => 1024, 'height' => 384 ], 'Resizing with height set', - ), + ], /* Very tall images */ - array( - array( 1000, 100 ), - array( + [ + [ 1000, 100 ], + [ 'width' => 5, 'height' => 1, 'physicalWidth' => 5, 'physicalHeight' => 1, - 'page' => 1, - ), - array( 'width' => 5 ), + 'page' => 1, 'interlace' => false, + ], + [ 'width' => 5 ], 'Very wide image', - ), + ], - array( - array( 100, 1000 ), - array( + [ + [ 100, 1000 ], + [ 'width' => 1, 'height' => 10, 'physicalWidth' => 1, 'physicalHeight' => 10, - 'page' => 1, - ), - array( 'width' => 1 ), + 'page' => 1, 'interlace' => false, + ], + [ 'width' => 1 ], 'Very high image', - ), - array( - array( 100, 1000 ), - array( + ], + [ + [ 100, 1000 ], + [ 'width' => 1, 'height' => 5, 'physicalWidth' => 1, 'physicalHeight' => 10, - 'page' => 1, - ), - array( 'width' => 10, 'height' => 5 ), + 'page' => 1, 'interlace' => false, + ], + [ 'width' => 10, 'height' => 5 ], 'Very high image with height set', - ), + ], /* Max image area */ - array( - array( 4000, 4000 ), - array( + [ + [ 4000, 4000 ], + [ 'width' => 5000, 'height' => 5000, 'physicalWidth' => 4000, 'physicalHeight' => 4000, - 'page' => 1, - ), - array( 'width' => 5000 ), + 'page' => 1, 'interlace' => false, + ], + [ 'width' => 5000 ], 'Bigger than max image size but doesn\'t need scaling', - ), - ); + ], + /* Max interlace image area */ + [ + [ 4000, 4000 ], + [ + 'width' => 5000, 'height' => 5000, + 'physicalWidth' => 4000, 'physicalHeight' => 4000, + 'page' => 1, 'interlace' => false, + ], + [ 'width' => 5000, 'interlace' => true ], + 'Interlace bigger than max interlace area', + ], + ]; } - function testTooBigImage() { - $file = new FakeDimensionFile( array( 4000, 4000 ) ); + /** + * @covers BitmapHandler::doTransform + */ + public function testTooBigImage() { + $file = new FakeDimensionFile( [ 4000, 4000 ] ); $handler = new BitmapHandler; - $params = array( 'width' => '3700' ); // Still bigger than max size. - $this->assertEquals( 'TransformParameterError', + $params = [ 'width' => '3700' ]; // Still bigger than max size. + $this->assertEquals( 'TransformTooBigImageAreaError', get_class( $handler->doTransform( $file, 'dummy path', '', $params ) ) ); } - function testTooBigMustRenderImage() { - $file = new FakeDimensionFile( array( 4000, 4000 ) ); + /** + * @covers BitmapHandler::doTransform + */ + public function testTooBigMustRenderImage() { + $file = new FakeDimensionFile( [ 4000, 4000 ] ); $file->mustRender = true; $handler = new BitmapHandler; - $params = array( 'width' => '5000' ); // Still bigger than max size. - $this->assertEquals( 'TransformParameterError', + $params = [ 'width' => '5000' ]; // Still bigger than max size. + $this->assertEquals( 'TransformTooBigImageAreaError', get_class( $handler->doTransform( $file, 'dummy path', '', $params ) ) ); } - function testImageArea() { - $file = new FakeDimensionFile( array( 7, 9 ) ); + /** + * @covers BitmapHandler::getImageArea + */ + public function testImageArea() { + $file = new FakeDimensionFile( [ 7, 9 ] ); $handler = new BitmapHandler; $this->assertEquals( 63, $handler->getImageArea( $file ) ); } } - -class FakeDimensionFile extends File { - public $mustRender = false; - - public function __construct( $dimensions ) { - parent::__construct( Title::makeTitle( NS_FILE, 'Test' ), - new NullRepo( null ) ); - - $this->dimensions = $dimensions; - } - - public function getWidth( $page = 1 ) { - return $this->dimensions[0]; - } - - public function getHeight( $page = 1 ) { - return $this->dimensions[1]; - } - - public function mustRender() { - return $this->mustRender; - } - - public function getPath() { - return ''; - } -}