headless-squirrel 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. data/README.rdoc +55 -0
  2. data/Rakefile +27 -0
  3. data/bin/jstest +10 -0
  4. data/lib/headless_squirrel.rb +2 -0
  5. data/lib/headless_squirrel/console.rb +24 -0
  6. data/lib/headless_squirrel/runner.rb +70 -0
  7. data/lib/headless_squirrel/test.rb +17 -0
  8. data/lib/headless_squirrel/test_case.rb +158 -0
  9. data/test/fixtures/a_unit_test.html +27 -0
  10. data/test/fixtures/a_unit_test.js +22 -0
  11. data/test/fixtures/syntax_error.html +27 -0
  12. data/test/fixtures/syntax_error.js +5 -0
  13. data/test/fixtures/type_error.html +27 -0
  14. data/test/fixtures/type_error.js +1 -0
  15. data/test/regression/prototype/unit/ajax_test.html +29 -0
  16. data/test/regression/prototype/unit/array_test.html +28 -0
  17. data/test/regression/prototype/unit/assets/prototype.js +4900 -0
  18. data/test/regression/prototype/unit/assets/unittest.css +50 -0
  19. data/test/regression/prototype/unit/assets/unittest.js +615 -0
  20. data/test/regression/prototype/unit/assets/unittest_transport.js +1 -0
  21. data/test/regression/prototype/unit/base_test.html +27 -0
  22. data/test/regression/prototype/unit/class_test.html +27 -0
  23. data/test/regression/prototype/unit/date_test.html +27 -0
  24. data/test/regression/prototype/unit/dom_test.html +304 -0
  25. data/test/regression/prototype/unit/element_mixins_test.html +30 -0
  26. data/test/regression/prototype/unit/enumerable_test.html +35 -0
  27. data/test/regression/prototype/unit/event_test.html +31 -0
  28. data/test/regression/prototype/unit/fixtures/ajax.html +2 -0
  29. data/test/regression/prototype/unit/fixtures/ajax.js +42 -0
  30. data/test/regression/prototype/unit/fixtures/array.html +1 -0
  31. data/test/regression/prototype/unit/fixtures/class.js +83 -0
  32. data/test/regression/prototype/unit/fixtures/content.html +1 -0
  33. data/test/regression/prototype/unit/fixtures/data.json +1 -0
  34. data/test/regression/prototype/unit/fixtures/dom.css +84 -0
  35. data/test/regression/prototype/unit/fixtures/dom.html +278 -0
  36. data/test/regression/prototype/unit/fixtures/dom.js +17 -0
  37. data/test/regression/prototype/unit/fixtures/element_mixins.html +4 -0
  38. data/test/regression/prototype/unit/fixtures/element_mixins.js +2 -0
  39. data/test/regression/prototype/unit/fixtures/empty.html +0 -0
  40. data/test/regression/prototype/unit/fixtures/empty.js +1 -0
  41. data/test/regression/prototype/unit/fixtures/enumerable.html +8 -0
  42. data/test/regression/prototype/unit/fixtures/enumerable.js +23 -0
  43. data/test/regression/prototype/unit/fixtures/event.html +4 -0
  44. data/test/regression/prototype/unit/fixtures/form.html +108 -0
  45. data/test/regression/prototype/unit/fixtures/function.js +13 -0
  46. data/test/regression/prototype/unit/fixtures/hash.js +25 -0
  47. data/test/regression/prototype/unit/fixtures/hello.js +1 -0
  48. data/test/regression/prototype/unit/fixtures/logo.gif +0 -0
  49. data/test/regression/prototype/unit/fixtures/object.html +6 -0
  50. data/test/regression/prototype/unit/fixtures/object.js +7 -0
  51. data/test/regression/prototype/unit/fixtures/position.html +9 -0
  52. data/test/regression/prototype/unit/fixtures/selector.html +71 -0
  53. data/test/regression/prototype/unit/fixtures/string.js +8 -0
  54. data/test/regression/prototype/unit/fixtures/unittest.html +18 -0
  55. data/test/regression/prototype/unit/form_test.html +135 -0
  56. data/test/regression/prototype/unit/function_test.html +27 -0
  57. data/test/regression/prototype/unit/hash_test.html +27 -0
  58. data/test/regression/prototype/unit/number_test.html +27 -0
  59. data/test/regression/prototype/unit/object_test.html +32 -0
  60. data/test/regression/prototype/unit/periodical_executer_test.html +27 -0
  61. data/test/regression/prototype/unit/position_test.html +36 -0
  62. data/test/regression/prototype/unit/prototype_test.html +27 -0
  63. data/test/regression/prototype/unit/range_test.html +27 -0
  64. data/test/regression/prototype/unit/regexp_test.html +27 -0
  65. data/test/regression/prototype/unit/selector_test.html +98 -0
  66. data/test/regression/prototype/unit/string_test.html +27 -0
  67. data/test/regression/prototype/unit/tests/ajax_test.js +379 -0
  68. data/test/regression/prototype/unit/tests/array_test.js +186 -0
  69. data/test/regression/prototype/unit/tests/base_test.js +43 -0
  70. data/test/regression/prototype/unit/tests/class_test.js +136 -0
  71. data/test/regression/prototype/unit/tests/date_test.js +5 -0
  72. data/test/regression/prototype/unit/tests/dom_test.js +1493 -0
  73. data/test/regression/prototype/unit/tests/element_mixins_test.js +32 -0
  74. data/test/regression/prototype/unit/tests/enumerable_test.js +271 -0
  75. data/test/regression/prototype/unit/tests/event_test.js +235 -0
  76. data/test/regression/prototype/unit/tests/form_test.js +382 -0
  77. data/test/regression/prototype/unit/tests/function_test.js +133 -0
  78. data/test/regression/prototype/unit/tests/hash_test.js +178 -0
  79. data/test/regression/prototype/unit/tests/number_test.js +44 -0
  80. data/test/regression/prototype/unit/tests/object_test.js +180 -0
  81. data/test/regression/prototype/unit/tests/periodical_executer_test.js +15 -0
  82. data/test/regression/prototype/unit/tests/position_test.js +44 -0
  83. data/test/regression/prototype/unit/tests/prototype_test.js +43 -0
  84. data/test/regression/prototype/unit/tests/range_test.js +58 -0
  85. data/test/regression/prototype/unit/tests/regexp_test.js +42 -0
  86. data/test/regression/prototype/unit/tests/selector_test.js +408 -0
  87. data/test/regression/prototype/unit/tests/string_test.js +548 -0
  88. data/test/regression/prototype/unit/tests/unittest_test.js +148 -0
  89. data/test/regression/prototype/unit/unittest_test.html +45 -0
  90. data/test/regression/prototype/upstream +1 -0
  91. data/test/regression/scriptaculous/unit/_ajax_inplaceeditor_ipce_alt_text.html +1 -0
  92. data/test/regression/scriptaculous/unit/_ajax_inplaceeditor_ipce_collection.js +1 -0
  93. data/test/regression/scriptaculous/unit/_ajax_inplaceeditor_result.html +1 -0
  94. data/test/regression/scriptaculous/unit/_ajax_inplaceeditor_result2.html +1 -0
  95. data/test/regression/scriptaculous/unit/_ajax_inplaceeditor_tagged.html +1 -0
  96. data/test/regression/scriptaculous/unit/_ajax_inplaceeditor_text.html +1 -0
  97. data/test/regression/scriptaculous/unit/_ajax_updater_result.html +20 -0
  98. data/test/regression/scriptaculous/unit/_autocomplete_result.html +11 -0
  99. data/test/regression/scriptaculous/unit/_autocomplete_result_nobr.html +1 -0
  100. data/test/regression/scriptaculous/unit/ajax_autocompleter_test.html +243 -0
  101. data/test/regression/scriptaculous/unit/ajax_inplaceeditor_test.html +895 -0
  102. data/test/regression/scriptaculous/unit/assets/builder.js +134 -0
  103. data/test/regression/scriptaculous/unit/assets/controls.js +963 -0
  104. data/test/regression/scriptaculous/unit/assets/dragdrop.js +973 -0
  105. data/test/regression/scriptaculous/unit/assets/effects.js +1122 -0
  106. data/test/regression/scriptaculous/unit/assets/javascripttest.rb +203 -0
  107. data/test/regression/scriptaculous/unit/assets/prototype.js +4320 -0
  108. data/test/regression/scriptaculous/unit/assets/scriptaculous.js +66 -0
  109. data/test/regression/scriptaculous/unit/assets/slider.js +273 -0
  110. data/test/regression/scriptaculous/unit/assets/sound.js +57 -0
  111. data/test/regression/scriptaculous/unit/assets/unittest.js +566 -0
  112. data/test/regression/scriptaculous/unit/bdd_test.html +150 -0
  113. data/test/regression/scriptaculous/unit/builder_test.html +262 -0
  114. data/test/regression/scriptaculous/unit/dragdrop_test.html +131 -0
  115. data/test/regression/scriptaculous/unit/effects_test.html +547 -0
  116. data/test/regression/scriptaculous/unit/element_test.html +116 -0
  117. data/test/regression/scriptaculous/unit/icon.png +0 -0
  118. data/test/regression/scriptaculous/unit/index.html +70 -0
  119. data/test/regression/scriptaculous/unit/loading_test.html +41 -0
  120. data/test/regression/scriptaculous/unit/position_clone_test.html +312 -0
  121. data/test/regression/scriptaculous/unit/slider_test.html +437 -0
  122. data/test/regression/scriptaculous/unit/sortable_test.html +205 -0
  123. data/test/regression/scriptaculous/unit/string_test.html +71 -0
  124. data/test/regression/scriptaculous/unit/unittest_test.html +154 -0
  125. data/test/regression/scriptaculous/upstream +1 -0
  126. data/test/test_helper.rb +20 -0
  127. data/test/unit/runner_test.rb +165 -0
  128. data/test/unit/test_case_test.rb +207 -0
  129. data/test/unit/test_test.rb +24 -0
  130. metadata +209 -0
@@ -0,0 +1,31 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <title>Unit test file | Event | default template | 2009-04-11 15:28</title>
6
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
7
+ <script type="text/javascript" charset="utf-8">
8
+ var eventResults = {};
9
+ var originalElement = window.Element;
10
+ </script>
11
+ <script src="assets/prototype.js" type="text/javascript" charset="utf-8"></script>
12
+ <script src="assets/unittest.js" type="text/javascript" charset="utf-8"></script>
13
+ <link rel="stylesheet" href="assets/unittest.css" type="text/css" />
14
+
15
+
16
+ <script src="tests/event_test.js" type="text/javascript" charset="utf-8"></script>
17
+ </head>
18
+ <body>
19
+
20
+ <div id="testlog"></div>
21
+
22
+ <div id="outer" style="display: none">
23
+ <p id="inner">One two three <span id="span">four</span></p>
24
+ </div>
25
+ <div id="container"><div></div></div>
26
+
27
+ </body>
28
+ </html>
29
+ <script type="text/javascript" charset="utf-8">
30
+ eventResults.endOfDocument = true;
31
+ </script>
@@ -0,0 +1,2 @@
1
+ <div id="content"></div>
2
+ <div id="content2" style="color:red"></div>
@@ -0,0 +1,42 @@
1
+ var Fixtures = {
2
+ js: {
3
+ responseBody: '$("content").update("<H2>Hello world!</H2>");',
4
+ 'Content-Type': ' text/javascript '
5
+ },
6
+
7
+ html: {
8
+ responseBody: "Pack my box with <em>five dozen</em> liquor jugs! " +
9
+ "Oh, how <strong>quickly</strong> daft jumping zebras vex..."
10
+ },
11
+
12
+ xml: {
13
+ responseBody: '<?xml version="1.0" encoding="UTF-8" ?><name attr="foo">bar</name>',
14
+ 'Content-Type': 'application/xml'
15
+ },
16
+
17
+ json: {
18
+ responseBody: '{\n\r"test": 123}',
19
+ 'Content-Type': 'application/json'
20
+ },
21
+
22
+ jsonWithoutContentType: {
23
+ responseBody: '{"test": 123}'
24
+ },
25
+
26
+ invalidJson: {
27
+ responseBody: '{});window.attacked = true;({}',
28
+ 'Content-Type': 'application/json'
29
+ },
30
+
31
+ headerJson: {
32
+ 'X-JSON': '{"test": "hello #éà"}'
33
+ }
34
+ };
35
+
36
+ var responderCounter = 0;
37
+
38
+ // lowercase comparison because of MSIE which presents HTML tags in uppercase
39
+ var sentence = ("Pack my box with <em>five dozen</em> liquor jugs! " +
40
+ "Oh, how <strong>quickly</strong> daft jumping zebras vex...").toLowerCase();
41
+
42
+ var message = 'You must be running your tests from rake to test this feature.';
@@ -0,0 +1 @@
1
+ <div id="test_node">22<span id="span_1"></span><span id="span_2"></span></div>
@@ -0,0 +1,83 @@
1
+ // base class
2
+ var Animal = Class.create({
3
+ initialize: function(name) {
4
+ this.name = name;
5
+ },
6
+ name: "",
7
+ eat: function() {
8
+ return this.say("Yum!");
9
+ },
10
+ say: function(message) {
11
+ return this.name + ": " + message;
12
+ }
13
+ });
14
+
15
+ // subclass that augments a method
16
+ var Cat = Class.create(Animal, {
17
+ eat: function($super, food) {
18
+ if (food instanceof Mouse) return $super();
19
+ else return this.say("Yuk! I only eat mice.");
20
+ }
21
+ });
22
+
23
+ // empty subclass
24
+ var Mouse = Class.create(Animal, {});
25
+
26
+ //mixins
27
+ var Sellable = {
28
+ getValue: function(pricePerKilo) {
29
+ return this.weight * pricePerKilo;
30
+ },
31
+
32
+ inspect: function() {
33
+ return '#<Sellable: #{weight}kg>'.interpolate(this);
34
+ }
35
+ };
36
+
37
+ var Reproduceable = {
38
+ reproduce: function(partner) {
39
+ if (partner.constructor != this.constructor || partner.sex == this.sex)
40
+ return null;
41
+ var weight = this.weight / 10, sex = Math.random(1).round() ? 'male' : 'female';
42
+ return new this.constructor('baby', weight, sex);
43
+ }
44
+ };
45
+
46
+ // base class with mixin
47
+ var Plant = Class.create(Sellable, {
48
+ initialize: function(name, weight) {
49
+ this.name = name;
50
+ this.weight = weight;
51
+ },
52
+
53
+ inspect: function() {
54
+ return '#<Plant: #{name}>'.interpolate(this);
55
+ }
56
+ });
57
+
58
+ // subclass with mixin
59
+ var Dog = Class.create(Animal, Reproduceable, {
60
+ initialize: function($super, name, weight, sex) {
61
+ this.weight = weight;
62
+ this.sex = sex;
63
+ $super(name);
64
+ }
65
+ });
66
+
67
+ // subclass with mixins
68
+ var Ox = Class.create(Animal, Sellable, Reproduceable, {
69
+ initialize: function($super, name, weight, sex) {
70
+ this.weight = weight;
71
+ this.sex = sex;
72
+ $super(name);
73
+ },
74
+
75
+ eat: function(food) {
76
+ if (food instanceof Plant)
77
+ this.weight += food.weight;
78
+ },
79
+
80
+ inspect: function() {
81
+ return '#<Ox: #{name}>'.interpolate(this);
82
+ }
83
+ });
@@ -0,0 +1 @@
1
+ Pack my box with <em>five dozen</em> liquor jugs! Oh, how <strong>quickly</strong> daft jumping zebras vex...
@@ -0,0 +1,84 @@
1
+ #style_test_1 { cursor: pointer; font-size:12px;}
2
+ div.style-test { margin-left: 1px }
3
+
4
+ #style_test_dimensions_container {
5
+ position: absolute;
6
+ top: 0;
7
+ left: 500px;
8
+ width: 20px;
9
+ height: 30px;
10
+ margin: 10px;
11
+ padding: 10px;
12
+ border: 3px solid red;
13
+ }
14
+
15
+ #not_floating_style { float: none }
16
+ #floating_style { float: left }
17
+ #op2 { opacity:0.5;filter:alpha(opacity=50)progid:DXImageTransform.Microsoft.Blur(strength=10);}
18
+
19
+ #scroll_test_1 {
20
+ margin: 10px;
21
+ padding: 10px;
22
+ position: relative;
23
+ }
24
+
25
+ #scroll_test_2 {
26
+ position: absolute;
27
+ left: 10px;
28
+ top: 10px;
29
+ }
30
+
31
+ #dimensions-visible,
32
+ #dimensions-display-none,
33
+ #dimensions-visible-pos-rel,
34
+ #dimensions-display-none-pos-rel,
35
+ #dimensions-visible-pos-abs,
36
+ #dimensions-display-none-pos-abs {
37
+ font-size: 10px;
38
+ height: 10em;
39
+ width: 20em;
40
+ }
41
+
42
+ #dimensions-visible-pos-abs,
43
+ #dimensions-display-none-pos-abs {
44
+ position: absolute;
45
+ top: 15px;
46
+ left: 15px;
47
+ }
48
+
49
+ #dimensions-visible-pos-rel,
50
+ #dimensions-display-none-pos-rel {
51
+ position: relative;
52
+ top: 15px;
53
+ left: 15px;
54
+ }
55
+
56
+ #dimensions-display-none, #imensions-display-none-pos-rel, #dimensions-display-none-pos-abs {
57
+ display: none;
58
+ }
59
+
60
+ #dimensions-table, #dimensions-tbody, #dimensions-tr, #dimensions-td {
61
+ font-size: 10px;
62
+ margin: 0;
63
+ padding: 0;
64
+ border: 0;
65
+ border-spacing: 0;
66
+ height: 10em;
67
+ width: 20em;
68
+ }
69
+
70
+ #notInlineAbsoluted { position: absolute; }
71
+
72
+ #elementToViewportDimensions {
73
+ position: absolute;
74
+ top: 0;
75
+ left: 0;
76
+ height: 10px;
77
+ width: 10px;
78
+ background: #000;
79
+ }
80
+
81
+ /* for scroll test on really big screens */
82
+ body {
83
+ height: 40000px;
84
+ }
@@ -0,0 +1,278 @@
1
+ <div id="scroll_test_1">
2
+ <p id="scroll_test_2">Scroll test</p>
3
+ </div>
4
+
5
+ <div id="test-visible">visible</div>
6
+ <div id="test-hidden" style="display:none;">hidden</div>
7
+ <div id="test-toggle-visible">visible</div>
8
+ <div id="test-toggle-hidden" style="display:none;">hidden</div>
9
+ <div id="test-hide-visible">visible</div>
10
+ <div id="test-hide-hidden" style="display:none;">hidden</div>
11
+ <div id="test-show-visible">visible</div>
12
+ <div id="test-show-hidden" style="display:none;">hidden</div>
13
+ <div id="removable-container"><div id="removable"></div></div>
14
+
15
+ <div>
16
+ <table>
17
+ <tbody id="table">
18
+ <tr>
19
+ <td>Data</td>
20
+ </tr>
21
+ <tr>
22
+ <td id="a_cell">First Row</td>
23
+ </tr>
24
+ <tr id="second_row">
25
+ <td>Second Row</td>
26
+ </tr>
27
+ </tbody>
28
+ </table>
29
+ </div>
30
+
31
+ <div id="table-container-to-replace">
32
+ <table>
33
+ <tbody id="table-to-replace">
34
+ <tr>
35
+ <td>Data</td>
36
+ </tr>
37
+ <tr>
38
+ <td id="a_cell-to-replace">First Row</td>
39
+ </tr>
40
+ <tr id="second_row-to-replace">
41
+ <td>Second Row</td>
42
+ </tr>
43
+ </tbody>
44
+ </table>
45
+ </div>
46
+
47
+ <p class="test">Test paragraph outside of container</p>
48
+
49
+ <div id="container">
50
+ <p class="test" id="intended">Test paragraph 1 inside of container</p>
51
+ <p class="test">Test paragraph 2 inside of container</p>
52
+ <p class="test">Test paragraph 3 inside of container</p>
53
+ <p class="test">Test paragraph 4 inside of container</p>
54
+ </div>
55
+
56
+ <div id="testdiv">to be updated</div>
57
+ <div id="testdiv-replace-container-1"><div id="testdiv-replace-1"></div></div>
58
+ <div id="testdiv-replace-container-2"><div id="testdiv-replace-2"></div></div>
59
+ <div id="testdiv-replace-container-3"><div id="testdiv-replace-3"></div></div>
60
+ <div id="testdiv-replace-container-4"><div id="testdiv-replace-4"></div></div>
61
+ <div id="testdiv-replace-container-5"><div id="testdiv-replace-5"></div></div>
62
+ <div id="testdiv-replace-container-element"><div id="testdiv-replace-element"></div></div>
63
+ <div id="testdiv-replace-container-toelement"><div id="testdiv-replace-toelement"></div></div>
64
+ <div id="testdiv-replace-container-tohtml"><div id="testdiv-replace-tohtml"></div></div>
65
+ <div id="testtable-replace-container"><table id="testtable-replace"></table></div>
66
+ <table id="testrow-replace-container"><tr id="testrow-replace"></tr></table>
67
+ <select id="testoption-replace-container"><option id="testoption-replace"></option><option>stays</option></select>
68
+ <div id="testform-replace-container"><p>some text</p><form id="testform-replace"><input id="testinput-replace" type="text" /></form><p>some text</p></div>
69
+
70
+ <div id="element_with_visible_overflow" style="overflow:visible">V</div>
71
+ <div id="element_with_hidden_overflow" style="overflow:hidden">H</div>
72
+ <div id="element_with_scroll_overflow" style="overflow:scroll">S</div>
73
+
74
+ <div id="element_extend_test"> </div>
75
+
76
+ <div id="element_reextend_test"><div id="discard_1"></div></div>
77
+
78
+ <div id="test_whitespace"> <span> </span>
79
+
80
+
81
+ <div><div></div> </div><span> </span>
82
+ </div>
83
+
84
+
85
+ <div id="nav_tests_isolator">
86
+ <div id="nav_test_first_sibling"></div>
87
+ <div></div>
88
+ <p id="nav_test_p" class="test"></p>
89
+ <span id="nav_test_prev_sibling"></span>
90
+
91
+ <ul id="navigation_test" style="display: none">
92
+ <!-- comment node to screw things up -->
93
+ <li class="first"><em>A</em></li>
94
+ <li><em class="dim">B</em></li>
95
+ <li id="navigation_test_c">
96
+ <em>C</em>
97
+ <ul>
98
+ <li><em class="dim">E</em></li>
99
+ <li id="navigation_test_f"><em>F</em></li>
100
+ </ul>
101
+ </li>
102
+ <li class="last"><em>D</em></li>
103
+ </ul>
104
+
105
+ <div id="navigation_test_next_sibling">
106
+ <!-- -->
107
+ </div>
108
+
109
+ <p></p>
110
+ </div>
111
+
112
+ <div id="class_names">
113
+ <p class="A"></p>
114
+ <ul class="A B" id="class_names_ul">
115
+ <li class="C"></li>
116
+ <li class="A C"></li>
117
+ <li class="1"></li>
118
+ </ul>
119
+ <div class="B C D"></div>
120
+ <div id="unextended"></div>
121
+ </div>
122
+
123
+ <div id="style_test_1" style="display:none;"></div>
124
+ <div id="style_test_2" class="style-test" style="font-size:11px;"></div>
125
+
126
+ <div id="style_test_3">blah</div>
127
+ <span id="style_test_4">blah</span>
128
+ <span id="style_test_5">blah</span>
129
+
130
+ <div id="style_test_dimensions_container">
131
+ <div id="style_test_dimensions" style="background:#ddd;padding:1px;margin:1px;border:1px solid #00f"><div style="height:5px;background:#eee;width:5px;padding:2px;margin:2px;border:2px solid #0f0"> </div>
132
+ </div>
133
+ </div>
134
+
135
+ <div id="test_csstext_1">test_csstext_1</div>
136
+ <div id="test_csstext_2">test_csstext_2</div>
137
+ <div id="test_csstext_3" style="border: 1px solid red">test_csstext_3</div>
138
+ <div id="test_csstext_4" style="font-size: 20px">test_csstext_4</div>
139
+ <div id="test_csstext_5">test_csstext_5</div>
140
+
141
+ <div id="custom_attributes">
142
+ <div foo="1" bar="2"></div>
143
+ <div foo="2"></div>
144
+ </div>
145
+
146
+ <div id="cloned_element_attributes_issue" foo="original"></div>
147
+ <a id="attributes_with_issues_1" href="test.html" accesskey="L" tabindex="50" title="a link" onclick="alert('hello world');"></a>
148
+ <a id="attributes_with_issues_2" href="" accesskey="" tabindex="" title=""></a>
149
+ <a id="attributes_with_issues_3"></a>
150
+ <form id="attributes_with_issues_form" method="post" action="blah">
151
+ <input type="checkbox" id="attributes_with_issues_checked" name="a" checked="checked"/>
152
+ <input type="checkbox" id="attributes_with_issues_disabled" name="b" checked="checked" disabled="disabled"/>
153
+ <input type="text" id="attributes_with_issues_readonly" name="c" readonly="readonly" value="blech"/>
154
+ <input type="date" id="attributes_with_issues_type" value="blech" />
155
+ <select id="attributes_with_issues_multiple" name="e" multiple="multiple">
156
+ <option>blech</option>
157
+ <option>blah</option>
158
+ </select>
159
+ </form>
160
+
161
+ <!-- writeAttributes -->
162
+ <p id="write_attribute_para"></p>
163
+ <a id="write_attribute_link" href="test.html"></a>
164
+ <form action="/dev/null" id="write_attribute_form" method="get" accept-charset="utf-8">
165
+ <label id="write_attribute_label"></label>
166
+ <input type="checkbox" name="write_attribute_checkbox" value="" id="write_attribute_checkbox">
167
+ <input type="checkbox" checked="checked" name="write_attribute_checked_checkbox" value="" id="write_attribute_checked_checkbox">
168
+ <input type="text" name="write_attribute_input" value="" id="write_attribute_input">
169
+ <select id="write_attribute_select">
170
+ <option>Cat</option>
171
+ <option>Dog</option>
172
+ </select>
173
+ </form>
174
+
175
+ <table id="write_attribute_table" cellpadding="6" cellspacing="4">
176
+ <tr><td id="write_attribute_td">A</td><td>B</td></tr>
177
+ <tr><td>C</td></tr>
178
+ <tr><td>D</td><td>E</td><td>F</td></tr>
179
+ </table>
180
+
181
+ <div id="dom_attribute_precedence">
182
+ <form action="blech" method="post">
183
+ <input type="submit" id="update" />
184
+ </form>
185
+ </div>
186
+
187
+ <div id="not_floating_none">NFN</div>
188
+ <div id="not_floating_inline" style="float:none">NFI</div>
189
+ <div id="not_floating_style">NFS</div>
190
+
191
+ <div id="floating_inline" style="float:left">FI</div>
192
+ <div id="floating_style">FS</div>
193
+ <!-- Test Element opacity functions -->
194
+ <img id="op1" alt="op2" src="fixtures/logo.gif" style="opacity:0.5;filter:alpha(opacity=50)" />
195
+ <img id="op2" alt="op2" src="fixtures/logo.gif"/>
196
+ <img id="op3" alt="op3" src="fixtures/logo.gif"/>
197
+ <img id="op4-ie" alt="op3" src="fixtures/logo.gif" style="filter:alpha(opacity=30)" />
198
+ <div id="dimensions-visible"></div>
199
+ <div id="dimensions-display-none"></div>
200
+ <div id="dimensions-visible-pos-rel"></div>
201
+ <div id="dimensions-display-none-pos-rel"></div>
202
+ <div id="dimensions-visible-pos-abs"></div>
203
+ <div id="dimensions-display-none-pos-abs"></div>
204
+ <table border="0" cellspacing="0" cellpadding="0" id="dimensions-table">
205
+ <tbody id="dimensions-tbody">
206
+ <tr id="dimensions-tr">
207
+ <td id="dimensions-td">Data</td>
208
+ </tr>
209
+ </tbody>
210
+ </table>
211
+
212
+ <div id="dimensions-nester" style="width: 500px;">
213
+ <div id="dimensions-nestee" style="display: none">This is a nested DIV. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div>
214
+ </div>
215
+
216
+
217
+ <p id="test-empty"></p>
218
+ <p id="test-empty-but-contains-whitespace">
219
+
220
+
221
+ </p>
222
+ <p id="test-full">content</p>
223
+ <div id="ancestor">
224
+ <div id="child">
225
+ <div id="grand-child">
226
+ <div id="great-grand-child"></div>
227
+ </div></div><!-- intentional formatting; don't change this line -->
228
+ <div id="sibling"><div id="grand-sibling"></div></div>
229
+ </div>
230
+ <div id="not-in-the-family"></div>
231
+
232
+ <div id="insertions-container"><div id="insertions-main"><p>some content.</p></div></div>
233
+ <div id="insertions-node-container"><div id="insertions-node-main"><p>some content.</p></div></div>
234
+ <div id="element-insertions-container"><div id="element-insertions-main"><p>some content.</p></div></div>
235
+ <div id="element-insertions-multiple-container"><div id="element-insertions-multiple-main"><p>some content.</p></div></div>
236
+ <table id="table_for_insertions"></table>
237
+ <table id="table_for_row_insertions"><tr id="row_1"></tr></table>
238
+ <form method="post" action="blah">
239
+ <select id="select_for_update" name="select_for_update">
240
+ <option>option 1</option>
241
+ <option>option 2</option>
242
+ </select>
243
+ <select id="select_for_insert_bottom" name="select_for_insert_bottom">
244
+ <option>option 1</option>
245
+ <option>option 2</option>
246
+ </select>
247
+ <select id="select_for_insert_top" name="select_for_insert_top">
248
+ <option>option 1</option>
249
+ <option>option 2</option>
250
+ </select>
251
+ </form>
252
+ <div id="wrap-container"><p id="wrap"></p></div>
253
+
254
+ <!-- Positioning methods bench -->
255
+ <div id="body_absolute" style="position: absolute; top: 10px; left: 10px">
256
+ <div id="absolute_absolute" style="position: absolute; top: 10px; left:10px"> </div>
257
+ <div id="absolute_relative" style="position: relative; top: 10px; left:10px">
258
+ <div style="height:10px;font-size:2px">test<span id="inline">test</span></div>
259
+ <div id="absolute_relative_undefined">XYZ</div>
260
+ </div>
261
+ <div id="absolute_fixed" style="position: fixed; top: 10px; left: 10px">
262
+ <span id="absolute_fixed_absolute" style="position: absolute; top: 10px; left: 10px">foo</span>
263
+ <span id="absolute_fixed_undefined" style="display:block">bar</span>
264
+ </div></div>
265
+ <div id="notInlineAbsoluted"></div>
266
+ <div id="inlineAbsoluted" style="position: absolute"></div>
267
+
268
+ <div id="unextended"></div>
269
+ <div id="identification">
270
+ <div id="predefined_id"></div>
271
+ <div></div>
272
+ <div></div>
273
+ <div></div>
274
+ <div id="anonymous_element_3"></div>
275
+ </div>
276
+
277
+ <div id='elementToViewportDimensions' style='display: none'></div>
278
+ <div id="auto_dimensions" style="height:auto"></div>