Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Unified Diff: third_party/WebKit/LayoutTests/fast/forms/textfield-change-event.html

Issue 2796823002: Convert onchange-js.html test for testharness.js. (Closed)
Patch Set: Remove </html> Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/LayoutTests/fast/events/onchange-js-expected.txt ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/LayoutTests/fast/forms/textfield-change-event.html
diff --git a/third_party/WebKit/LayoutTests/fast/forms/textfield-change-event.html b/third_party/WebKit/LayoutTests/fast/forms/textfield-change-event.html
new file mode 100644
index 0000000000000000000000000000000000000000..88bfe29dc2f4872f9d46eac98195c9c0d9423d67
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/forms/textfield-change-event.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<body>
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+
+<input id="input" type="text" onchange="changeHandler()">
+<input id="number" type="number" onchange="changeHandler()">
+<textarea id="textarea" onchange="changeHandler()"></textarea>
+
+<script>
+var changeEventCounter = 0;
+function changeHandler() {
+ changeEventCounter++;
+ element.value = '';
+}
+
+function elementDesc(element) {
+ if (element.tagName == 'TEXTAREA')
+ return 'TEXTAREA';
+ return 'INPUT[type=' + element.type + ']';
+}
+
+function testValueUpdateOnChange(element, userInput) {
+ test(() => {
+ changeEventCounter = 0;
+ element.focus();
+ document.execCommand('InsertText', false, userInput);
+ assert_equals(element.value, userInput);
+ element.blur();
+ assert_equals(changeEventCounter, 1);
+ assert_equals(element.value, '');
+
+ element.focus();
+ document.execCommand('InsertText', false, userInput);
+ assert_equals(element.value, userInput);
+ element.blur();
+ assert_equals(changeEventCounter, 2);
+ }, elementDesc(element) + ': Updating value in a CHANGE event handler');
+}
+
+function testValueUpdateWithoutUserEdit(element, jsInput) {
+ test(() => {
+ changeEventCounter = 0;
+ element.value = '';
+ element.focus();
+ element.value = jsInput;
+ element.blur();
+ assert_equals(changeEventCounter, 0);
+ }, elementDesc(element) + ': Updating value while element is focused');
+}
+
+function testValueUpdateAfterUserEdit(element, userInput, jsInput) {
+ test(() => {
+ changeEventCounter = 0;
+ element.value = '0';
+ element.focus();
+ document.execCommand('InsertText', false, userInput);
+ element.value = jsInput;
+ element.blur();
+ assert_equals(changeEventCounter, 1);
+ }, elementDesc(element) + ': Updating value after a user edit');
+}
+
+var element = document.getElementById('input');
+testValueUpdateOnChange(element, 'foo bar');
+testValueUpdateWithoutUserEdit(element, 'FOO BAR');
+testValueUpdateAfterUserEdit(element, 'foo bar', 'FOO BAR');
+
+element = document.getElementById('number');
+testValueUpdateOnChange(element, '123');
+testValueUpdateWithoutUserEdit(element, '999');
+testValueUpdateAfterUserEdit(element, '123', '999');
+
+element = document.getElementById('textarea');
+testValueUpdateOnChange(element, 'foo bar');
+testValueUpdateWithoutUserEdit(element, 'FOO BAR');
+testValueUpdateAfterUserEdit(element, 'foo bar', 'FOO BAR');
+</script>
+</body>
« no previous file with comments | « third_party/WebKit/LayoutTests/fast/events/onchange-js-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698