<?php
/**
- * Fake handler for images.
+ * Fake handler for Bitmap images.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* @ingroup Media
*/
-/**
- * Mock handler for images.
- *
- * This is really intended for unit testing.
- *
- * @ingroup Media
- */
class MockBitmapHandler extends BitmapHandler {
-
- /**
- * 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.
- */
function doTransform( $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
-
- $this->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,
- );
+ return MockImageHandler::doFakeTransform( $this, $image, $dstPath, $dstUrl, $params, $flags );
+ }
- # 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" );
+ function doClientImage( $image, $scalerParams ) {
return $this->getClientScalingThumbnailImage( $image, $scalerParams );
- }
-
- return new ThumbnailImage( $image, $dstUrl, false, $params );
}
}