Jacek Caban : mshtml: Added IHTMLScriptElement::put_src tests.
Alexandre Julliard
julliard at winehq.org
Tue Oct 16 15:27:47 CDT 2012
Module: wine
Branch: master
Commit: bfd25b4f50ade3ce56eabdfc3bc6617f7dc2bc52
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bfd25b4f50ade3ce56eabdfc3bc6617f7dc2bc52
Author: Jacek Caban <jacek at codeweavers.com>
Date: Tue Oct 16 17:10:11 2012 +0200
mshtml: Added IHTMLScriptElement::put_src tests.
---
dlls/mshtml/tests/exectest.html | 78 +++++++++++++++++++++++++++++++++-----
dlls/mshtml/tests/externscr.js | 1 +
dlls/mshtml/tests/rsrc.rc | 3 +
3 files changed, 71 insertions(+), 11 deletions(-)
diff --git a/dlls/mshtml/tests/exectest.html b/dlls/mshtml/tests/exectest.html
index ad94f42..e1e73f6 100644
--- a/dlls/mshtml/tests/exectest.html
+++ b/dlls/mshtml/tests/exectest.html
@@ -4,26 +4,82 @@ Script execution test
<div id="b1"></div>
<div id="b2"></div>
<div id="b3"></div>
+<script id="emptyscript"></script>
<script>
function ok(b, msg) {
return external.ok(b, msg);
}
var executed = false;
-var len = document.getElementsByTagName('div').length;
-ok(len === 3, "init length = " + len);
+var extern_cnt = 0;
-document.write("<script>"
- + "var len = document.getElementsByTagName('div').length;"
- + "ok(len === 3, 'unexpected length ' + len);"
- + "executed = true;"
- + "<" + "/script>");
+function testWriteScript() {
+ var len = document.getElementsByTagName('div').length;
+ ok(len === 3, "init length = " + len);
-len = document.getElementsByTagName('script').length;
-ok(len === 2, "script col length = " + len);
-ok(executed, "written script not executed");
+ document.write("<script>"
+ + "var len = document.getElementsByTagName('div').length;"
+ + "ok(len === 3, 'unexpected length ' + len);"
+ + "executed = true;"
+ + "<" + "/script>");
-external.reportSuccess();
+ len = document.getElementsByTagName('script').length;
+ ok(len === 3, "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");
+}
+
+try {
+ testWriteScript();
+ testPutSrc();
+}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");
+}
+
+document.body.onload = function() {
+ ok(extern_cnt === 1, "extern_cnt = " + extern_cnt);
+ try {
+ testPutSrc2();
+ }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>
diff --git a/dlls/mshtml/tests/externscr.js b/dlls/mshtml/tests/externscr.js
new file mode 100644
index 0000000..5861363
--- /dev/null
+++ b/dlls/mshtml/tests/externscr.js
@@ -0,0 +1 @@
+extern_cnt++;
diff --git a/dlls/mshtml/tests/rsrc.rc b/dlls/mshtml/tests/rsrc.rc
index 2b91edf..49aecdf 100644
--- a/dlls/mshtml/tests/rsrc.rc
+++ b/dlls/mshtml/tests/rsrc.rc
@@ -28,5 +28,8 @@ vbtest.html HTML "vbtest.html"
/* @makedep: events.html */
events.html HTML "events.html"
+/* @makedep: externscr.js */
+externscr.js HTML "externscr.js"
+
/* @makedep: test_tlb.tlb */
1 TYPELIB test_tlb.tlb
More information about the wine-cvs
mailing list