Files
pjax/tests/lib/eval-scripts.js

50 lines
1.2 KiB
JavaScript
Raw Normal View History

2019-03-03 01:37:45 -05:00
var tape = require("tape");
2014-05-04 08:44:18 +02:00
2019-03-03 01:37:45 -05:00
var evalScript = require("../../lib/eval-script");
2014-05-04 08:44:18 +02:00
tape("test evalScript method", function(t) {
2019-03-03 01:37:45 -05:00
document.body.className = "";
2014-05-04 08:44:18 +02:00
2019-03-03 01:37:45 -05:00
var script = document.createElement("script");
script.innerHTML = "document.body.className = 'executed'";
2014-05-04 08:44:18 +02:00
2019-03-03 01:37:45 -05:00
t.equal(document.body.className, "", "script hasn't been executed yet");
2014-05-04 08:44:18 +02:00
2019-03-03 01:37:45 -05:00
evalScript(script);
t.equal(
document.body.className,
"executed",
"script has been properly executed"
);
2014-05-04 08:44:18 +02:00
2019-03-03 01:37:45 -05:00
script.innerHTML = "document.write('failure')";
var bodyText = "document.write hasn't been executed";
document.body.text = bodyText;
evalScript(script);
t.equal(document.body.text, bodyText, "document.write hasn't been executed");
t.end();
2019-03-03 01:37:45 -05:00
});
tape(
"evalScript should not throw an error if the script removed itself",
function(t) {
var script = document.createElement("script");
script.id = "myScript";
script.innerHTML =
"const script = document.querySelector('#myScript');" +
"script.parentNode.removeChild(script);";
try {
evalScript(script);
t.pass("Missing script tested successfully");
} catch (e) {
console.error(e);
t.fail("Attempted to remove missing script");
}
t.end();
}
);