OLD | NEW |
1 <html> | 1 <html> |
2 <head> | 2 <head> |
3 <script src="../../../http/tests/inspector/inspector-test.js"></script> | 3 <script src="../../../http/tests/inspector/inspector-test.js"></script> |
4 <script src="../../../http/tests/inspector/elements-test.js"></script> | 4 <script src="../../../http/tests/inspector/elements-test.js"></script> |
5 <script src="../../../http/tests/inspector/debugger-test.js"></script> | 5 <script src="../../../http/tests/inspector/debugger-test.js"></script> |
6 <script> | 6 <script> |
7 | 7 |
8 function appendElement(parentId, childId) | 8 function appendElement(parentId, childId) |
9 { | 9 { |
10 var child = document.createElement("div"); | 10 var child = document.createElement("div"); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 var authorShadowRoot; | 88 var authorShadowRoot; |
89 InspectorTest.runDebuggerTestSuite([ | 89 InspectorTest.runDebuggerTestSuite([ |
90 function testInsertChild(next) | 90 function testInsertChild(next) |
91 { | 91 { |
92 InspectorTest.addResult("Test that 'Subtree Modified' breakpoint is
hit when appending a child."); | 92 InspectorTest.addResult("Test that 'Subtree Modified' breakpoint is
hit when appending a child."); |
93 InspectorTest.nodeWithId("rootElement", step2); | 93 InspectorTest.nodeWithId("rootElement", step2); |
94 | 94 |
95 function step2(node) | 95 function step2(node) |
96 { | 96 { |
97 rootElement = node; | 97 rootElement = node; |
98 pane._setBreakpoint(node, pane._breakpointTypes.SubtreeModified,
true); | 98 WebInspector.domBreakpointManager.setBreakpoint(node, pane._brea
kpointTypes.SubtreeModified, true); |
99 InspectorTest.addResult("Set 'Subtree Modified' DOM breakpoint o
n rootElement."); | 99 InspectorTest.addResult("Set 'Subtree Modified' DOM breakpoint o
n rootElement."); |
100 InspectorTest.evaluateInPageWithTimeout("appendElement('rootElem
ent', 'childElement')"); | 100 InspectorTest.evaluateInPageWithTimeout("appendElement('rootElem
ent', 'childElement')"); |
101 InspectorTest.addResult("Append childElement to rootElement."); | 101 InspectorTest.addResult("Append childElement to rootElement."); |
102 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); | 102 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); |
103 } | 103 } |
104 }, | 104 }, |
105 | 105 |
| 106 function testBreakpointToggle(next) |
| 107 { |
| 108 InspectorTest.addResult("Test that 'Attribute Modified' breakpoint t
oggles properly."); |
| 109 InspectorTest.nodeWithId("rootElement", step2); |
| 110 var element; |
| 111 |
| 112 function step2(node) |
| 113 { |
| 114 rootElement = node; |
| 115 InspectorTest.addResult("Set 'Attribute Modified' DOM breakpoint
on rootElement."); |
| 116 WebInspector.domBreakpointManager.setBreakpoint(node, pane._brea
kpointTypes.AttributeModified, true); |
| 117 var elementId = pane._createBreakpointId(node.id, pane._breakpoi
ntTypes.AttributeModified); |
| 118 element = pane._breakpointElements.get(elementId); |
| 119 InspectorTest.addResult("Uncheck 'Attribute Modified' DOM breakp
oint on rootElement."); |
| 120 element._checkboxElement.click(); |
| 121 InspectorTest.addResult("Modify attribute for rootElement."); |
| 122 InspectorTest.evaluateInPagePromise("modifyAttribute('rootElemen
t', 'data-test-breakpoint-disabled', 'foo')").then(step3); |
| 123 } |
| 124 |
| 125 function step3() |
| 126 { |
| 127 InspectorTest.addResult("Test that 'Attribute Modified' breakpoi
nt is not hit when disabled."); |
| 128 InspectorTest.assertNotPaused(); |
| 129 InspectorTest.addResult("Check 'Attribute Modified' DOM breakpoi
nt on rootElement."); |
| 130 element._checkboxElement.click(); |
| 131 InspectorTest.evaluateInPageWithTimeout("modifyAttribute('rootEl
ement', 'data-test-breakpoint-disabled', 'bar')"); |
| 132 InspectorTest.addResult("Modify attribute for rootElement."); |
| 133 InspectorTest.addResult("Test that 'Attribute Modified' breakpoi
nt is hit when re-enabled."); |
| 134 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); |
| 135 } |
| 136 }, |
| 137 |
106 function testInsertGrandchild(next) | 138 function testInsertGrandchild(next) |
107 { | 139 { |
108 InspectorTest.addResult("Test that 'Subtree Modified' breakpoint is
hit when appending a grandchild."); | 140 InspectorTest.addResult("Test that 'Subtree Modified' breakpoint is
hit when appending a grandchild."); |
109 InspectorTest.evaluateInPageWithTimeout("appendElement('childElement
', 'grandchildElement')"); | 141 InspectorTest.evaluateInPageWithTimeout("appendElement('childElement
', 'grandchildElement')"); |
110 InspectorTest.addResult("Append grandchildElement to childElement.")
; | 142 InspectorTest.addResult("Append grandchildElement to childElement.")
; |
111 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); | 143 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); |
112 }, | 144 }, |
113 | 145 |
114 function testRemoveChild(next) | 146 function testRemoveChild(next) |
115 { | 147 { |
(...skipping 13 matching lines...) Expand all Loading... |
129 function step2() | 161 function step2() |
130 { | 162 { |
131 InspectorTest.waitUntilPaused(step3); | 163 InspectorTest.waitUntilPaused(step3); |
132 InspectorTest.evaluateInPageWithTimeout("breakDebugger()"); | 164 InspectorTest.evaluateInPageWithTimeout("breakDebugger()"); |
133 InspectorTest.addResult("Call breakDebugger, expect it to show u
p in next stack trace."); | 165 InspectorTest.addResult("Call breakDebugger, expect it to show u
p in next stack trace."); |
134 } | 166 } |
135 | 167 |
136 function step3(frames) | 168 function step3(frames) |
137 { | 169 { |
138 InspectorTest.captureStackTrace(frames); | 170 InspectorTest.captureStackTrace(frames); |
139 pane._removeBreakpoint(rootElement, pane._breakpointTypes.Subtre
eModified); | 171 WebInspector.domBreakpointManager.removeBreakpoint(rootElement,
pane._breakpointTypes.SubtreeModified); |
140 InspectorTest.resumeExecution(next); | 172 InspectorTest.resumeExecution(next); |
141 } | 173 } |
142 }, | 174 }, |
143 | 175 |
144 function testModifyAttribute(next) | 176 function testModifyAttribute(next) |
145 { | 177 { |
146 InspectorTest.addResult("Test that 'Attribute Modified' breakpoint i
s hit when modifying attribute."); | 178 InspectorTest.addResult("Test that 'Attribute Modified' breakpoint i
s hit when modifying attribute."); |
147 pane._setBreakpoint(rootElement, pane._breakpointTypes.AttributeModi
fied, true); | 179 WebInspector.domBreakpointManager.setBreakpoint(rootElement, pane._b
reakpointTypes.AttributeModified, true); |
148 InspectorTest.addResult("Set 'Attribute Modified' DOM breakpoint on
rootElement."); | 180 InspectorTest.addResult("Set 'Attribute Modified' DOM breakpoint on
rootElement."); |
149 InspectorTest.evaluateInPageWithTimeout("modifyAttribute('rootElemen
t', 'data-test', 'foo')"); | 181 InspectorTest.evaluateInPageWithTimeout("modifyAttribute('rootElemen
t', 'data-test', 'foo')"); |
150 InspectorTest.addResult("Modify rootElement data-test attribute."); | 182 InspectorTest.addResult("Modify rootElement data-test attribute."); |
151 InspectorTest.waitUntilPausedAndDumpStackAndResume(step2); | 183 InspectorTest.waitUntilPausedAndDumpStackAndResume(step2); |
152 | 184 |
153 function step2(callFrames) | 185 function step2(callFrames) |
154 { | 186 { |
155 pane._removeBreakpoint(rootElement, pane._breakpointTypes.Attrib
uteModified); | 187 WebInspector.domBreakpointManager.removeBreakpoint(rootElement,
pane._breakpointTypes.AttributeModified); |
156 next(); | 188 InspectorTest.addResult("Ensure the breakpoint is actually remov
ed."); |
| 189 InspectorTest.evaluateInPagePromise("modifyAttribute('rootElemen
t', 'data-test', 'foo')").then(step3); |
| 190 InspectorTest.addResult("Modify rootElement data-test attribute.
"); |
| 191 } |
| 192 |
| 193 function step3() |
| 194 { |
| 195 InspectorTest.waitUntilResumed(next); |
157 } | 196 } |
158 }, | 197 }, |
159 | 198 |
160 function testModifyAttrNode(next) | 199 function testModifyAttrNode(next) |
161 { | 200 { |
162 InspectorTest.addResult("Test that 'Attribute Modified' breakpoint i
s hit when modifying Attr node."); | 201 InspectorTest.addResult("Test that 'Attribute Modified' breakpoint i
s hit when modifying Attr node."); |
163 pane._setBreakpoint(rootElement, pane._breakpointTypes.AttributeModi
fied, true); | 202 WebInspector.domBreakpointManager.setBreakpoint(rootElement, pane._b
reakpointTypes.AttributeModified, true); |
164 InspectorTest.addResult("Set 'Attribute Modified' DOM breakpoint on
rootElement."); | 203 InspectorTest.addResult("Set 'Attribute Modified' DOM breakpoint on
rootElement."); |
165 InspectorTest.evaluateInPageWithTimeout("modifyAttrNode('rootElement
', 'data-test', 'bar')"); | 204 InspectorTest.evaluateInPageWithTimeout("modifyAttrNode('rootElement
', 'data-test', 'bar')"); |
166 InspectorTest.addResult("Modify rootElement data-test attribute."); | 205 InspectorTest.addResult("Modify rootElement data-test attribute."); |
167 InspectorTest.waitUntilPausedAndDumpStackAndResume(step2); | 206 InspectorTest.waitUntilPausedAndDumpStackAndResume(step2); |
168 | 207 |
169 function step2(callFrames) | 208 function step2(callFrames) |
170 { | 209 { |
171 pane._removeBreakpoint(rootElement, pane._breakpointTypes.Attrib
uteModified); | 210 WebInspector.domBreakpointManager.removeBreakpoint(rootElement,
pane._breakpointTypes.AttributeModified); |
172 next(); | 211 next(); |
173 } | 212 } |
174 }, | 213 }, |
175 | 214 |
176 function testSetAttrNode(next) | 215 function testSetAttrNode(next) |
177 { | 216 { |
178 InspectorTest.addResult("Test that 'Attribute Modified' breakpoint i
s hit when adding a new Attr node."); | 217 InspectorTest.addResult("Test that 'Attribute Modified' breakpoint i
s hit when adding a new Attr node."); |
179 pane._setBreakpoint(rootElement, pane._breakpointTypes.AttributeModi
fied, true); | 218 WebInspector.domBreakpointManager.setBreakpoint(rootElement, pane._b
reakpointTypes.AttributeModified, true); |
180 InspectorTest.addResult("Set 'Attribute Modified' DOM breakpoint on
rootElement."); | 219 InspectorTest.addResult("Set 'Attribute Modified' DOM breakpoint on
rootElement."); |
181 InspectorTest.evaluateInPageWithTimeout("setAttrNode('rootElement',
'data-foo', 'bar')"); | 220 InspectorTest.evaluateInPageWithTimeout("setAttrNode('rootElement',
'data-foo', 'bar')"); |
182 InspectorTest.addResult("Modify rootElement data-foo attribute."); | 221 InspectorTest.addResult("Modify rootElement data-foo attribute."); |
183 InspectorTest.waitUntilPausedAndDumpStackAndResume(step2); | 222 InspectorTest.waitUntilPausedAndDumpStackAndResume(step2); |
184 | 223 |
185 function step2(callFrames) | 224 function step2(callFrames) |
186 { | 225 { |
187 pane._removeBreakpoint(rootElement, pane._breakpointTypes.Attrib
uteModified); | 226 WebInspector.domBreakpointManager.removeBreakpoint(rootElement,
pane._breakpointTypes.AttributeModified); |
188 next(); | 227 next(); |
189 } | 228 } |
190 }, | 229 }, |
191 | 230 |
192 function testModifyStyleAttribute(next) | 231 function testModifyStyleAttribute(next) |
193 { | 232 { |
194 InspectorTest.addResult("Test that 'Attribute Modified' breakpoint i
s hit when modifying style attribute."); | 233 InspectorTest.addResult("Test that 'Attribute Modified' breakpoint i
s hit when modifying style attribute."); |
195 pane._setBreakpoint(rootElement, pane._breakpointTypes.AttributeModi
fied, true); | 234 WebInspector.domBreakpointManager.setBreakpoint(rootElement, pane._b
reakpointTypes.AttributeModified, true); |
196 InspectorTest.addResult("Set 'Attribute Modified' DOM breakpoint on
rootElement."); | 235 InspectorTest.addResult("Set 'Attribute Modified' DOM breakpoint on
rootElement."); |
197 InspectorTest.evaluateInPageWithTimeout("modifyStyleAttribute('rootE
lement', 'color', 'green')"); | 236 InspectorTest.evaluateInPageWithTimeout("modifyStyleAttribute('rootE
lement', 'color', 'green')"); |
198 InspectorTest.addResult("Modify rootElement style.color attribute.")
; | 237 InspectorTest.addResult("Modify rootElement style.color attribute.")
; |
199 InspectorTest.waitUntilPausedAndDumpStackAndResume(step2); | 238 InspectorTest.waitUntilPausedAndDumpStackAndResume(step2); |
200 | 239 |
201 function step2(callFrames) | 240 function step2(callFrames) |
202 { | 241 { |
203 pane._removeBreakpoint(rootElement, pane._breakpointTypes.Attrib
uteModified); | 242 WebInspector.domBreakpointManager.removeBreakpoint(rootElement,
pane._breakpointTypes.AttributeModified); |
204 next(); | 243 next(); |
205 } | 244 } |
206 }, | 245 }, |
207 | 246 |
208 function testRemoveNode(next) | 247 function testRemoveNode(next) |
209 { | 248 { |
210 InspectorTest.addResult("Test that 'Node Removed' breakpoint is hit
when removing a node."); | 249 InspectorTest.addResult("Test that 'Node Removed' breakpoint is hit
when removing a node."); |
211 InspectorTest.nodeWithId("elementToRemove", step2); | 250 InspectorTest.nodeWithId("elementToRemove", step2); |
212 | 251 |
213 function step2(node) | 252 function step2(node) |
214 { | 253 { |
215 pane._setBreakpoint(node, pane._breakpointTypes.NodeRemoved, tru
e); | 254 WebInspector.domBreakpointManager.setBreakpoint(node, pane._brea
kpointTypes.NodeRemoved, true); |
216 InspectorTest.addResult("Set 'Node Removed' DOM breakpoint on el
ementToRemove."); | 255 InspectorTest.addResult("Set 'Node Removed' DOM breakpoint on el
ementToRemove."); |
217 InspectorTest.evaluateInPageWithTimeout("removeElement('elementT
oRemove')"); | 256 InspectorTest.evaluateInPageWithTimeout("removeElement('elementT
oRemove')"); |
218 InspectorTest.addResult("Remove elementToRemove."); | 257 InspectorTest.addResult("Remove elementToRemove."); |
219 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); | 258 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); |
220 } | 259 } |
221 }, | 260 }, |
222 | 261 |
223 function testReload(next) | 262 function testReload(next) |
224 { | 263 { |
225 InspectorTest.addResult("Test that DOM breakpoints are persisted bet
ween page reloads."); | 264 InspectorTest.addResult("Test that DOM breakpoints are persisted bet
ween page reloads."); |
226 InspectorTest.nodeWithId("rootElement", step2); | 265 InspectorTest.nodeWithId("rootElement", step2); |
227 | 266 |
228 function step2(node) | 267 function step2(node) |
229 { | 268 { |
230 pane._setBreakpoint(node, pane._breakpointTypes.SubtreeModified,
true); | 269 WebInspector.domBreakpointManager.setBreakpoint(node, pane._brea
kpointTypes.SubtreeModified, true); |
231 pane._saveBreakpoints(); | |
232 InspectorTest.addResult("Set 'Subtree Modified' DOM breakpoint o
n rootElement."); | 270 InspectorTest.addResult("Set 'Subtree Modified' DOM breakpoint o
n rootElement."); |
233 InspectorTest.reloadPage(step3); | 271 InspectorTest.reloadPage(step3); |
234 } | 272 } |
235 | 273 |
236 function step3() | 274 function step3() |
237 { | 275 { |
238 InspectorTest.expandElementsTree(step4); | 276 InspectorTest.expandElementsTree(step4); |
239 } | 277 } |
240 | 278 |
241 function step4() | 279 function step4() |
242 { | 280 { |
243 InspectorTest.evaluateInPageWithTimeout("appendElement('rootElem
ent', 'childElement')"); | 281 InspectorTest.evaluateInPageWithTimeout("appendElement('rootElem
ent', 'childElement')"); |
244 InspectorTest.addResult("Append childElement to rootElement."); | 282 InspectorTest.addResult("Append childElement to rootElement."); |
245 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); | 283 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); |
246 } | 284 } |
247 }, | 285 }, |
248 | 286 |
249 function testInsertChildIntoAuthorShadowTree(next) | 287 function testInsertChildIntoAuthorShadowTree(next) |
250 { | 288 { |
251 InspectorTest.shadowRootByHostId("hostElement", callback); | 289 InspectorTest.shadowRootByHostId("hostElement", callback); |
252 | 290 |
253 function callback(node) | 291 function callback(node) |
254 { | 292 { |
255 authorShadowRoot = node; | 293 authorShadowRoot = node; |
256 InspectorTest.addResult("Test that 'Subtree Modified' breakpoint
on author shadow root is hit when appending a child."); | 294 InspectorTest.addResult("Test that 'Subtree Modified' breakpoint
on author shadow root is hit when appending a child."); |
257 pane._setBreakpoint(authorShadowRoot, pane._breakpointTypes.Subt
reeModified, true); | 295 WebInspector.domBreakpointManager.setBreakpoint(authorShadowRoot
, pane._breakpointTypes.SubtreeModified, true); |
258 InspectorTest.addResult("Set 'Subtree Modified' DOM breakpoint o
n author shadow root."); | 296 InspectorTest.addResult("Set 'Subtree Modified' DOM breakpoint o
n author shadow root."); |
259 InspectorTest.evaluateInPageWithTimeout("appendElementToOpenShad
owRoot('childElement')"); | 297 InspectorTest.evaluateInPageWithTimeout("appendElementToOpenShad
owRoot('childElement')"); |
260 InspectorTest.addResult("Append childElement to author shadow ro
ot."); | 298 InspectorTest.addResult("Append childElement to author shadow ro
ot."); |
261 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); | 299 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); |
262 } | 300 } |
263 }, | 301 }, |
264 | 302 |
265 function testReloadWithShadowElementBreakpoint(next) | 303 function testReloadWithShadowElementBreakpoint(next) |
266 { | 304 { |
267 InspectorTest.nodeWithId("outerElement", step1); | 305 InspectorTest.nodeWithId("outerElement", step1); |
268 | 306 |
269 function step1(node) | 307 function step1(node) |
270 { | 308 { |
271 outerElement = node; | 309 outerElement = node; |
272 | 310 |
273 InspectorTest.addResult("Test that shadow DOM breakpoints are pe
rsisted between page reloads."); | 311 InspectorTest.addResult("Test that shadow DOM breakpoints are pe
rsisted between page reloads."); |
274 pane._setBreakpoint(outerElement, pane._breakpointTypes.SubtreeM
odified, true); | 312 WebInspector.domBreakpointManager.setBreakpoint(outerElement, pa
ne._breakpointTypes.SubtreeModified, true); |
275 pane._saveBreakpoints(); | |
276 InspectorTest.addResult("Set 'Subtree Modified' DOM breakpoint o
n outerElement."); | 313 InspectorTest.addResult("Set 'Subtree Modified' DOM breakpoint o
n outerElement."); |
277 InspectorTest.reloadPage(step2); | 314 InspectorTest.reloadPage(step2); |
278 } | 315 } |
279 | 316 |
280 function step2() | 317 function step2() |
281 { | 318 { |
282 InspectorTest.expandElementsTree(step3); | 319 InspectorTest.expandElementsTree(step3); |
283 } | 320 } |
284 | 321 |
285 function step3() | 322 function step3() |
(...skipping 20 matching lines...) Expand all Loading... |
306 </div> | 343 </div> |
307 | 344 |
308 <div id="hostElement"></div> | 345 <div id="hostElement"></div> |
309 <script> | 346 <script> |
310 var root = document.getElementById("hostElement").createShadowRoot(); | 347 var root = document.getElementById("hostElement").createShadowRoot(); |
311 root.innerHTML = "<div id='outerElement' style='red'><input id='input'/></div>"; | 348 root.innerHTML = "<div id='outerElement' style='red'><input id='input'/></div>"; |
312 </script> | 349 </script> |
313 | 350 |
314 </body> | 351 </body> |
315 </html> | 352 </html> |
OLD | NEW |