test_eventsourceservice_status_error.html (1906B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>EventSource event service status error test</title> 5 <meta http-equiv='Content-Type' content='text/html; charset=utf-8'> 6 <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> 7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 8 </head> 9 <body> 10 <pre id="test"> 11 <script class="testbody" type="text/javascript"> 12 13 var service = SpecialPowers.Cc["@mozilla.org/eventsourceevent/service;1"] 14 .getService(SpecialPowers.Ci.nsIEventSourceEventService); 15 ok(!!service, "We have the nsIEventSourceEventService"); 16 17 var innerId = SpecialPowers.wrap(window).windowGlobalChild.innerWindowId; 18 ok(innerId, "We have a valid innerWindowID: " + innerId); 19 20 var listener = { 21 QueryInterface(aIID) { 22 if ( 23 SpecialPowers.wrap(aIID).equals(SpecialPowers.Ci.nsISupports) || 24 SpecialPowers.wrap(aIID).equals(SpecialPowers.Ci.nsIEventSourceEventListener) 25 ) { 26 return this; 27 } 28 throw SpecialPowers.Components.results.NS_ERROR_NO_INTERFACE; 29 }, 30 eventSourceConnectionOpened(httpChannelId) { 31 ok(false, "This should not happen"); 32 }, 33 eventSourceConnectionClosed(httpChannelId) { 34 ok(false, "This should not happen"); 35 }, 36 eventReceived(httpChannelId, eventName, lastEventId, data, retry, timeStamp) { 37 ok(false, "This should not happen"); 38 } 39 } 40 41 service.addListener(innerId, listener); 42 ok(true, "Listener added"); 43 44 var NUM_TESTS = 2; 45 addLoadEvent(function () { 46 doTest(404); 47 doTest(502); 48 }); 49 50 SimpleTest.waitForExplicitFinish(); 51 52 var count = 0; 53 function doTest(status) { 54 const es = new EventSource( 55 "http://mochi.test:8888/tests/dom/base/test/eventsource_message.sjs?status=" + status 56 ); 57 es.onerror = function (e) { 58 count++; 59 if (count >= NUM_TESTS) { 60 SimpleTest.finish(); 61 } 62 } 63 } 64 </script> 65 </pre> 66 </body> 67 </html>