/** * @param string $vignetteResult * @param string $legacyDefinition * @dataProvider legacyThumbDefinitions */ public function testApplyLegacyThumbDefinition($vignetteResult, $legacyDefinition) { $this->mockGlobalVariable('wgVignetteUrl', $this->vignetteUrl); $baseUrl = "{$this->vignetteUrl}/tests/images/a/ab/filename.jpg/revision/latest"; $generator = VignetteRequest::fromConfigMap(['relative-path' => 'a/ab/filename.jpg', 'bucket' => 'tests', 'timestamp' => '123', 'domain-shard-count' => 1]); $actual = VignetteRequest::applyLegacyThumbDefinition($generator, $legacyDefinition)->url(); $this->assertEquals("{$baseUrl}/{$vignetteResult}", $actual); }
/** * Get a URL to access the thumbnail * This is required because the model of how files work requires that * the thumbnail urls be predictable. However, in our model the URL is not based on the filename * (that's hidden in the db) * Wikia change: * Use our external thumbnailer for UploadStashFiles * We need to look into temp directory while upload stash is saving file there * * @param String $suffix string that will be added at the end of path * @return String: URL to access thumbnail, or URL with partial path */ public function getThumbUrl($suffix = false) { global $wgEnableVignette; if ($wgEnableVignette) { $generator = VignetteRequest::applyLegacyThumbDefinition($this->getUrlGenerator(), $suffix); $path = $generator->url(); } else { $path = $this->repo->getZoneUrl('thumb') . '/temp/' . $this->getUrlRel(); if ($suffix !== false) { $path .= '/' . rawurlencode($suffix); } } return $path; }