2
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2025-09-05 08:59:27 +08:00

always loadScript with a script tag (#6411)

to avoid Content Security Policy unsafe-line violations
This commit is contained in:
Kyle Zhao 2018-10-01 10:06:01 +08:00 committed by GitHub
parent 38b48997fc
commit 373d6e3fe6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 34 additions and 24 deletions

View file

@ -0,0 +1,24 @@
import loadScript from "discourse/lib/load-script";
QUnit.module("lib:load-script");
QUnit.test(
"load with a script tag, and callbacks are only executed after script is loaded",
async assert => {
const src = "/javascripts/ace/ace.js";
await loadScript(src).then(() => {
assert.ok(
typeof ace !== "undefined",
"callbacks should only be executed after the script has fully loaded"
);
// cannot use the `find` test helper here because the script tag is injected outside of the test sandbox frame
const scriptTags = Array.from(document.getElementsByTagName("script"));
assert.ok(
scriptTags.some(scriptTag => scriptTag.src.includes(src)),
"the script should be loaded with a script tag"
);
});
}
);

View file

@ -52,7 +52,6 @@ window.MessageBus.stop();
// Trick JSHint into allow document.write
var d = document;
d.write('<script src="/javascripts/ace/ace.js"></script>');
d.write(
'<div id="ember-testing-container"><div id="ember-testing"></div></div>'
);