Tests DOM breakpoints.

Running: testInsertChild
Test that 'Subtree Modified' breakpoint is hit when appending a child.
Set 'Subtree Modified' DOM breakpoint on rootElement.
Append childElement to rootElement.
Script execution paused.
Call stack:
    0) appendElement (dom-breakpoints.html:5)
    1)  (:1)
    [setTimeout]
    0)  (:1)
Paused on subtree modificationsdiv#rootElementChild div#rootElement added
Script execution resumed.

Running: testBreakpointToggle
Test that DOM breakpoint toggles properly using checkbox.
Set DOM breakpoint.
Uncheck DOM breakpoint.
DOM breakpoint should not be hit when disabled.
Check DOM breakpoint.
Test that DOM breakpoint is hit when re-enabled.
Script execution paused.
Call stack:
    0) modifyAttribute (dom-breakpoints.html:10)
    1)  (:1)
    [setTimeout]
    0)  (:1)
Paused on attribute modificationsdiv#rootElement
Script execution resumed.

Running: testInsertGrandchild
Test that 'Subtree Modified' breakpoint is hit when appending a grandchild.
Append grandchildElement to childElement.
Script execution paused.
Call stack:
    0) appendElement (dom-breakpoints.html:5)
    1)  (:1)
    [setTimeout]
    0)  (:1)
Paused on subtree modificationsdiv#rootElementDescendant div#childElement added
Script execution resumed.

Running: testRemoveChild
Test that 'Subtree Modified' breakpoint is hit when removing a child.
Remove grandchildElement.
Script execution paused.
Call stack:
    0) removeElement (dom-breakpoints.html:32)
    1)  (:1)
    [setTimeout]
    0)  (:1)
Paused on subtree modificationsdiv#rootElementDescendant div#grandchildElement removed
Script execution resumed.

Running: testInnerHTML
Test that 'Subtree Modified' breakpoint is hit exactly once when setting innerHTML.
Set childElement.innerHTML.
Script execution paused.
Call stack:
    0) setInnerHTML (dom-breakpoints.html:37)
    1)  (:1)
    [setTimeout]
    0)  (:1)
Paused on subtree modificationsdiv#rootElementDescendant div#childElement added
Script execution resumed.
Call breakDebugger, expect it to show up in next stack trace.
Script execution paused.
Call stack:
    0) breakDebugger (dom-breakpoints.html:41)
    1)  (:1)
Script execution resumed.

Running: testModifyAttribute
Test that 'Attribute Modified' breakpoint is hit when modifying attribute.
Set 'Attribute Modified' DOM breakpoint on rootElement.
Modify rootElement data-test attribute.
Script execution paused.
Call stack:
    0) modifyAttribute (dom-breakpoints.html:10)
    1)  (:1)
    [setTimeout]
    0)  (:1)
Paused on attribute modificationsdiv#rootElement
Script execution resumed.

Running: testModifyAttrNode
Test that 'Attribute Modified' breakpoint is hit when modifying Attr node.
Set 'Attribute Modified' DOM breakpoint on rootElement.
Modify rootElement data-test attribute.
Script execution paused.
Call stack:
    0) modifyAttrNode (dom-breakpoints.html:15)
    1)  (:1)
    [setTimeout]
    0)  (:1)
Paused on attribute modificationsdiv#rootElement
Script execution resumed.

Running: testSetAttrNode
Test that 'Attribute Modified' breakpoint is hit when adding a new Attr node.
Set 'Attribute Modified' DOM breakpoint on rootElement.
Modify rootElement data-foo attribute.
Script execution paused.
Call stack:
    0) setAttrNode (dom-breakpoints.html:22)
    1)  (:1)
    [setTimeout]
    0)  (:1)
Paused on attribute modificationsdiv#rootElement
Script execution resumed.

Running: testModifyStyleAttribute
Test that 'Attribute Modified' breakpoint is hit when modifying style attribute.
Set 'Attribute Modified' DOM breakpoint on rootElement.
Modify rootElement style.color attribute.
Script execution paused.
Call stack:
    0) modifyStyleAttribute (dom-breakpoints.html:27)
    1)  (:1)
    [setTimeout]
    0)  (:1)
Paused on attribute modificationsdiv#rootElement
Script execution resumed.

Running: testRemoveNode
Test that 'Node Removed' breakpoint is hit when removing a node.
Set 'Node Removed' DOM breakpoint on elementToRemove.
Remove elementToRemove.
Script execution paused.
Call stack:
    0) removeElement (dom-breakpoints.html:32)
    1)  (:1)
    [setTimeout]
    0)  (:1)
Paused on node removaldiv#elementToRemove
Script execution resumed.

