56 lines
1.7 KiB
JavaScript
56 lines
1.7 KiB
JavaScript
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();
|
|
}
|
|
});
|
|
}
|
|
}
|