/**
  * @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");
 }