| <html> |
| <body> |
| <p>Test EventSource attribute listener functionality. Should print a series of PASS messages followed by DONE.</p> |
| <div id="result"></div> |
| <script> |
| function log(msg) { |
| document.getElementById("result").innerHTML += msg + "<br>"; |
| } |
| |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| var es = new EventSource("eventsource"); |
| |
| if (es.onopen == null && es.onmessage == null && es.onerror == null) |
| log("PASS: attribute listeners are initially null"); |
| else |
| log("FAIL: attribute listeners are not null initially"); |
| |
| var a = function () {}; |
| es.onopen = a; |
| if (es.onopen == a) |
| log("PASS: setting and getting attribute listener works"); |
| else |
| log("FAIL: setting/getting attribute listener does not work"); |
| |
| var b = function () {}; |
| es.onopen = b; |
| if (es.onopen == b) |
| log("PASS: resetting attribute listener works"); |
| else |
| log("FAIL: resetting attribute listener does not work"); |
| |
| var flag = false; |
| es.onmessage = function (e) { flag = (e.data == "hello"); }; |
| var evt = document.createEvent("MessageEvent"); |
| evt.initMessageEvent("message", false, false, "hello", null, null, null, []); |
| es.dispatchEvent(evt); |
| if (flag) { |
| log("PASS: dispatching event on an EventSource triggers attribute listener"); |
| log("DONE"); |
| } |
| else |
| log("FAIL: dispatching event on an EventSource does not trigger attribute listener"); |
| |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| |
| </script> |
| </body> |
| </html> |