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);
}