| const ID_PERSISTS = 1, |
| ID_RESETS_1 = 2, |
| ID_RESETS_2 = 3; |
| |
| async_test(testPersist, "EventSource: lastEventId persists"); |
| async_test(testReset(ID_RESETS_1), "EventSource: lastEventId resets"); |
| async_test(testReset(ID_RESETS_2), "EventSource: lastEventId resets (id without colon)"); |
| |
| function testPersist(t) { |
| const source = new EventSource("resources/last-event-id2.py?type=" + ID_PERSISTS); |
| let counter = 0; |
| t.add_cleanup(() => source.close()); |
| source.onmessage = t.step_func(e => { |
| counter++; |
| if (counter === 1) { |
| assert_equals(e.lastEventId, "1"); |
| assert_equals(e.data, "1"); |
| } else if (counter === 2) { |
| assert_equals(e.lastEventId, "1"); |
| assert_equals(e.data, "2"); |
| } else if (counter === 3) { |
| assert_equals(e.lastEventId, "2"); |
| assert_equals(e.data, "3"); |
| } else if (counter === 4) { |
| assert_equals(e.lastEventId, "2"); |
| assert_equals(e.data, "4"); |
| t.done(); |
| } else { |
| assert_unreached(); |
| } |
| }); |
| } |
| |
| function testReset(type) { |
| return function (t) { |
| const source = new EventSource("resources/last-event-id2.py?type=" + type); |
| let counter = 0; |
| t.add_cleanup(() => source.close()); |
| source.onmessage = t.step_func(e => { |
| counter++; |
| if (counter === 1) { |
| assert_equals(e.lastEventId, "1"); |
| assert_equals(e.data, "1"); |
| } else if (counter === 2) { |
| assert_equals(e.lastEventId, ""); |
| assert_equals(e.data, "2"); |
| } else if (counter === 3) { |
| assert_equals(e.lastEventId, ""); |
| assert_equals(e.data, "3"); |
| t.done(); |
| } else { |
| assert_unreached(); |
| } |
| }); |
| } |
| } |