add tests for selectionchange in HTML Elements

This commit is contained in:
Muki Kiboigo
2026-02-09 06:51:26 -08:00
parent fcea42e91e
commit 73abf7d20e
2 changed files with 86 additions and 0 deletions

View File

@@ -183,6 +183,49 @@
}
</script>
<script id="selectionchange_event">
{
const input = document.createElement('input');
input.value = 'Hello World';
document.body.appendChild(input);
let eventCount = 0;
let lastEvent = null;
input.addEventListener('selectionchange', (e) => {
eventCount++;
lastEvent = e;
});
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);
}
</script>
<!-- <script id="defaultChecked">
testing.expectEqual(true, $('#check1').defaultChecked)
testing.expectEqual(false, $('#check2').defaultChecked)

View File

@@ -229,3 +229,46 @@
testing.expectEqual('some content', clone.value)
}
</script>
<script id="selectionchange_event">
{
const textarea = document.createElement('textarea');
textarea.value = 'Hello World';
document.body.appendChild(textarea);
let eventCount = 0;
let lastEvent = null;
textarea.addEventListener('selectionchange', (e) => {
eventCount++;
lastEvent = e;
});
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);
}
</script>