mirror of
https://github.com/nextcloud/server.git
synced 2026-02-19 02:38:40 -05:00
Merge pull request #38207 from nextcloud/fix/jsresourcelocator-l10n-handling
This commit is contained in:
commit
174c226c28
2 changed files with 38 additions and 9 deletions
|
|
@ -99,21 +99,28 @@ class JSResourceLocator extends ResourceLocator {
|
|||
// gets turned into cwd.
|
||||
$app_path = realpath($app_path);
|
||||
|
||||
// missing translations files will be ignored
|
||||
if (strpos($script, 'l10n/') === 0) {
|
||||
$this->appendScriptIfExist($app_path, $script, $app_url);
|
||||
// check combined files
|
||||
if ($this->cacheAndAppendCombineJsonIfExist($app_path, $script.'.json', $app)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!$this->cacheAndAppendCombineJsonIfExist($app_path, $script.'.json', $app)) {
|
||||
$this->appendScriptIfExist($app_path, $script, $app_url);
|
||||
// fallback to plain file location
|
||||
if ($this->appendScriptIfExist($app_path, $script, $app_url)) {
|
||||
return;
|
||||
}
|
||||
} catch (AppPathNotFoundException) {
|
||||
$this->logger->error('Could not find resource {resource} to load', [
|
||||
'resource' => $app . '/' . $script . '.js',
|
||||
'app' => 'jsresourceloader',
|
||||
]);
|
||||
// pass (general error handling happens below)
|
||||
}
|
||||
|
||||
// missing translations files will be ignored
|
||||
if (strpos($script, 'l10n/') === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->logger->error('Could not find resource {resource} to load', [
|
||||
'resource' => $app . '/' . $script . '.js',
|
||||
'app' => 'jsresourceloader',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ namespace Test\Template;
|
|||
use OC\SystemConfig;
|
||||
use OC\Template\JSCombiner;
|
||||
use OC\Template\JSResourceLocator;
|
||||
use OCP\App\AppPathNotFoundException;
|
||||
use OCP\App\IAppManager;
|
||||
use OCP\Files\IAppData;
|
||||
use OCP\ICacheFactory;
|
||||
|
|
@ -139,6 +140,27 @@ class JSResourceLocatorTest extends \Test\TestCase {
|
|||
$this->rrmdir($new_apps_path);
|
||||
}
|
||||
|
||||
public function testNotExistingTranslationHandledSilent() {
|
||||
$this->appManager->expects($this->once())
|
||||
->method('getAppPath')
|
||||
->with('core')
|
||||
->willThrowException(new AppPathNotFoundException());
|
||||
$this->appManager->expects($this->once())
|
||||
->method('getAppWebPath')
|
||||
->with('core')
|
||||
->willThrowException(new AppPathNotFoundException());
|
||||
// Assert logger is not called
|
||||
$this->logger->expects($this->never())
|
||||
->method('error');
|
||||
|
||||
// Run the tests
|
||||
$locator = $this->jsResourceLocator();
|
||||
$locator->find(["core/l10n/en.js"]);
|
||||
|
||||
$resources = $locator->getResources();
|
||||
$this->assertCount(0, $resources);
|
||||
}
|
||||
|
||||
public function testFindModuleJSWithFallback() {
|
||||
// First create new apps path, and a symlink to it
|
||||
$apps_dirname = $this->randomString();
|
||||
|
|
|
|||
Loading…
Reference in a new issue