diff options
author | keishi@chromium.org <keishi@chromium.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538> | 2013-09-02 05:53:36 +0000 |
---|---|---|
committer | keishi@chromium.org <keishi@chromium.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538> | 2013-09-02 05:53:36 +0000 |
commit | 73397edbd72c4c1e34357c03a7d1b1ef74705682 (patch) | |
tree | 41ef328b704afc607ea3bad59fb512ec5a739dd5 /third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields | |
parent | 1fbbe8b231af7d1507788910a1d06c3f82f0978f (diff) | |
download | chromium_src-73397edbd72c4c1e34357c03a7d1b1ef74705682.zip chromium_src-73397edbd72c4c1e34357c03a7d1b1ef74705682.tar.gz chromium_src-73397edbd72c4c1e34357c03a7d1b1ef74705682.tar.bz2 |
Change event isn't firing when the user reverts the value of a color/date/time input after JS changed the value
Setting the value through the value property wasn't setting the textAsOfLastFormControlChangeEvent.
So change events weren't firing when the user changes the value back to
the one that was set before JS changed it.
TEST=automated.
BUG=244065
Review URL: https://chromiumcodereview.appspot.com/23851005
git-svn-id: svn://svn.chromium.org/blink/trunk@157061 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Diffstat (limited to 'third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields')
2 files changed, 62 insertions, 0 deletions
diff --git a/third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields/week-multiple-fields-choose-default-value-after-set-value-expected.txt b/third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields/week-multiple-fields-choose-default-value-after-set-value-expected.txt new file mode 100644 index 0000000..a81ecfe --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields/week-multiple-fields-choose-default-value-after-set-value-expected.txt @@ -0,0 +1,17 @@ +Test if change event fires when the user selects the default value after the value was changed by JS. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS input.value is "2001-W01" +PASS eventsCounter.input is undefined. +PASS eventsCounter.change is undefined. +==> "input" event was dispatched. +==> "change" event was dispatched. +PASS input.value is "2000-W01" +PASS eventsCounter.input is 1 +PASS eventsCounter.change is 1 +PASS successfullyParsed is true + +TEST COMPLETE + diff --git a/third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields/week-multiple-fields-choose-default-value-after-set-value.html b/third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields/week-multiple-fields-choose-default-value-after-set-value.html new file mode 100644 index 0000000..0464828 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields/week-multiple-fields-choose-default-value-after-set-value.html @@ -0,0 +1,45 @@ +<!DOCTYPE html> +<html> +<head> +<script src="../../../fast/js/resources/js-test-pre.js"></script> +<script src="../resources/common.js"></script> +</head> +<body> +<p id="description"></p> +<div id="console"></div> +<input type="week" id="input" value="2000-W01"> +<script> +description('Test if change event fires when the user selects the default value after the value was changed by JS.'); + +var eventsCounter = {}; +function recordEvent(event) { + if (eventsCounter[event.type] === undefined) + eventsCounter[event.type] = 0; + eventsCounter[event.type]++; + debug('==> "' + event.type + '" event was dispatched.'); +} + +var input = document.getElementById('input'); +input.addEventListener('input', recordEvent, false); +input.addEventListener('change', recordEvent, false); + +input.value = '2001-W01'; + +shouldBeEqualToString('input.value', '2001-W01'); +shouldBeUndefined('eventsCounter.input'); +shouldBeUndefined('eventsCounter.change'); + +// We assume the date format is Week ww, yyyy. + +input.focus(); +eventSender.keyDown('rightArrow'); +eventSender.keyDown('downArrow'); + +shouldBeEqualToString('input.value', '2000-W01'); +shouldBe('eventsCounter.input', '1'); +shouldBe('eventsCounter.change', '1'); + +</script> +<script src="../../../fast/js/resources/js-test-post.js"></script> +</body> +</html> |