tor-browser

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

eventsource-close.window.js (2266B)


      1 // META: title=EventSource: close()
      2 
      3      var test = async_test()
      4      test.step(function() {
      5        var source = new EventSource("resources/message.py")
      6        assert_equals(source.readyState, source.CONNECTING, "connecting readyState");
      7        source.onopen = this.step_func(function() {
      8          assert_equals(source.readyState, source.OPEN, "open readyState");
      9          source.close()
     10          assert_equals(source.readyState, source.CLOSED, "closed readyState");
     11          this.done()
     12        })
     13      })
     14 
     15      var test2 = async_test(document.title + ", test events");
     16      test2.step(function() {
     17        var count = 0, reconnected = false,
     18            source = new EventSource("resources/reconnect-fail.py?id=" + new Date().getTime());
     19 
     20        source.onerror = this.step_func(function(e) {
     21          assert_equals(e.type, 'error');
     22          switch(count) {
     23            // reconnecting after first message
     24            case 1:
     25              assert_equals(source.readyState, source.CONNECTING, "reconnecting readyState");
     26 
     27              reconnected = true;
     28              break;
     29 
     30            // one more reconnect to get to the closing
     31            case 2:
     32              assert_equals(source.readyState, source.CONNECTING, "last reconnecting readyState");
     33              count++;
     34              break;
     35 
     36            // close
     37            case 3:
     38              assert_equals(source.readyState, source.CLOSED, "closed readyState");
     39 
     40              // give some time for errors to hit us
     41              test2.step_timeout(function() { this.done(); }, 100);
     42              break;
     43 
     44            default:
     45              assert_unreached("Error handler with msg count " + count);
     46          }
     47 
     48        });
     49 
     50        source.onmessage = this.step_func(function(e) {
     51          switch(count) {
     52            case 0:
     53              assert_true(!reconnected, "no error event run");
     54              assert_equals(e.data, "opened", "data");
     55              break;
     56 
     57            case 1:
     58              assert_true(reconnected, "have reconnected");
     59              assert_equals(e.data, "reconnected", "data");
     60              break;
     61 
     62            default:
     63              assert_unreached("Dunno what to do with message number " + count);
     64          }
     65 
     66          count++;
     67        });
     68 
     69      });