1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?xml version="1.0"?>
- <?xml-stylesheet href="chrome://global/skin" type="text/css"?>
- <?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
- <!--
- https://bugzilla.mozilla.org/show_bug.cgi?id=445177
- -->
- <window title="Test for Bug 445177"
- id="test_bug445177_xul"
- xmlns:html="http://www.w3.org/1999/xhtml"
- xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
- <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
- <body id="body" xmlns="http://www.w3.org/1999/xhtml">
- <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=445177">Mozilla Bug 445177</a>
- <hbox id="b1" value="foo"/>
- <hbox id="o1" observes="b1"/>
- <pre id="test">
- <script class="testbody" type="text/javascript">
- <![CDATA[
- SimpleTest.waitForExplicitFinish();
- function do_test() {
- var b1 = document.getElementById("b1");
- var o1 = document.getElementById("o1");
- is(o1.getAttribute("value"), b1.getAttribute("value"), "Wrong value (1)");
- b1.setAttribute("value", "bar");
- is(o1.getAttribute("value"), b1.getAttribute("value"), "Wrong value (2)");
- b1.removeAttribute("value");
- is(o1.hasAttribute("value"), b1.hasAttribute("value"), "Wrong value (3)");
- o1.setAttribute("value", "foo");
- isnot(o1.getAttribute("value"), b1.getAttribute("value"), "Wrong value (4)");
- b1.setAttribute("value", "foobar");
- is(o1.getAttribute("value"), b1.getAttribute("value"), "Wrong value (5)");
- //After removing listener, changes to broadcaster shouldn't have any effect.
- o1.parentNode.removeChild(o1);
- b1.setAttribute("value", "foo");
- isnot(o1.getAttribute("value"), b1.getAttribute("value"), "Wrong value (6)");
- b1.parentNode.appendChild(o1);
- is(o1.getAttribute("value"), b1.getAttribute("value"), "Wrong value (7)");
- o1.parentNode.removeChild(o1);
- o1.removeAttribute("observes");
- o1.removeAttribute("value");
- b1.parentNode.appendChild(o1);
- isnot(o1.getAttribute("value"), b1.getAttribute("value"), "Wrong value (8)");
- document.addBroadcastListenerFor(b1, o1, "value");
- is(o1.getAttribute("value"), b1.getAttribute("value"), "Wrong value (9)");
- o1.parentNode.removeChild(o1);
- b1.setAttribute("value", "foobar");
- is(o1.getAttribute("value"), b1.getAttribute("value"), "Wrong value (10)");
- b1.parentNode.appendChild(o1);
- is(o1.getAttribute("value"), b1.getAttribute("value"), "Wrong value (11)");
- o1.setAttribute("observes", "b1");
- is(o1.getAttribute("value"), b1.getAttribute("value"), "Wrong value (12)");
- // When broadcaster isn't in document, changes to its attributes aren't
- // reflected to listener.
- b1.parentNode.removeChild(b1);
- b1.setAttribute("value", "foo");
- isnot(o1.getAttribute("value"), b1.getAttribute("value"), "Wrong value (13)");
- SimpleTest.finish();
- }
- addLoadEvent(do_test);
- ]]>
- </script>
- </pre>
- </body>
- </window>
|