tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>