harmony 0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. data/.gitignore +5 -0
  2. data/LICENSE +19 -0
  3. data/Manifest +117 -0
  4. data/README.md +155 -0
  5. data/Rakefile +39 -0
  6. data/docs.watchr +25 -0
  7. data/harmony.gemspec +18 -0
  8. data/lib/harmony.rb +5 -0
  9. data/lib/harmony/page.rb +123 -0
  10. data/specs.watchr +36 -0
  11. data/test/harmony_test.rb +8 -0
  12. data/test/page_test.rb +73 -0
  13. data/test/test_helper.rb +13 -0
  14. data/vendor/README +1 -0
  15. data/vendor/envjs/README +36 -0
  16. data/vendor/envjs/bin/envjsrb +255 -0
  17. data/vendor/envjs/bin/jquery-1.2.6-test.js +33 -0
  18. data/vendor/envjs/bin/jquery-1.3.1-test.js +33 -0
  19. data/vendor/envjs/bin/jquery-1.3.2-test.js +106 -0
  20. data/vendor/envjs/bin/prototype-1.6.0.3-test.js +82 -0
  21. data/vendor/envjs/bin/prototype_1.6.0.3_tmpl.txt +27 -0
  22. data/vendor/envjs/bin/test-jquery.sh +58 -0
  23. data/vendor/envjs/bin/test-prototype.sh +54 -0
  24. data/vendor/envjs/bin/tidy +0 -0
  25. data/vendor/envjs/lib/envjs.rb +23 -0
  26. data/vendor/envjs/lib/envjs/env.js +21665 -0
  27. data/vendor/envjs/lib/envjs/net.rb +3 -0
  28. data/vendor/envjs/lib/envjs/net/cgi.rb +94 -0
  29. data/vendor/envjs/lib/envjs/net/file.rb +75 -0
  30. data/vendor/envjs/lib/envjs/options.rb +11 -0
  31. data/vendor/envjs/lib/envjs/runtime.rb +351 -0
  32. data/vendor/envjs/lib/envjs/tempfile.rb +24 -0
  33. data/vendor/envjs/test/base64.js +80 -0
  34. data/vendor/envjs/test/call-load-test.js +15 -0
  35. data/vendor/envjs/test/data.js +45 -0
  36. data/vendor/envjs/test/debug.js +53 -0
  37. data/vendor/envjs/test/firebug/errorIcon.png +0 -0
  38. data/vendor/envjs/test/firebug/firebug.css +209 -0
  39. data/vendor/envjs/test/firebug/firebug.html +23 -0
  40. data/vendor/envjs/test/firebug/firebug.js +672 -0
  41. data/vendor/envjs/test/firebug/firebugx.js +10 -0
  42. data/vendor/envjs/test/firebug/infoIcon.png +0 -0
  43. data/vendor/envjs/test/firebug/warningIcon.png +0 -0
  44. data/vendor/envjs/test/fixtures/html/events.html +171 -0
  45. data/vendor/envjs/test/fixtures/html/iframe1.html +46 -0
  46. data/vendor/envjs/test/fixtures/html/iframe1a.html +46 -0
  47. data/vendor/envjs/test/fixtures/html/iframe2.html +45 -0
  48. data/vendor/envjs/test/fixtures/html/iframe3.html +28 -0
  49. data/vendor/envjs/test/fixtures/html/iframeN.html +57 -0
  50. data/vendor/envjs/test/fixtures/html/malformed.html +181 -0
  51. data/vendor/envjs/test/fixtures/html/scope.html +81 -0
  52. data/vendor/envjs/test/fixtures/html/trivial.html +19 -0
  53. data/vendor/envjs/test/fixtures/html/with_js.html +26 -0
  54. data/vendor/envjs/test/fixtures/images/icon-blue.png +0 -0
  55. data/vendor/envjs/test/fixtures/js/external_script.js +1 -0
  56. data/vendor/envjs/test/fixtures/js/script.js +1 -0
  57. data/vendor/envjs/test/fixtures/js/script_error.js +2 -0
  58. data/vendor/envjs/test/html/events.html +171 -0
  59. data/vendor/envjs/test/html/iframe1.html +46 -0
  60. data/vendor/envjs/test/html/iframe1a.html +46 -0
  61. data/vendor/envjs/test/html/iframe2.html +45 -0
  62. data/vendor/envjs/test/html/iframe3.html +30 -0
  63. data/vendor/envjs/test/html/iframeN.html +57 -0
  64. data/vendor/envjs/test/html/malformed.html +181 -0
  65. data/vendor/envjs/test/html/scope.html +87 -0
  66. data/vendor/envjs/test/html/script.js +1 -0
  67. data/vendor/envjs/test/html/trivial.html +19 -0
  68. data/vendor/envjs/test/html/with_js.html +26 -0
  69. data/vendor/envjs/test/index.html +328 -0
  70. data/vendor/envjs/test/java-prototype.js +9 -0
  71. data/vendor/envjs/test/primary-tests.js +24 -0
  72. data/vendor/envjs/test/prototype-test.js +13 -0
  73. data/vendor/envjs/test/qunit.js +61 -0
  74. data/vendor/envjs/test/qunit/qunit/qunit.css +17 -0
  75. data/vendor/envjs/test/qunit/qunit/qunit.js +997 -0
  76. data/vendor/envjs/test/scope.rb +25 -0
  77. data/vendor/envjs/test/specs/dist/env.spec.js +1534 -0
  78. data/vendor/envjs/test/specs/envjs.spec.css +46 -0
  79. data/vendor/envjs/test/specs/parser/html.js +31 -0
  80. data/vendor/envjs/test/specs/parser/spec.html +40 -0
  81. data/vendor/envjs/test/specs/parser/xml.js +31 -0
  82. data/vendor/envjs/test/specs/qunit.bdd.js +210 -0
  83. data/vendor/envjs/test/specs/qunit.css +17 -0
  84. data/vendor/envjs/test/specs/qunit.js +997 -0
  85. data/vendor/envjs/test/specs/template/spec-0.js +31 -0
  86. data/vendor/envjs/test/specs/template/spec-1.js +31 -0
  87. data/vendor/envjs/test/specs/template/spec.html +40 -0
  88. data/vendor/envjs/test/specs/window/css.js +23 -0
  89. data/vendor/envjs/test/specs/window/dialog.js +25 -0
  90. data/vendor/envjs/test/specs/window/document.js +23 -0
  91. data/vendor/envjs/test/specs/window/event.js +25 -0
  92. data/vendor/envjs/test/specs/window/history.js +34 -0
  93. data/vendor/envjs/test/specs/window/location.js +34 -0
  94. data/vendor/envjs/test/specs/window/navigator.js +71 -0
  95. data/vendor/envjs/test/specs/window/screen.js +42 -0
  96. data/vendor/envjs/test/specs/window/spec.html +48 -0
  97. data/vendor/envjs/test/specs/window/timer.js +26 -0
  98. data/vendor/envjs/test/specs/window/window.js +53 -0
  99. data/vendor/envjs/test/specs/xhr/spec.html +47 -0
  100. data/vendor/envjs/test/specs/xhr/xhr.js +31 -0
  101. data/vendor/envjs/test/test.js +10 -0
  102. data/vendor/envjs/test/unit/dom.js +44 -0
  103. data/vendor/envjs/test/unit/elementmembers.js +60 -0
  104. data/vendor/envjs/test/unit/events.js +195 -0
  105. data/vendor/envjs/test/unit/fixtures/external_script.js +1 -0
  106. data/vendor/envjs/test/unit/iframe.js +234 -0
  107. data/vendor/envjs/test/unit/multi-window.js +212 -0
  108. data/vendor/envjs/test/unit/nu.validator.js +34 -0
  109. data/vendor/envjs/test/unit/onload.js +90 -0
  110. data/vendor/envjs/test/unit/parser.js +121 -0
  111. data/vendor/envjs/test/unit/prototypecompat.js +22 -0
  112. data/vendor/envjs/test/unit/proxy.js +6 -0
  113. data/vendor/envjs/test/unit/scope.js +209 -0
  114. data/vendor/envjs/test/unit/timer.js +115 -0
  115. data/vendor/envjs/test/unit/window.js +41 -0
  116. data/vendor/envjs/test/vendor/jQuery/README +2 -0
  117. data/vendor/envjs/test/vendor/prototype-1.6.0.3.js +4320 -0
  118. metadata +200 -0
@@ -0,0 +1,81 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+
3
+ <!--
4
+ * This file is a component of env.js,
5
+ * http://github.com/gleneivey/env-js/commits/master/README
6
+ * a Pure JavaScript Browser Environment
7
+ * Copyright 2009 John Resig, licensed under the MIT License
8
+ * http://www.opensource.org/licenses/mit-license.php
9
+ -->
10
+
11
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
12
+ lang="en" dir="ltr" id="html">
13
+ <head>
14
+ <title>(event handler) scope testing, env.js units, IFRAME content page
15
+ </title>
16
+ </head>
17
+ <body>
18
+ <script>
19
+ function appendAPara(doc, target, pId, pMsg){
20
+ var t = doc.createTextNode(pMsg);
21
+ var p = doc.createElement("p");
22
+ p.setAttribute("id", pId);
23
+ p.appendChild(t);
24
+ target.appendChild(p);
25
+ }
26
+
27
+ function makeAPara(){
28
+ var paraText =
29
+ "This is a paragraph, made dynamically, with the following components: ";
30
+ for (var i=1; (i) != arguments.length; i++)
31
+ paraText += "--" + arguments[i] + "-- ";
32
+ appendAPara(document, document.getElementById('div1'),
33
+ arguments[0], paraText);
34
+ }
35
+
36
+ aVar = "Strict";
37
+ function checkLexicalScoping(target){
38
+ appendAPara(document, target, "lex",
39
+ "Lexical scoping is " + aVar);
40
+ }
41
+
42
+ // these variables are used in the script block for div3, below.
43
+ // Intentionally not using 'var' so these go into the global space
44
+ bVar = 42;
45
+ target = 'p7';
46
+ </script>
47
+
48
+ <img id="img1" src="img.png" onclick="appendAPara(document, document.getElementsByTagName('body')[0], 'p1', 'img1 click');" />
49
+
50
+ <div id="div1"
51
+ onclick="appendAPara(document, this, 'p2', 'div1 click');" >
52
+ This div has some unencapsulated text in it, which we'll follow
53
+ with a 'p' element.
54
+ </div>
55
+
56
+ <div id="div2" align="center"
57
+ onclick="aVar='Overridden!'; checkLexicalScoping(this);">
58
+ <form id="form1" action="post-url" method="post">
59
+ <input id="text1" type="text" size="42"
60
+ onchange="makeAPara('p3', value, type, size, action, align);"
61
+ />
62
+ </form>
63
+ </div>
64
+
65
+ <div id="div3">
66
+ <p id="p4">
67
+ More text. This time, expect event handler to append another
68
+ sentence to this paragraph.
69
+ </p>
70
+ </div>
71
+ <script>
72
+ target = "p4"; // already defined in global, so modify not redefine
73
+ document.getElementById('div3').onclick = function(){
74
+ var targetElement = document.getElementById(target);
75
+ var t = document.createTextNode("Third sentence contains the number " +
76
+ bVar + ".");
77
+ targetElement.appendChild(t);
78
+ }
79
+ </script>
80
+ </body>
81
+ </html>
@@ -0,0 +1,19 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+
3
+ <!--
4
+ * This file is a component of env.js,
5
+ * http://github.com/gleneivey/env-js/commits/master/README
6
+ * a Pure JavaScript Browser Environment
7
+ * Copyright 2009 John Resig, licensed under the MIT License
8
+ * http://www.opensource.org/licenses/mit-license.php
9
+ -->
10
+
11
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
12
+ lang="en" dir="ltr" id="html">
13
+ <head>
14
+ <title>Nearly-empty HTML page</title>
15
+ </head>
16
+ <body>
17
+ <p id="oneP">Nearly-empty HTML page</p>
18
+ </body>
19
+ </html>
@@ -0,0 +1,26 @@
1
+ <html>
2
+ <head>
3
+ <script type="text/javascript">
4
+ var x = true;
5
+ if(1 == 1 && 2 == 3)
6
+ x = false;
7
+ </script>
8
+ </head>
9
+ <body>
10
+ <h1 id="HeaderLevel1">Hello, &quot;World&quot;!</h1>
11
+
12
+ <script type="text/javascript">
13
+ aWindowScopeVariable = "hello, scope";
14
+ function getTestVariables(){
15
+ var testVal = null;
16
+ try { testVal = notAlwaysPresentVariable; }
17
+ catch (e){}
18
+
19
+ return [ aWindowScopeVariable, testVal ];
20
+ }
21
+ function setTestVariable(newValue){
22
+ notAlwaysPresentVariable = newValue;
23
+ }
24
+ </script>
25
+ </body>
26
+ </html>
@@ -0,0 +1 @@
1
+ var $$$$$ = "12345";
@@ -0,0 +1,2 @@
1
+ //
2
+ true = false;
@@ -0,0 +1,171 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+
3
+ <!--
4
+ * This file is a component of env.js,
5
+ * http://github.com/gleneivey/env-js/commits/master/README
6
+ * a Pure JavaScript Browser Environment
7
+ * Copyright 2009 John Resig, licensed under the MIT License
8
+ * http://www.opensource.org/licenses/mit-license.php
9
+ -->
10
+
11
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
12
+ lang="en" dir="ltr" id="html">
13
+ <head>
14
+ <title>IFRAME content page, env.js unit tests, deeply-nested structure
15
+ </title>
16
+
17
+ <script>
18
+ // define event handlers for following HTML structure
19
+
20
+ window.initECounters = function (counterObj){
21
+ counterObj["window onload"] = 0;
22
+ counterObj["window onunload"] = 0;
23
+ counterObj["body onload"] = 0;
24
+ counterObj["body onclick"] = 0;
25
+ counterObj["body onunload"] = 0;
26
+ counterObj["h1 onclick"] = 0;
27
+ counterObj["h2 onclick"] = 0;
28
+ counterObj["div onclick"] = 0;
29
+ counterObj["table onclick"] = 0;
30
+ counterObj["tbody onclick"] = 0;
31
+ counterObj["tr onclick"] = 0;
32
+ counterObj["td onclick"] = 0;
33
+ counterObj["ul onclick"] = 0;
34
+ counterObj["li onclick"] = 0;
35
+ counterObj["p onclick"] = 0;
36
+ counterObj["b onclick"] = 0;
37
+ counterObj["i onclick"] = 0;
38
+ counterObj["a onclick"] = 0;
39
+ counterObj["img onclick"] = 0;
40
+ counterObj["img onload"] = 0;
41
+ }
42
+
43
+ // init only first time this page loads, re-init'ed in unit/events.js
44
+ try {
45
+ if (!(window.top.eCounters)){
46
+ window.top.eCounters = {};
47
+ initECounters(window.top.eCounters);
48
+ }
49
+ } catch(e){
50
+ window.top.eCounters = {};
51
+ initECounters(window.top.eCounters);
52
+ }
53
+
54
+ function bodyOnloadHandler(elem){
55
+ if (elem === document.getElementById('theBODY'))
56
+ window.top.eCounters["body onload"] += 1;
57
+ }
58
+ function bodyOnclickHandler(elem){
59
+ if (elem === document.getElementById('theBODY'))
60
+ window.top.eCounters["body onclick"] += 1;
61
+ }
62
+ function bodyOnunloadHandler(elem){
63
+ if (elem === document.getElementById('theBODY'))
64
+ window.top.eCounters["body onunload"] += 1;
65
+ }
66
+ function h1OnclickHandler(elem){
67
+ if (elem === document.getElementById('theH1'))
68
+ window.top.eCounters["h1 onclick"] += 1;
69
+ }
70
+ function h2OnclickHandler(elem){
71
+ if (elem === document.getElementById('theH2'))
72
+ window.top.eCounters["h2 onclick"] += 1;
73
+ }
74
+ function divOnclickHandler(elem){
75
+ if (elem === document.getElementById('theDIV'))
76
+ window.top.eCounters["div onclick"] += 1;
77
+ }
78
+ function tableOnclickHandler(elem){
79
+ if (elem === document.getElementById('theTABLE'))
80
+ window.top.eCounters["table onclick"] += 1;
81
+ }
82
+ function tbodyOnclickHandler(elem){
83
+ if (elem === document.getElementById('theTBODY'))
84
+ window.top.eCounters["tbody onclick"] += 1;
85
+ }
86
+ function trOnclickHandler(elem){
87
+ if (elem === document.getElementById('theTR'))
88
+ window.top.eCounters["tr onclick"] += 1;
89
+ }
90
+ function tdOnclickHandler(elem){
91
+ if (elem === document.getElementById('theTD'))
92
+ window.top.eCounters["td onclick"] += 1;
93
+ }
94
+ function ulOnclickHandler(elem){
95
+ if (elem === document.getElementById('theUL'))
96
+ window.top.eCounters["ul onclick"] += 1;
97
+ }
98
+ function liOnclickHandler(elem){
99
+ if (elem === document.getElementById('theLI'))
100
+ window.top.eCounters["li onclick"] += 1;
101
+ }
102
+ function pOnclickHandler(elem){
103
+ if (elem === document.getElementById('theP'))
104
+ window.top.eCounters["p onclick"] += 1;
105
+ }
106
+ function bOnclickHandler(elem){
107
+ if (elem === document.getElementById('theB'))
108
+ window.top.eCounters["b onclick"] += 1;
109
+ }
110
+ function iOnclickHandler(elem){
111
+ if (elem === document.getElementById('theI'))
112
+ window.top.eCounters["i onclick"] += 1;
113
+ }
114
+ function aOnclickHandler(elem){
115
+ if (elem === document.getElementById('theA'))
116
+ window.top.eCounters["a onclick"] += 1;
117
+ }
118
+ function imgOnclickHandler(elem){
119
+ if (elem === document.getElementById('theIMG'))
120
+ window.top.eCounters["img onclick"] += 1;
121
+ }
122
+ function imgOnloadHandler(elem){
123
+ if (elem === document.getElementById('theIMG'))
124
+ window.top.eCounters["img onload"] += 1;
125
+ }
126
+
127
+ window.onload = function(){
128
+ window.top.eCounters["window onload"] += 1;
129
+ }
130
+
131
+ window.onunload = function(){
132
+ window.top.eCounters["window onunload"] += 1;
133
+ }
134
+ </script>
135
+
136
+ </head>
137
+ <body id="theBODY" onload="bodyOnloadHandler(this);"
138
+ onclick="bodyOnclickHandler(this);"
139
+ onunload="bodyOnunloadHandler(this);">
140
+ <h1 id="theH1" onclick="h1OnclickHandler(this);">
141
+ First header in document</h1>
142
+ <h2 id="theH2" onclick="h2OnclickHandler(this);">
143
+ Second header in document</h2>
144
+
145
+ <div id="theDIV" onclick="divOnclickHandler(this);">
146
+ <table id="theTABLE" onclick="tableOnclickHandler(this);">
147
+ <tbody id="theTBODY" onclick="tbodyOnclickHandler(this);">
148
+ <tr id="theTR" onclick="trOnclickHandler(this);">
149
+ <td id="theTD" onclick="tdOnclickHandler(this);">
150
+ <ul id="theUL" onclick="ulOnclickHandler(this);">
151
+ <li id="theLI" onclick="liOnclickHandler(this);">
152
+ <p id="theP" onclick="pOnclickHandler(this);">
153
+ Some text <b id="theB" onclick="bOnclickHandler(this);">
154
+ more text <i id="theI" onclick="iOnclickHandler(this);">
155
+ <a id="theA" href="#" onclick="aOnclickHandler(this);">
156
+ <img id="theIMG" src="noImg.png" alt="image link"
157
+ onclick="imgOnclickHandler(this);"
158
+ onload="imgOnloadHandler(this);" />
159
+ </a> fu fu
160
+ </i> bar bar,
161
+ </b> blah blah.
162
+ </p>
163
+ </li>
164
+ </ul>
165
+ </td>
166
+ </tr>
167
+ </tbody>
168
+ </table>
169
+ </div>
170
+ </body>
171
+ </html>
@@ -0,0 +1,46 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+
3
+ <!--
4
+ * This file is a component of env.js,
5
+ * http://github.com/gleneivey/env-js/commits/master/README
6
+ * a Pure JavaScript Browser Environment
7
+ * Copyright 2009 John Resig, licensed under the MIT License
8
+ * http://www.opensource.org/licenses/mit-license.php
9
+ -->
10
+
11
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
12
+ lang="en" dir="ltr" id="html">
13
+ <head>
14
+ <title>Content document for IFRAME element in env.js unit test suite</title>
15
+ </head>
16
+ <body onload="try{checkEventsWithinIframe();}catch(e){;}">
17
+ <p id="anElementWithText">
18
+ This is the text content of a paragraph element.
19
+ </p>
20
+
21
+ <!-- elements and scripting here match test cases in ../unit/window.js -->
22
+ <script>//ensure that we can execute JS inline while loading
23
+ document.write(
24
+ '\x3cp id="js_generated_p"\x3eDynamically-generated\x3c/p\x3e');
25
+ </script>
26
+
27
+ <script>//verify that our "document" object actually points to this page
28
+ document.write('\x3cp id="internalDocRefResult"\x3e');
29
+ if (document.getElementById('anElementWithText'))
30
+ document.write("First paragraph element exists-found.");
31
+ else
32
+ document.write("Eeek! Didn't find paragraph id=anElementWithText.");
33
+ document.write('\x3c/p\x3e');
34
+ </script>
35
+
36
+ <script>// append 'p id=appended "An appended paragraph"' to doc....
37
+ function checkEventsWithinIframe(){
38
+ var t = document.createTextNode("An appended paragraph");
39
+ var p = document.createElement("p");
40
+ p.setAttribute("id", "appended");
41
+ p.appendChild(t);
42
+ document.getElementsByTagName('body')[0].appendChild(p);
43
+ }
44
+ </script>
45
+ </body>
46
+ </html>
@@ -0,0 +1,46 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+
3
+ <!--
4
+ * This file is a component of env.js,
5
+ * http://github.com/gleneivey/env-js/commits/master/README
6
+ * a Pure JavaScript Browser Environment
7
+ * Copyright 2009 John Resig, licensed under the MIT License
8
+ * http://www.opensource.org/licenses/mit-license.php
9
+ -->
10
+
11
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
12
+ lang="en" dir="ltr" id="html">
13
+ <head>
14
+ <title>Content document 'iframe1a.html' for env.js unit test suite</title>
15
+ </head>
16
+ <body onload="checkEventsWithinIframe();">
17
+ <quote id="anotherElementWithText">
18
+ This is the text content of a block-quote element.
19
+ </quote>
20
+
21
+ <!-- elements and scripting here match test cases in ../unit/window.js -->
22
+ <script>//ensure that we can execute JS inline while loading
23
+ document.write(
24
+ '\x3cp id="js_generated_p"\x3eDynamically-generated\x3c/p\x3e');
25
+ </script>
26
+
27
+ <script>//verify that our "document" object actually points to this page
28
+ document.write('\x3cp id="internalDocRefResult"\x3e');
29
+ if (document.getElementById('anElementWithText'))
30
+ document.write("First paragraph element exists-found.");
31
+ else
32
+ document.write("Eeek! Didn't find paragraph id=anElementWithText.");
33
+ document.write('\x3c/p\x3e');
34
+ </script>
35
+
36
+ <script>// append 'p id=appended "An appended paragraph"' to doc....
37
+ function checkEventsWithinIframe(){
38
+ var t = document.createTextNode("An appended paragraph");
39
+ var p = document.createElement("p");
40
+ p.setAttribute("id", "appended");
41
+ p.appendChild(t);
42
+ document.getElementsByTagName('body')[0].appendChild(p);
43
+ }
44
+ </script>
45
+ </body>
46
+ </html>
@@ -0,0 +1,45 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+
4
+ <!--
5
+ * This file is a component of env.js,
6
+ * http://github.com/gleneivey/env-js/commits/master/README
7
+ * a Pure JavaScript Browser Environment
8
+ * Copyright 2009 John Resig, licensed under the MIT License
9
+ * http://www.opensource.org/licenses/mit-license.php
10
+ -->
11
+
12
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
13
+ lang="en" dir="ltr" id="html">
14
+ <head>
15
+ <title>Content document for IFRAME loading in env.js unit test suite</title>
16
+ </head>
17
+ <body>
18
+ <p id="aParaInAnIframe">
19
+ Here is a short paragraph.
20
+ </p>
21
+
22
+ <p id="nestingLevel">2</p>
23
+ <p>
24
+ The preceding is the seed value for the automatic iframe-nesting
25
+ count generation in <code>iframeN.html</code>, used by the nesting
26
+ test in <code>../unit/frame.js</code>. Value must be equal to the
27
+ test's 'startingDepth' variable, minus 1, for things to work.
28
+ </p>
29
+
30
+ <!-- abbreviated copy of code also in iframeN.html -->
31
+ <script>
32
+ function aPara(pId, pText){
33
+ var t = document.createTextNode(pText + " 1");
34
+ var p = document.createElement('p');
35
+ p.setAttribute('id', pId + "1");
36
+ p.appendChild(t);
37
+ document.getElementsByTagName('body')[0].appendChild(p);
38
+ }
39
+
40
+ function iframeOnloadHandler(){ aPara("pCreatedIframeOnload",
41
+ "para iframe onload");
42
+ window.top.frameLoadCount++; }
43
+ </script>
44
+ </body>
45
+ </html>