/** * @desc Returns thumbnail's new URL * * @param String $thumbUrl original thumb's URL * @param String $newExtension desired file extension (format). One of: EXT_JPG, EXT_JPEG, EXT_PNG, EXT_GIF * * @return String new URL */ public static function overrideThumbnailFormat($thumbUrl, $newExtension) { if (empty($thumbUrl) || !self::isValidThumbOverrideFormat($newExtension)) { return $thumbUrl; } if (VignetteRequest::isVignetteUrl($thumbUrl)) { $vignetteUrl = VignetteRequest::setThumbnailFormat($thumbUrl, $newExtension); if ($vignetteUrl) { return $vignetteUrl; } } if (!self::imageUrlHasExtension($thumbUrl, $newExtension) && !self::isDataTagImage($thumbUrl)) { $thumbUrl .= $newExtension; } return $thumbUrl; }
public function testSetThumbnailFormat() { $this->mockGlobalVariable('wgVignetteUrl', $this->vignetteUrl); $this->assertEquals(VignetteRequest::setThumbnailFormat("{$this->vignetteUrl}/tests/images/a/ab/SomeFile.jpg/revision/latest/scale-to-width/100?cb=12345", ImagesService::EXT_PNG), "{$this->vignetteUrl}/tests/images/a/ab/SomeFile.jpg/revision/latest/scale-to-width/100?cb=12345&format=png"); $this->assertEquals(VignetteRequest::setThumbnailFormat("{$this->vignetteUrl}/tests/images/a/ab/SomeFile.jpg/revision/latest/scale-to-width/100", ".png"), "{$this->vignetteUrl}/tests/images/a/ab/SomeFile.jpg/revision/latest/scale-to-width/100?format=png"); }