private $extension;
/**
- * @param string $name Image name
- * @param string $module Module name
+ * @param string $name Self-name of the image as known to ResourceLoaderImageModule.
+ * @param string $module Self-name of the module containing this image.
+ * Used to find the image in the registry e.g. through a load.php url.
* @param string|array $descriptor Path to image file, or array structure containing paths
* @param string $basePath Directory to which paths in descriptor refer
* @param array $variants
* @param string $script URL to load.php
* @param string|null $variant Variant to get the URL for
* @param string $format Format to get the URL for, 'original' or 'rasterized'
- * @return string
+ * @return string URL
*/
public function getUrl( ResourceLoaderContext $context, $script, $variant, $format ) {
$query = [
}
// The following parameters are at the end to keep the original order of the parameters.
$query['skin'] = $context->getSkin();
- $query['version'] = $context->getVersion();
+ $rl = $context->getResourceLoader();
+ $query['version'] = $rl->makeVersionQuery( $context, [ $this->getModule() ] );
return wfAppendQuery( $script, $query );
}
}
/**
+ * This method must not be used by getDefinitionSummary as doing so would cause
+ * an infinite loop (we use ResourceLoaderImage::getUrl below which calls
+ * Module:getVersionHash, which calls Module::getDefinitionSummary).
+ *
* @param ResourceLoaderContext $context
* @param ResourceLoaderImage $image Image to get the style for
* @param string $script URL to load.php
/**
* @group ResourceLoader
+ * @covers ResourceLoaderImage
*/
class ResourceLoaderImageTest extends MediaWikiUnitTestCase {
}
/**
- * @covers ResourceLoaderImage::getPath
* @dataProvider provideGetPath
*/
public function testGetPath( $imageName, $languageCode, $path ) {
$this->assertEquals( $image->getPath( $context ), $this->imagesPath . '/' . $path );
}
- /**
- * @covers ResourceLoaderImage::getExtension
- * @covers ResourceLoaderImage::getMimeType
- */
public function testGetExtension() {
$image = $this->getTestImage( 'def' );
$this->assertEquals( $image->getExtension(), 'svg' );
$this->assertEquals( $image->getExtension( 'rasterized' ), 'gif' );
}
- /**
- * @covers ResourceLoaderImage::getImageData
- * @covers ResourceLoaderImage::variantize
- * @covers ResourceLoaderImage::massageSvgPathdata
- */
public function testGetImageData() {
$context = $this->createMock( ResourceLoaderContext::class );
$this->assertEquals( $image->getImageData( $context, null, 'rasterized' ), $data );
}
- /**
- * @covers ResourceLoaderImage::massageSvgPathdata
- */
public function testMassageSvgPathdata() {
$image = $this->getTestImage( 'ghi' );
$data = file_get_contents( $this->imagesPath . '/ghi.svg' );