@ -238,22 +238,70 @@ class UtilTest extends \Test\TestCase {
public function testAddScript() {
\OCP\Util::addScript('core', 'myFancyJSFile1');
\OCP\Util::addScript('files', 'myFancyJSFile2', 'core');
\OCP\Util::addScript('myApp5', 'myApp5JSFile', 'myApp2');
\OCP\Util::addScript('myApp', 'myFancyJSFile3');
\OCP\Util::addScript('core', 'myFancyJSFile4');
// after itself
\OCP\Util::addScript('core', 'myFancyJSFile5', 'core');
// add duplicate
\OCP\Util::addScript('core', 'myFancyJSFile1');
$this->assertEquals([
// dependency chain
\OCP\Util::addScript('myApp4', 'myApp4JSFile', 'myApp3');
\OCP\Util::addScript('myApp3', 'myApp3JSFile', 'myApp2');
\OCP\Util::addScript('myApp2', 'myApp2JSFile', 'myApp');
// Core should appear first
$this->assertEquals(
0,
array_search('core/js/myFancyJSFile1', \OCP\Util::getScripts(), true)
);
$this->assertEquals(
1,
array_search('core/js/myFancyJSFile4', \OCP\Util::getScripts(), true)
);
// Dependencies should appear before their children
$this->assertLessThan(
array_search('files/js/myFancyJSFile2', \OCP\Util::getScripts(), true),
array_search('core/js/myFancyJSFile3', \OCP\Util::getScripts(), true)
);
$this->assertLessThan(
array_search('myApp2/js/myApp2JSFile', \OCP\Util::getScripts(), true),
array_search('myApp/js/myFancyJSFile3', \OCP\Util::getScripts(), true)
);
$this->assertLessThan(
array_search('myApp3/js/myApp3JSFile', \OCP\Util::getScripts(), true),
array_search('myApp2/js/myApp2JSFile', \OCP\Util::getScripts(), true)
);
$this->assertLessThan(
array_search('myApp4/js/myApp4JSFile', \OCP\Util::getScripts(), true),
array_search('myApp3/js/myApp3JSFile', \OCP\Util::getScripts(), true)
);
$this->assertLessThan(
array_search('myApp5/js/myApp5JSFile', \OCP\Util::getScripts(), true),
array_search('myApp2/js/myApp2JSFile', \OCP\Util::getScripts(), true)
);
// No duplicates
$this->assertEquals(
\OCP\Util::getScripts(),
array_unique(\OCP\Util::getScripts())
);
// All scripts still there
$scripts = [
'core/js/myFancyJSFile1',
'core/js/myFancyJSFile4',
'files/js/myFancyJSFile2',
'core/js/myFancyJSFile5',
'files/l10n/en',
'myApp/l10n/en',
'myApp/js/myFancyJSFile3',
], array_values(\OCP\Util::getScripts()));
'myApp2/js/myApp2JSFile',
'myApp3/js/myApp3JSFile',
'myApp4/js/myApp4JSFile',
];
foreach ($scripts as $script) {
$this->assertContains($script, \OCP\Util::getScripts());
}
}
public function testAddVendorScript() {