| OLD | NEW |
| (Empty) |
| 1 <html> | |
| 2 <head> | |
| 3 <script src="../../http/tests/inspector/inspector-test.js"></script> | |
| 4 <script src="../../http/tests/inspector/elements-test.js"></script> | |
| 5 <script src="edit-dom-test.js"></script> | |
| 6 <script> | |
| 7 | |
| 8 function test() | |
| 9 { | |
| 10 // Save time on style updates. | |
| 11 WebInspector.StylesSidebarPane.prototype.update = function() {}; | |
| 12 WebInspector.MetricsSidebarPane.prototype.update = function() {}; | |
| 13 | |
| 14 InspectorTest.runTestSuite([ | |
| 15 function testSetUp(next) | |
| 16 { | |
| 17 InspectorTest.expandElementsTree(next); | |
| 18 }, | |
| 19 | |
| 20 function testRemove(next) | |
| 21 { | |
| 22 InspectorTest.domActionTestForNodeId("testRemove", "node-to-remove",
testBody, next); | |
| 23 | |
| 24 function testBody(node, done) | |
| 25 { | |
| 26 var treeElement = InspectorTest.firstElementsTreeOutline().findT
reeElement(node); | |
| 27 treeElement.remove(); | |
| 28 InspectorTest.runAfterPendingDispatches(done); | |
| 29 } | |
| 30 }, | |
| 31 | |
| 32 function testSetNodeName(next) | |
| 33 { | |
| 34 InspectorTest.domActionTestForNodeId("testSetNodeName", "node-to-set
-name", testBody, next); | |
| 35 | |
| 36 function testBody(node, done) | |
| 37 { | |
| 38 InspectorTest.editNodePartAndRun(node, "webkit-html-tag-name", "
span", done); | |
| 39 } | |
| 40 }, | |
| 41 | |
| 42 function testSetNodeNameInput(next) | |
| 43 { | |
| 44 InspectorTest.domActionTestForNodeId("testSetNodeNameInput", "node-t
o-set-name-input", testBody, next); | |
| 45 | |
| 46 function testBody(node, done) | |
| 47 { | |
| 48 InspectorTest.editNodePartAndRun(node, "webkit-html-tag-name", "
input", done); | |
| 49 } | |
| 50 }, | |
| 51 | |
| 52 function testSetNodeValue(next) | |
| 53 { | |
| 54 InspectorTest.domActionTestForNodeId("testSetNodeValue", "node-to-se
t-value", testBody, next); | |
| 55 | |
| 56 function testBody(node, done) | |
| 57 { | |
| 58 InspectorTest.editNodePartAndRun(node, "webkit-html-text-node",
" \n Edited Text \n ", done); | |
| 59 } | |
| 60 }, | |
| 61 | |
| 62 function testSetAttribute(next) | |
| 63 { | |
| 64 InspectorTest.domActionTestForNodeId("testSetAttribute", "node-to-se
t-attribute", testBody, next); | |
| 65 | |
| 66 function testBody(node, done) | |
| 67 { | |
| 68 InspectorTest.editNodePartAndRun(node, "webkit-html-attribute",
"bar=\"edited attribute\"", done, true); | |
| 69 } | |
| 70 }, | |
| 71 | |
| 72 function testSetScriptableAttribute(next) | |
| 73 { | |
| 74 InspectorTest.domActionTestForNodeId("testSetScriptableAttribute", "
node-to-set-scriptable-attribute", testBody, next); | |
| 75 | |
| 76 function testBody(node, done) | |
| 77 { | |
| 78 InspectorTest.editNodePartAndRun(node, "webkit-html-attribute",
"onclick=\"alert(2)\"", done, true); | |
| 79 } | |
| 80 }, | |
| 81 | |
| 82 function testRemoveAttribute(next) | |
| 83 { | |
| 84 InspectorTest.domActionTestForNodeId("testRemoveAttribute", "node-to
-remove-attribute", testBody, next); | |
| 85 | |
| 86 function testBody(node, done) | |
| 87 { | |
| 88 InspectorTest.editNodePartAndRun(node, "webkit-html-attribute",
"", done, true); | |
| 89 } | |
| 90 }, | |
| 91 | |
| 92 function testAddAttribute(next) | |
| 93 { | |
| 94 InspectorTest.doAddAttribute("testAddAttribute", "node-to-add-attrib
ute", "newattr=\"new-value\"", next); | |
| 95 }, | |
| 96 | |
| 97 function testAddAttributeUnquotedValue(next) | |
| 98 { | |
| 99 InspectorTest.doAddAttribute("testAddAttributeUnquotedValue", "node-
to-add-attribute-unquoted-value", "newattr=unquotedValue", next); | |
| 100 }, | |
| 101 | |
| 102 function testEditCommentAsHTML(next) | |
| 103 { | |
| 104 function commentNodeSelectionCallback(testNode, callback) | |
| 105 { | |
| 106 var childNodes = testNode.children(); | |
| 107 for (var i = 0; i < childNodes.length; ++i) { | |
| 108 if (childNodes[i].nodeType() === 8) { | |
| 109 WebInspector.Revealer.reveal(childNodes[i]); | |
| 110 callback(childNodes[i]); | |
| 111 return; | |
| 112 } | |
| 113 } | |
| 114 InspectorTest.addResult("Comment node not found"); | |
| 115 InspectorTest.completeTest(); | |
| 116 } | |
| 117 InspectorTest.domActionTest("testEditCommentAsHTML", commentNodeSele
ctionCallback, testBody, next); | |
| 118 | |
| 119 function testBody(node, done) | |
| 120 { | |
| 121 var treeOutline = InspectorTest.firstElementsTreeOutline(); | |
| 122 var treeElement = treeOutline.findTreeElement(node); | |
| 123 treeOutline._toggleEditAsHTML(node); | |
| 124 InspectorTest.runAfterPendingDispatches(step2); | |
| 125 | |
| 126 function step2() | |
| 127 { | |
| 128 InspectorTest.addResult(treeElement._editing.codeMirror.getV
alue()); | |
| 129 treeElement._editing.codeMirror.setValue("<div foo=\"bar-com
ment\">Element</div>"); | |
| 130 var event = InspectorTest.createKeyEvent("Enter"); | |
| 131 event.isMetaOrCtrlForTest = true; | |
| 132 treeElement._htmlEditElement.dispatchEvent(event); | |
| 133 InspectorTest.runAfterPendingDispatches(done); | |
| 134 } | |
| 135 } | |
| 136 }, | |
| 137 | |
| 138 function testEditAsHTML(next) | |
| 139 { | |
| 140 InspectorTest.domActionTestForNodeId("testEditAsHTML", "node-to-edit
-as-html", testBody, next); | |
| 141 | |
| 142 function testBody(node, done) | |
| 143 { | |
| 144 var treeOutline = InspectorTest.firstElementsTreeOutline(); | |
| 145 var treeElement = treeOutline.findTreeElement(node); | |
| 146 treeOutline._toggleEditAsHTML(node); | |
| 147 InspectorTest.runAfterPendingDispatches(step2); | |
| 148 | |
| 149 function step2() | |
| 150 { | |
| 151 InspectorTest.addResult(treeElement._editing.codeMirror.getV
alue()); | |
| 152 treeElement._editing.codeMirror.setValue("<span foo=\"bar\">
<span id=\"inner-span\">Span contents</span></span>"); | |
| 153 var event = InspectorTest.createKeyEvent("Enter"); | |
| 154 event.isMetaOrCtrlForTest = true; | |
| 155 treeElement._htmlEditElement.dispatchEvent(event); | |
| 156 InspectorTest.runAfterPendingDispatches(InspectorTest.expand
ElementsTree.bind(InspectorTest, done)); | |
| 157 } | |
| 158 } | |
| 159 }, | |
| 160 | |
| 161 function testEditInvisibleCharsAsHTML(next) | |
| 162 { | |
| 163 InspectorTest.domActionTestForNodeId("testEditInvisibleCharsAsHTML",
"node-with-invisible-chars", testBody, next); | |
| 164 | |
| 165 function testBody(node, done) | |
| 166 { | |
| 167 var treeOutline = InspectorTest.firstElementsTreeOutline(); | |
| 168 var treeElement = treeOutline.findTreeElement(node); | |
| 169 treeOutline._toggleEditAsHTML(node); | |
| 170 InspectorTest.runAfterPendingDispatches(step2); | |
| 171 | |
| 172 function step2() | |
| 173 { | |
| 174 var codeMirror = treeElement._editing.codeMirror; | |
| 175 InspectorTest.addResult(codeMirror.getValue()); | |
| 176 codeMirror.setValue(codeMirror.getValue().replace(/&/g, '#')
); | |
| 177 var event = InspectorTest.createKeyEvent("Enter"); | |
| 178 event.isMetaOrCtrlForTest = true; | |
| 179 treeElement._htmlEditElement.dispatchEvent(event); | |
| 180 InspectorTest.runAfterPendingDispatches(InspectorTest.expand
ElementsTree.bind(InspectorTest, done)); | |
| 181 } | |
| 182 } | |
| 183 }, | |
| 184 | |
| 185 function testEditScript(next) | |
| 186 { | |
| 187 InspectorTest.domActionTestForNodeId("testEditScript", "node-to-edit
-script", testBody, next); | |
| 188 | |
| 189 function testBody(node, done) | |
| 190 { | |
| 191 InspectorTest.editNodePartAndRun(node, "webkit-html-text-node",
"var i = 0;\n var j = 0;\n", done); | |
| 192 } | |
| 193 }, | |
| 194 | |
| 195 function testEditSVGAttribute(next) | |
| 196 { | |
| 197 InspectorTest.domActionTestForNodeId("testEditSVG", "node-to-edit-sv
g-attribute", testBody, next); | |
| 198 | |
| 199 function testBody(node, done) | |
| 200 { | |
| 201 var treeOutline = InspectorTest.firstElementsTreeOutline(); | |
| 202 var treeElement = treeOutline.findTreeElement(node); | |
| 203 treeOutline._toggleEditAsHTML(node); | |
| 204 InspectorTest.runAfterPendingDispatches(step2); | |
| 205 | |
| 206 function step2() | |
| 207 { | |
| 208 var value = treeElement._editing.codeMirror.getValue(); | |
| 209 InspectorTest.addResult(value); | |
| 210 treeElement._editing.codeMirror.setValue(value.replace("100"
, "110")); | |
| 211 var event = InspectorTest.createKeyEvent("Enter"); | |
| 212 event.isMetaOrCtrlForTest = true; | |
| 213 treeElement._htmlEditElement.dispatchEvent(event); | |
| 214 InspectorTest.runAfterPendingDispatches(InspectorTest.expand
ElementsTree.bind(InspectorTest, done)); | |
| 215 } | |
| 216 } | |
| 217 } | |
| 218 ]); | |
| 219 } | |
| 220 | |
| 221 </script> | |
| 222 </head> | |
| 223 | |
| 224 <body onload="runTest()"> | |
| 225 <p> | |
| 226 Tests that user can mutate DOM by means of elements panel. | |
| 227 </p> | |
| 228 | |
| 229 <div> | |
| 230 <div id="testRemove"> | |
| 231 <div id="node-to-remove"></div> | |
| 232 </div> | |
| 233 | |
| 234 <div id="testSetNodeName"> | |
| 235 <div id="node-to-set-name"></div> | |
| 236 </div> | |
| 237 | |
| 238 <div id="testSetNodeNameInput"> | |
| 239 <div id="node-to-set-name-input"></div> | |
| 240 </div> | |
| 241 | |
| 242 <div id="testSetNodeValue"> | |
| 243 <div id="node-to-set-value"> | |
| 244 Text | |
| 245 </div> | |
| 246 </div> | |
| 247 | |
| 248 <div id="testSetAttribute"> | |
| 249 <div foo="attribute value" id="node-to-set-attribute"></div> | |
| 250 </div> | |
| 251 | |
| 252 <div id="testSetScriptableAttribute"> | |
| 253 <div onclick="alert(1)" id="node-to-set-scriptable-attribute"></div> | |
| 254 </div> | |
| 255 | |
| 256 <div id="testRemoveAttribute"> | |
| 257 <div foo="attribute value" id="node-to-remove-attribute"></div> | |
| 258 </div> | |
| 259 | |
| 260 <div id="testAddAttribute"> | |
| 261 <div id="node-to-add-attribute"></div> | |
| 262 </div> | |
| 263 | |
| 264 <div id="testAddAttributeUnquotedValue"> | |
| 265 <div id="node-to-add-attribute-unquoted-value"></div> | |
| 266 </div> | |
| 267 | |
| 268 <div id="testEditAsHTML"> | |
| 269 <div id="node-to-edit-as-html"><span id="span">Text</span></div> | |
| 270 </div> | |
| 271 | |
| 272 <div id="testEditInvisibleCharsAsHTML"> | |
| 273 <div id="node-with-invisible-chars">A B C D E&zwnj
;F‍G‏H‎I</div> | |
| 274 </div> | |
| 275 | |
| 276 <div id="testEditScript"> | |
| 277 <script id="node-to-edit-script"> | |
| 278 | |
| 279 var i = 0; | |
| 280 var j = 5; | |
| 281 for (; i < j; ++i) { | |
| 282 // Do nothing. | |
| 283 } | |
| 284 | |
| 285 </script> | |
| 286 </div> | |
| 287 | |
| 288 <div id="testEditSVG"> | |
| 289 <svg id="node-to-edit-svg-attribute" xmlns:xlink="test" width="100"> | |
| 290 </svg> | |
| 291 </div> | |
| 292 | |
| 293 <div id="testEditCommentAsHTML"> | |
| 294 <!-- Comment --> | |
| 295 </div> | |
| 296 </div> | |
| 297 </body> | |
| 298 </html> | |
| OLD | NEW |