// 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',
+ ]);
}
/**
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;
$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();