file_bug816340.xhtml (2132B)
1 <?xml version="1.0"?> 2 <?xml-stylesheet href="chrome://global/skin" type="text/css"?> 3 <?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" 4 type="text/css"?> 5 <!-- 6 https://bugzilla.mozilla.org/show_bug.cgi?id=816340 7 --> 8 <window title="Mozilla Bug 816340" 9 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" 10 onload="start();"> 11 <label value="Mozilla Bug 816340"/> 12 <!-- test code goes here --> 13 <script type="application/javascript"><![CDATA[ 14 15 function ok(val, msg) { 16 window.arguments[0].ok(val, msg); 17 } 18 19 var elems = 20 [ 21 "input", 22 "textarea", 23 "select", 24 "button", 25 ]; 26 27 var chromeDidGetEvent = false; 28 function chromeListener() { 29 chromeDidGetEvent = true; 30 } 31 32 function testElement(el, disabled, contentShouldGetEvent) { 33 chromeDidGetEvent = false; 34 var b = document.getElementById("browser"); 35 b.contentDocument.body.innerHTML = null; 36 var e = b.contentDocument.createElement(el); 37 if (disabled) { 38 e.setAttribute("disabled", "true"); 39 } 40 b.contentDocument.body.appendChild(e); 41 var contentDidGetEvent = false; 42 b.contentDocument.body.addEventListener("foo", 43 function() { contentDidGetEvent = true }, true); 44 45 b.addEventListener("foo", chromeListener, true); 46 e.dispatchEvent(new Event("foo")); 47 b.removeEventListener("foo", chromeListener, true); 48 ok(contentDidGetEvent == contentShouldGetEvent, "content: " + el + (disabled ? " disabled" : "")); 49 ok(chromeDidGetEvent, "chrome: " + el + (disabled ? " disabled" : "")); 50 } 51 52 function start() { 53 // Test common element. 54 testElement("div", false, true); 55 testElement("div", true, true); 56 57 for (var i = 0; i < elems.length; ++i) { 58 testElement(elems[i], false, true); 59 testElement(elems[i], true, false); 60 } 61 ok(true, "done"); 62 window.arguments[0].setTimeout(function() { this.done(); }, 0); 63 window.close(); 64 } 65 66 ]]></script> 67 68 <browser id="browser" type="content" src="about:blank"/> 69 </window>