diff --git a/src/browser/tests/element/html/input.html b/src/browser/tests/element/html/input.html index cd3129bc..01bfe214 100644 --- a/src/browser/tests/element/html/input.html +++ b/src/browser/tests/element/html/input.html @@ -188,7 +188,7 @@ const input = document.createElement('input'); input.value = 'Hello World'; document.body.appendChild(input); - + let eventCount = 0; let lastEvent = null; @@ -200,29 +200,24 @@ testing.expectEqual(0, eventCount); input.setSelectionRange(0, 5); - testing.expectEqual(1, eventCount); - testing.expectEqual('selectionchange', lastEvent.type); - testing.expectEqual(input, lastEvent.target); - testing.expectEqual(true, lastEvent.bubbles); - testing.expectEqual(false, lastEvent.cancelable); - input.select(); - testing.expectEqual(2, eventCount); - input.selectionStart = 3; - testing.expectEqual(3, eventCount); - input.selectionEnd = 8; - testing.expectEqual(4, eventCount); - + let bubbledToBody = false; document.body.addEventListener('selectionchange', () => { bubbledToBody = true; }); - input.setSelectionRange(1, 4); - testing.expectEqual(true, bubbledToBody); - + + testing.eventually(() => { + testing.expectEqual(5, eventCount); + testing.expectEqual('selectionchange', lastEvent.type); + testing.expectEqual(input, lastEvent.target); + testing.expectEqual(true, lastEvent.bubbles); + testing.expectEqual(false, lastEvent.cancelable); + testing.expectEqual(true, bubbledToBody); + }); } diff --git a/src/browser/tests/element/html/textarea.html b/src/browser/tests/element/html/textarea.html index fd565b3b..d69103cb 100644 --- a/src/browser/tests/element/html/textarea.html +++ b/src/browser/tests/element/html/textarea.html @@ -247,28 +247,23 @@ testing.expectEqual(0, eventCount); textarea.setSelectionRange(0, 5); - testing.expectEqual(1, eventCount); - testing.expectEqual('selectionchange', lastEvent.type); - testing.expectEqual(textarea, lastEvent.target); - testing.expectEqual(true, lastEvent.bubbles); - testing.expectEqual(false, lastEvent.cancelable); - textarea.select(); - testing.expectEqual(2, eventCount); - textarea.selectionStart = 3; - testing.expectEqual(3, eventCount); - textarea.selectionEnd = 8; - testing.expectEqual(4, eventCount); - + let bubbledToBody = false; document.body.addEventListener('selectionchange', () => { bubbledToBody = true; }); - textarea.setSelectionRange(1, 4); - testing.expectEqual(true, bubbledToBody); - + + testing.eventually(() => { + testing.expectEqual(5, eventCount); + testing.expectEqual('selectionchange', lastEvent.type); + testing.expectEqual(textarea, lastEvent.target); + testing.expectEqual(true, lastEvent.bubbles); + testing.expectEqual(false, lastEvent.cancelable); + testing.expectEqual(true, bubbledToBody); + }); } diff --git a/src/browser/tests/selection.html b/src/browser/tests/selection.html index 6b5a5d0c..51319ba5 100644 --- a/src/browser/tests/selection.html +++ b/src/browser/tests/selection.html @@ -546,92 +546,50 @@ { const sel = window.getSelection(); sel.removeAllRanges(); - + let eventCount = 0; let lastEvent = null; - + document.addEventListener('selectionchange', (e) => { eventCount++; lastEvent = e; }); - - testing.expectEqual(0, eventCount); - + const p1 = document.getElementById("p1"); const textNode = p1.firstChild; - - // Test 1: collapse should fire event + const nested = document.getElementById("nested"); + sel.collapse(textNode, 5); - testing.expectEqual(1, eventCount); - testing.expectEqual('selectionchange', lastEvent.type); - testing.expectEqual(document, lastEvent.target); - testing.expectEqual(false, lastEvent.bubbles); - testing.expectEqual(false, lastEvent.cancelable); - - // Test 2: extend should fire event sel.extend(textNode, 10); - testing.expectEqual(2, eventCount); - - // Test 3: collapseToStart should fire event sel.collapseToStart(); - testing.expectEqual(3, eventCount); - - // Test 4: collapseToEnd should fire event - eventCount = 0; + sel.collapseToEnd(); + sel.removeAllRanges(); const range = document.createRange(); range.setStart(textNode, 4); range.setEnd(textNode, 15); sel.addRange(range); - sel.collapseToEnd(); - testing.expectEqual(3, eventCount); - - // Test 5: addRange should fire event - eventCount = 0; - sel.removeAllRanges(); + + sel.removeRange(range); + const newRange = document.createRange(); newRange.selectNodeContents(p1); sel.addRange(newRange); - testing.expectEqual(2, eventCount); - - // Test 6: removeRange should fire event - eventCount = 0; - sel.removeRange(newRange); - testing.expectEqual(1, eventCount); - - // Test 7: removeAllRanges should fire event - sel.addRange(newRange); - eventCount = 0; sel.removeAllRanges(); - testing.expectEqual(1, eventCount); - - // Test 8: selectAllChildren should fire event - eventCount = 0; - const nested = document.getElementById("nested"); + sel.selectAllChildren(nested); - testing.expectEqual(1, eventCount); - - // Test 9: setBaseAndExtent should fire event - eventCount = 0; sel.setBaseAndExtent(textNode, 4, textNode, 15); - testing.expectEqual(1, eventCount); - - // Test 10: deleteFromDocument should fire event + sel.collapse(textNode, 5); sel.extend(textNode, 10); - eventCount = 0; sel.deleteFromDocument(); - testing.expectEqual(1, eventCount); - - // Test 11: Event doesn't bubble - let bubbledToBody = false; - document.body.addEventListener('selectionchange', () => { - bubbledToBody = true; + + testing.eventually(() => { + testing.expectEqual(14, eventCount); + testing.expectEqual('selectionchange', lastEvent.type); + testing.expectEqual(document, lastEvent.target); + testing.expectEqual(false, lastEvent.bubbles); + testing.expectEqual(false, lastEvent.cancelable); }); - - eventCount = 0; - sel.collapse(textNode, 7); - testing.expectEqual(1, eventCount); - testing.expectEqual(false, bubbledToBody); }