| OLD | NEW |
| 1 if (self.importScripts) | 1 if (self.importScripts) |
| 2 importScripts("/js-test-resources/js-test.js"); | 2 importScripts("/js-test-resources/js-test.js"); |
| 3 | 3 |
| 4 description("Test EventSource reconnect after end of event stream."); | 4 description("Test EventSource reconnect after end of event stream."); |
| 5 | 5 |
| 6 self.jsTestIsAsync = true; | 6 self.jsTestIsAsync = true; |
| 7 | 7 |
| 8 var retryTimeout; | 8 var retryTimeout; |
| 9 | 9 |
| 10 function checkReadyState(es, desiredState) { | 10 function checkReadyState(es, desiredState) { |
| 11 shouldBe("es.readyState", "es." + desiredState); | 11 shouldBe("es.readyState", "es." + desiredState); |
| 12 } | 12 } |
| 13 | 13 |
| 14 var errCount = 0; | 14 var errCount = 0; |
| 15 var es = new EventSource("/eventsource/resources/reconnect.php"); | 15 var es = new EventSource("/eventsource/resources/reconnect.php"); |
| 16 | 16 |
| 17 checkReadyState(es, "CONNECTING"); | 17 checkReadyState(es, "CONNECTING"); |
| 18 | 18 |
| 19 es.onopen = function (evt) { | 19 es.onopen = function (evt) { |
| 20 checkReadyState(es, "OPEN"); | 20 checkReadyState(es, "OPEN"); |
| 21 }; | 21 }; |
| 22 | 22 |
| 23 var evt; | 23 var evt; |
| 24 es.onmessage = function (arg) { | 24 es.onmessage = function (arg) { |
| 25 evt = arg; | 25 evt = arg; |
| 26 if (errCount) | 26 if (errCount) |
| 27 shouldBeEqualToString("evt.data", "77"); | 27 shouldBeEqualToString("evt.data", "77\u2603"); |
| 28 shouldBeEqualToString("evt.lastEventId", "77"); | 28 shouldBeEqualToString("evt.lastEventId", "77\u2603"); |
| 29 }; | 29 }; |
| 30 | 30 |
| 31 es.onerror = function () { | 31 es.onerror = function () { |
| 32 errCount++; | 32 errCount++; |
| 33 if (errCount < 2) { | 33 if (errCount < 2) { |
| 34 checkReadyState(es, "CONNECTING"); | 34 checkReadyState(es, "CONNECTING"); |
| 35 retryTimeout = setTimeout(end, 1000); | 35 retryTimeout = setTimeout(end, 1000); |
| 36 return; | 36 return; |
| 37 } | 37 } |
| 38 clearTimeout(retryTimeout); | 38 clearTimeout(retryTimeout); |
| 39 retryTimeout = null; | 39 retryTimeout = null; |
| 40 end(); | 40 end(); |
| 41 }; | 41 }; |
| 42 | 42 |
| 43 function end() { | 43 function end() { |
| 44 es.close(); | 44 es.close(); |
| 45 if (retryTimeout) | 45 if (retryTimeout) |
| 46 testFailed("did not reconnect in time"); | 46 testFailed("did not reconnect in time"); |
| 47 else | 47 else |
| 48 checkReadyState(es, "CLOSED"); | 48 checkReadyState(es, "CLOSED"); |
| 49 | 49 |
| 50 finishJSTest(); | 50 finishJSTest(); |
| 51 } | 51 } |
| OLD | NEW |