eventsource-reconnect.window.js (1443B)
1 // META: title=EventSource: reconnection 2 3 function doReconn(url, title) { 4 var test = async_test(document.title + " " + title) 5 test.step(function() { 6 var source = new EventSource(url) 7 source.onmessage = test.step_func(function(e) { 8 assert_equals(e.data, "data") 9 source.close() 10 test.done() 11 }) 12 }) 13 } 14 15 doReconn("resources/status-reconnect.py?status=200", 16 "200") 17 18 19 var t = async_test(document.title + ", test reconnection events"); 20 t.step(function() { 21 var opened = false, reconnected = false, 22 source = new EventSource("resources/status-reconnect.py?status=200&ok_first&id=2"); 23 24 source.onerror = t.step_func(function(e) { 25 assert_equals(e.type, 'error'); 26 assert_equals(source.readyState, source.CONNECTING, "readyState"); 27 assert_true(opened, "connection is opened earlier"); 28 29 reconnected = true; 30 }); 31 32 source.onmessage = t.step_func(function(e) { 33 if (!opened) { 34 opened = true; 35 assert_false(reconnected, "have reconnected before first message"); 36 assert_equals(e.data, "ok"); 37 } 38 else { 39 assert_true(reconnected, "Got reconnection event"); 40 assert_equals(e.data, "data"); 41 source.close() 42 t.done() 43 } 44 }); 45 });