From 64db7068c2b5a6a1df2726c630f77e682b3a12ed Mon Sep 17 00:00:00 2001 From: addshore Date: Fri, 15 Nov 2013 23:48:36 +0100 Subject: [PATCH] Split mocks/media/MockBitmaphandler file Change-Id: Idc231e8fd1f1ad1e4173e7c0bddfbec4efaad96b --- tests/TestsAutoLoader.php | 4 +- .../phpunit/mocks/media/MockBitmapHandler.php | 64 +-------------- .../phpunit/mocks/media/MockImageHandler.php | 79 +++++++++++++++++++ tests/phpunit/mocks/media/MockSvgHandler.php | 28 +++++++ 4 files changed, 111 insertions(+), 64 deletions(-) create mode 100644 tests/phpunit/mocks/media/MockImageHandler.php create mode 100644 tests/phpunit/mocks/media/MockSvgHandler.php diff --git a/tests/TestsAutoLoader.php b/tests/TestsAutoLoader.php index dec8e22dd1..46a894cea9 100644 --- a/tests/TestsAutoLoader.php +++ b/tests/TestsAutoLoader.php @@ -89,8 +89,8 @@ $wgAutoloadClasses += array( 'MockFSFile' => "$testDir/phpunit/mocks/filebackend/MockFSFile.php", 'MockFileBackend' => "$testDir/phpunit/mocks/filebackend/MockFileBackend.php", 'MockBitmapHandler' => "$testDir/phpunit/mocks/media/MockBitmapHandler.php", - 'MockImageHandler' => "$testDir/phpunit/mocks/media/MockBitmapHandler.php", - 'MockSvgHandler' => "$testDir/phpunit/mocks/media/MockBitmapHandler.php", + 'MockImageHandler' => "$testDir/phpunit/mocks/media/MockImageHandler.php", + 'MockSvgHandler' => "$testDir/phpunit/mocks/media/MockSvgHandler.php", # tests/phpunit/languages 'LanguageClassesTestCase' => "$testDir/phpunit/languages/LanguageClassesTestCase.php", diff --git a/tests/phpunit/mocks/media/MockBitmapHandler.php b/tests/phpunit/mocks/media/MockBitmapHandler.php index 742b41e4dd..38cacf9f2e 100644 --- a/tests/phpunit/mocks/media/MockBitmapHandler.php +++ b/tests/phpunit/mocks/media/MockBitmapHandler.php @@ -1,6 +1,6 @@ getClientScalingThumbnailImage( $image, $scalerParams ); } } -class MockSvgHandler extends SvgHandler { - function doTransform( $image, $dstPath, $dstUrl, $params, $flags = 0 ) { - return MockImageHandler::doFakeTransform( $this, $image, $dstPath, $dstUrl, $params, $flags ); - } -} -/** - * Mock handler for images. - * - * This is really intended for unit testing. - * - * @ingroup Media - */ -class MockImageHandler { - - /** - * Override BitmapHandler::doTransform() making sure we do not generate - * a thumbnail at all. That is merely returning a ThumbnailImage that - * will be consumed by the unit test. There is no need to create a real - * thumbnail on the filesystem. - */ - static function doFakeTransform( $that, $image, $dstPath, $dstUrl, $params, $flags = 0 ) { - # Example of what we receive: - # $image: LocalFile - # $dstPath: /tmp/transform_7d0a7a2f1a09-1.jpg - # $dstUrl : http://example.com/images/thumb/0/09/Bad.jpg/320px-Bad.jpg - # $params: width: 320, descriptionUrl http://trunk.dev/wiki/File:Bad.jpg - - $that->normaliseParams( $image, $params ); - - $scalerParams = array( - # The size to which the image will be resized - 'physicalWidth' => $params['physicalWidth'], - 'physicalHeight' => $params['physicalHeight'], - 'physicalDimensions' => "{$params['physicalWidth']}x{$params['physicalHeight']}", - # The size of the image on the page - 'clientWidth' => $params['width'], - 'clientHeight' => $params['height'], - # Comment as will be added to the EXIF of the thumbnail - 'comment' => isset( $params['descriptionUrl'] ) ? - "File source: {$params['descriptionUrl']}" : '', - # Properties of the original image - 'srcWidth' => $image->getWidth(), - 'srcHeight' => $image->getHeight(), - 'mimeType' => $image->getMimeType(), - 'dstPath' => $dstPath, - 'dstUrl' => $dstUrl, - ); - - # In some cases, we do not bother generating a thumbnail. - if ( !$image->mustRender() && - $scalerParams['physicalWidth'] == $scalerParams['srcWidth'] - && $scalerParams['physicalHeight'] == $scalerParams['srcHeight'] - ) { - wfDebug( __METHOD__ . ": returning unscaled image\n" ); - // getClientScalingThumbnailImage is protected - return $that->doClientImage( $image, $scalerParams ); - } - - return new ThumbnailImage( $image, $dstUrl, false, $params ); - } -} diff --git a/tests/phpunit/mocks/media/MockImageHandler.php b/tests/phpunit/mocks/media/MockImageHandler.php new file mode 100644 index 0000000000..b2f7facf10 --- /dev/null +++ b/tests/phpunit/mocks/media/MockImageHandler.php @@ -0,0 +1,79 @@ +normaliseParams( $image, $params ); + + $scalerParams = array( + # The size to which the image will be resized + 'physicalWidth' => $params['physicalWidth'], + 'physicalHeight' => $params['physicalHeight'], + 'physicalDimensions' => "{$params['physicalWidth']}x{$params['physicalHeight']}", + # The size of the image on the page + 'clientWidth' => $params['width'], + 'clientHeight' => $params['height'], + # Comment as will be added to the EXIF of the thumbnail + 'comment' => isset( $params['descriptionUrl'] ) ? + "File source: {$params['descriptionUrl']}" : '', + # Properties of the original image + 'srcWidth' => $image->getWidth(), + 'srcHeight' => $image->getHeight(), + 'mimeType' => $image->getMimeType(), + 'dstPath' => $dstPath, + 'dstUrl' => $dstUrl, + ); + + # In some cases, we do not bother generating a thumbnail. + if ( !$image->mustRender() && + $scalerParams['physicalWidth'] == $scalerParams['srcWidth'] + && $scalerParams['physicalHeight'] == $scalerParams['srcHeight'] + ) { + wfDebug( __METHOD__ . ": returning unscaled image\n" ); + // getClientScalingThumbnailImage is protected + return $that->doClientImage( $image, $scalerParams ); + } + + return new ThumbnailImage( $image, $dstUrl, false, $params ); + } +} diff --git a/tests/phpunit/mocks/media/MockSvgHandler.php b/tests/phpunit/mocks/media/MockSvgHandler.php new file mode 100644 index 0000000000..21520c4455 --- /dev/null +++ b/tests/phpunit/mocks/media/MockSvgHandler.php @@ -0,0 +1,28 @@ +