wine/dlls/mshtml/tests/exectest.html

140 lines
3.9 KiB
HTML

<html>
<body>
Script execution test
<div id="b1"></div>
<div id="b2"></div>
<div id="b3"></div>
<script id="emptyscript"></script>
<script id="put_text_script">2+2</script>
<script>
function ok(b, msg) {
return external.ok(b, msg);
}
var executed = false;
var extern_cnt = 0;
var exec_cnt;
function testWriteScript() {
var len = document.getElementsByTagName('div').length;
ok(len === 3, "init length = " + len);
document.write("<script>"
+ "var len = document.getElementsByTagName('div').length;"
+ "ok(len === 3, 'unexpected length ' + len);"
+ "executed = true;"
+ "<" + "/script>");
len = document.getElementsByTagName('script').length;
ok(len === 4, "script col length = " + len);
ok(executed, "written script not executed");
}
function testPutSrc() {
var elem = document.getElementById("emptyscript");
ok(extern_cnt === 0, "extern_cnt = " + extern_cnt + " expected 0");
elem.src = "externscr.js";
ok(extern_cnt === 0, "extern_cnt = " + extern_cnt + " expected 0");
}
function testPutText() {
var elem = document.getElementById("put_text_script");
exec_cnt = 0;
elem.text = "exec_cnt++;";
ok(exec_cnt === 1, "put_text_script exec_cnt " + exec_cnt);
exec_cnt = 0;
elem.text = "exec_cnt++;";
ok(exec_cnt === 1, "put_text_script exec_cnt " + exec_cnt);
}
try {
testWriteScript();
testPutSrc();
testPutText();
}catch(e) {
ok(false, "Got an exception");
}
function testPutSrc2() {
var elem, elem2;
elem = document.createElement("script");
elem.src = "externscr.js";
ok(extern_cnt === 1, "extern_cnt = " + extern_cnt + " expected 1");
document.body.appendChild(elem);
ok(extern_cnt === 2, "extern_cnt = " + extern_cnt + " expected 2");
elem = document.createElement("script");
document.body.appendChild(elem);
ok(extern_cnt === 2, "extern_cnt = " + extern_cnt + " expected 2");
elem.src = "externscr.js";
ok(extern_cnt === 3, "extern_cnt = " + extern_cnt + " expected 3");
elem2 = document.createElement("div");
elem = document.createElement("script");
elem.src = "externscr.js";
ok(extern_cnt === 3, "extern_cnt = " + extern_cnt + " expected 3");
elem2.appendChild(elem);
document.body.appendChild(elem2);
ok(extern_cnt === 4, "extern_cnt = " + extern_cnt + " expected 4");
}
function testPutText2() {
var elem;
elem = document.createElement("script");
exec_cnt = 0;
elem.text = "exec_cnt++;";
ok(exec_cnt === 0, "script exec_cnt " + exec_cnt);
document.body.appendChild(elem);
ok(exec_cnt === 1, "script exec_cnt " + exec_cnt);
exec_cnt = 0;
elem.text = "exec_cnt++;";
ok(exec_cnt === 1, "script exec_cnt " + exec_cnt);
elem.src = "externscr.js";
ok(extern_cnt === 5, "extern_cnt = " + extern_cnt + " expected 5");
exec_cnt = 0;
ok(extern_cnt === 5, "> extern_cnt = " + extern_cnt + " expected 5");
elem.text = "exec_cnt++;"; /* forces evaluation, but src will be executed */
ok(exec_cnt === 0, "script exec_cnt " + exec_cnt);
ok(extern_cnt === 6, "< extern_cnt = " + extern_cnt + " expected 6");
elem = document.createElement("script");
exec_cnt = 0;
elem.text = "exec_cnt++;";
ok(exec_cnt === 0, "script exec_cnt " + exec_cnt);
elem.src = "externscr.js";
ok(extern_cnt === 6, "extern_cnt = " + extern_cnt + " expected 6");
document.body.appendChild(elem);
ok(exec_cnt === 0, "script exec_cnt " + exec_cnt);
ok(extern_cnt === 7, "extern_cnt = " + extern_cnt + " expected 7");
}
document.body.onload = function() {
ok(extern_cnt === 1, "extern_cnt = " + extern_cnt);
try {
testPutSrc2();
testPutText2();
}catch(e) {
ok(false, "got an exception");
}
external.reportSuccess();
}
</script>
<script>
ok(extern_cnt === 1, "extern_cnt = " + extern_cnt);
</script>
<div id="a1"></div>
<div id="a2"></div>
<div id="b3"></div>
</body>
</html>