| // META: title=EventSource: reconnection | |
| function doReconn(url, title) { | |
| var test = async_test(document.title + " " + title) | |
| test.step(function() { | |
| var source = new EventSource(url) | |
| source.onmessage = test.step_func(function(e) { | |
| assert_equals(e.data, "data") | |
| source.close() | |
| test.done() | |
| }) | |
| }) | |
| } | |
| doReconn("resources/status-reconnect.py?status=200", | |
| "200") | |
| var t = async_test(document.title + ", test reconnection events"); | |
| t.step(function() { | |
| var opened = false, reconnected = false, | |
| source = new EventSource("resources/status-reconnect.py?status=200&ok_first&id=2"); | |
| source.onerror = t.step_func(function(e) { | |
| assert_equals(e.type, 'error'); | |
| assert_equals(source.readyState, source.CONNECTING, "readyState"); | |
| assert_true(opened, "connection is opened earlier"); | |
| reconnected = true; | |
| }); | |
| source.onmessage = t.step_func(function(e) { | |
| if (!opened) { | |
| opened = true; | |
| assert_false(reconnected, "have reconnected before first message"); | |
| assert_equals(e.data, "ok"); | |
| } | |
| else { | |
| assert_true(reconnected, "Got reconnection event"); | |
| assert_equals(e.data, "data"); | |
| source.close() | |
| t.done() | |
| } | |
| }); | |
| }); | |