Title: [125867] trunk/LayoutTests
Revision
125867
Author
[email protected]
Date
2012-08-17 01:13:03 -0700 (Fri, 17 Aug 2012)

Log Message

[Tests] Adding tests for multiple fields time input UI
https://bugs.webkit.org/show_bug.cgi?id=94196

Reviewed by Kent Tamura.

This patch introduces functional testing for multiple fields time input
UI when both ENABLE_INPUT_TYPE_TIME and ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS
are enabled.

* fast/forms/time-multiple-fields/time-multiple-fields-change-type-on-focus-expected.txt: Added.
* fast/forms/time-multiple-fields/time-multiple-fields-change-type-on-focus.html: Added.
* fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events-expected.txt: Added.
* fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html: Added.
* fast/forms/time-multiple-fields/time-multiple-fields-losing-renderer-on-click-expected.txt: Added.
* fast/forms/time-multiple-fields/time-multiple-fields-losing-renderer-on-click.html: Added.
* fast/forms/time-multiple-fields/time-multiple-fields-spinbutton-change-and-input-events-expected.txt: Added.
* fast/forms/time-multiple-fields/time-multiple-fields-spinbutton-change-and-input-events.html: Added.
* fast/forms/time-multiple-fields/time-multiple-fields-step-attribute-expected.txt: Added.
* fast/forms/time-multiple-fields/time-multiple-fields-step-attribute.html: Added.
* fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer-expected.txt: Added.
* fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (125866 => 125867)


--- trunk/LayoutTests/ChangeLog	2012-08-17 08:11:08 UTC (rev 125866)
+++ trunk/LayoutTests/ChangeLog	2012-08-17 08:13:03 UTC (rev 125867)
@@ -1,3 +1,27 @@
+2012-08-17  Yoshifumi Inoue  <[email protected]>
+
+        [Tests] Adding tests for multiple fields time input UI
+        https://bugs.webkit.org/show_bug.cgi?id=94196
+
+        Reviewed by Kent Tamura.
+
+        This patch introduces functional testing for multiple fields time input
+        UI when both ENABLE_INPUT_TYPE_TIME and ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS
+        are enabled.
+
+        * fast/forms/time-multiple-fields/time-multiple-fields-change-type-on-focus-expected.txt: Added.
+        * fast/forms/time-multiple-fields/time-multiple-fields-change-type-on-focus.html: Added.
+        * fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events-expected.txt: Added.
+        * fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html: Added.
+        * fast/forms/time-multiple-fields/time-multiple-fields-losing-renderer-on-click-expected.txt: Added.
+        * fast/forms/time-multiple-fields/time-multiple-fields-losing-renderer-on-click.html: Added.
+        * fast/forms/time-multiple-fields/time-multiple-fields-spinbutton-change-and-input-events-expected.txt: Added.
+        * fast/forms/time-multiple-fields/time-multiple-fields-spinbutton-change-and-input-events.html: Added.
+        * fast/forms/time-multiple-fields/time-multiple-fields-step-attribute-expected.txt: Added.
+        * fast/forms/time-multiple-fields/time-multiple-fields-step-attribute.html: Added.
+        * fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer-expected.txt: Added.
+        * fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html: Added.
+
 2012-08-17  Sukolsak Sakshuwong  <[email protected]>
 
         Implement UndoManager's V8 bindings

Added: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-change-type-on-focus-expected.txt (0 => 125867)


--- trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-change-type-on-focus-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-change-type-on-focus-expected.txt	2012-08-17 08:13:03 UTC (rev 125867)
@@ -0,0 +1,12 @@
+Assertion failure by changing type from type=time in focus event.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+
+PASS Not crashed.
+PASS mouseDownCount is 1
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Property changes on: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-change-type-on-focus-expected.txt
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-change-type-on-focus.html (0 => 125867)


--- trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-change-type-on-focus.html	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-change-type-on-focus.html	2012-08-17 08:13:03 UTC (rev 125867)
@@ -0,0 +1,18 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+<script src=""
+</head>
+<body>
+<p id="description"></p>
+
+<input id=test type=time value="07:00">
+
+<div id="console"></div>
+<script>
+testChangeTypeOnFocus();
+</script>
+<script src=""
+</body>
+</html>
Property changes on: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-change-type-on-focus.html
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events-expected.txt (0 => 125867)


--- trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events-expected.txt	2012-08-17 08:13:03 UTC (rev 125867)
@@ -0,0 +1,34 @@
+Multiple fields UI of time input type with keyboard events
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Please run this with DumpRenderTree.
+
+Test following keys:
+Digit keys
+Left/Right - Move focus field inside element
+Up/Down - Increment/decrement value of focus field
+Tab - Move focus field
+Backspace - Make value empty
+ 
+== Digit keys ==
+PASS input.value is "07:56"
+== Left/Right keys ==
+PASS input.value is "06:05"
+PASS document.activeElement.id is "input"
+== Up/Down keys ==
+PASS input.value is "05:56"
+PASS input.value is "03:56"
+== Up/Down keys on empty value ==
+PASS input.value is "14:58"
+== Tab key ==
+PASS input.value is "03:05"
+PASS input.value is "07:05"
+PASS document.activeElement.id is "another"
+== Backspace key ==
+PASS input.value is ""
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Property changes on: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events-expected.txt
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html (0 => 125867)


--- trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html	2012-08-17 08:13:03 UTC (rev 125867)
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src=""
+</head>
+<body>
+<p id="description"></p>
+<p>
+Please run this with DumpRenderTree.
+</p>
+Test following keys:
+<ul>
+    <li>Digit keys</li>
+    <li>Left/Right - Move focus field inside element</li>
+    <li>Up/Down - Increment/decrement value of focus field</li>
+    <li>Tab - Move focus field</li>
+    <li>Backspace - Make value empty</li>
+</ul>
+<input id="input" type="time">
+<input id="another">
+<div id="console"></div>
+<script>
+description("Multiple fields UI of time input type with keyboard events");
+var input = document.getElementById("input");
+
+function keyDown(key, modifiers)
+{
+    if (!window.eventSender)
+        return;
+    eventSender.keyDown(key, modifiers);
+}
+
+function beginTest(title, value)
+{
+    debug("== " + title + " ==");
+    input.value = value;
+    input.blur();
+    input.focus();
+}
+
+beginTest('Digit keys');
+keyDown('7');
+keyDown('5');
+keyDown('6');
+keyDown('A');
+shouldBeEqualToString('input.value', '07:56');
+
+// FIXME: We should test type ahead time out. When event.leapForward() affects
+// keyboard event time stamp, we can uncomment this fragment.
+/*
+beginTest('Digit keys with type ahead timeout');
+keyDown('1');
+leapForward(1100);
+keyDown('1');
+keyDown('5');
+keyDown('6');
+keyDown('A');
+shouldBeEqualToString('input.value', '01:56');
+*/
+
+beginTest('Left/Right keys', '01:24');
+keyDown('rightArrow');
+keyDown('5');
+keyDown('leftArrow');
+keyDown('6');
+shouldBeEqualToString('input.value', '06:05');
+keyDown('leftArrow');
+keyDown('leftArrow');
+keyDown('leftArrow');
+shouldBeEqualToString('document.activeElement.id', 'input');
+
+beginTest('Up/Down keys', '04:56');
+keyDown('upArrow');
+shouldBeEqualToString('input.value', '05:56');
+keyDown('downArrow');
+keyDown('downArrow');
+shouldBeEqualToString('input.value', '03:56');
+
+beginTest('Up/Down keys on empty value', '');
+keyDown('upArrow');
+keyDown('upArrow');
+keyDown('rightArrow');
+keyDown('downArrow');
+keyDown('downArrow');
+keyDown('rightArrow');
+keyDown('downArrow');
+shouldBeEqualToString('input.value', '14:58');
+
+beginTest('Tab key', '03:00');
+keyDown('\t');
+keyDown('5');
+shouldBeEqualToString('input.value', '03:05');
+keyDown('\t', ['shiftKey']);
+keyDown('7');
+shouldBeEqualToString('input.value', '07:05');
+keyDown('\t');
+keyDown('\t');
+shouldBeEqualToString('document.activeElement.id', 'another');
+
+beginTest('Backspace key', '12:34');
+keyDown("\b");
+shouldBeEqualToString('input.value', '');
+</script>
+<script src=""
+</body>
+</html>
Property changes on: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-losing-renderer-on-click-expected.txt (0 => 125867)


--- trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-losing-renderer-on-click-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-losing-renderer-on-click-expected.txt	2012-08-17 08:13:03 UTC (rev 125867)
@@ -0,0 +1,2 @@
+This tests that we don't crash when the renderer goes away during event handling.
+
Property changes on: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-losing-renderer-on-click-expected.txt
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-losing-renderer-on-click.html (0 => 125867)


--- trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-losing-renderer-on-click.html	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-losing-renderer-on-click.html	2012-08-17 08:13:03 UTC (rev 125867)
@@ -0,0 +1,12 @@
+<html>
+    <head>
+        <script src=""
+        <style>
+            #test { width: 100px; }
+        </style>
+    </head>
+    <body _onload_="testLosingRendererOnClick()">
+        This tests that we don't crash when the renderer goes away during event handling.<br>
+        <input type="time" id="test" _onclick_="event.target.style.display='none'">
+    </body>
+</html>
Property changes on: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-losing-renderer-on-click.html
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-spinbutton-change-and-input-events-expected.txt (0 => 125867)


--- trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-spinbutton-change-and-input-events-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-spinbutton-change-and-input-events-expected.txt	2012-08-17 08:13:03 UTC (rev 125867)
@@ -0,0 +1,19 @@
+Test for event dispatching by spin buttons in a type=time input.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Initial state
+PASS changeEventCounter is 0
+PASS inputEventCounter is 0
+Click the upper button
+PASS testInput.value is "04:00"
+PASS changeEventCounter is 1
+PASS inputEventCounter is 1
+Focus on another field
+PASS changeEventCounter is 1
+PASS inputEventCounter is 1
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Property changes on: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-spinbutton-change-and-input-events-expected.txt
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-spinbutton-change-and-input-events.html (0 => 125867)


--- trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-spinbutton-change-and-input-events.html	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-spinbutton-change-and-input-events.html	2012-08-17 08:13:03 UTC (rev 125867)
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src=""
+<script src=""
+</head>
+<body>
+<script>
+testSpinButtonChangeAndInputEvents('time', '03:00', '04:00');
+</script>
+<script src=""
+</body>
+</html>
Property changes on: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-spinbutton-change-and-input-events.html
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-step-attribute-expected.txt (0 => 125867)


--- trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-step-attribute-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-step-attribute-expected.txt	2012-08-17 08:13:03 UTC (rev 125867)
@@ -0,0 +1,14 @@
+Check step attribute change causes apperance change
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Set step to 0.001
+PASS widthOfStep001 > widthOfStep60 is true
+Set step to 60
+PASS widthOfStep60 == widthOfStep60Again is true
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Property changes on: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-step-attribute-expected.txt
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-step-attribute.html (0 => 125867)


--- trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-step-attribute.html	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-step-attribute.html	2012-08-17 08:13:03 UTC (rev 125867)
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src=""
+</head>
+<body>
+<input id=test type=time step=60>
+<script>
+description('Check step attribute change causes apperance change');
+var testInput = document.getElementById('test');
+var widthOfStep60 = testInput.offsetWidth;
+
+debug('Set step to 0.001');
+testInput.step = 0.001
+var widthOfStep001 = testInput.offsetWidth;
+shouldBeTrue('widthOfStep001 > widthOfStep60');
+
+debug('Set step to 60');
+testInput.step = 60;
+var widthOfStep60Again = testInput.offsetWidth;
+shouldBeTrue('widthOfStep60 == widthOfStep60Again');
+
+debug('');
+testInput.parentElement.removeChild(testInput);
+</script>
+<script src=""
+</body>
+</html>
Property changes on: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-step-attribute.html
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer-expected.txt (0 => 125867)


--- trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer-expected.txt	2012-08-17 08:13:03 UTC (rev 125867)
@@ -0,0 +1,16 @@
+Check stepping-up and -down for time input fields from renderer. No cases of empty initial values.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Function arguments are (value, step, {min or max}, [stepCount]).
+Normal cases
+PASS stepUp("07:13", null, null) is "07:14"
+PASS stepDown("07:13", null, null) is "07:12"
+PASS stepUp("07:13", null, null, 10) is "07:23"
+PASS stepDown("07:13", null, null, 11) is "07:02"
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Property changes on: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer-expected.txt
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html (0 => 125867)


--- trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html	2012-08-17 08:13:03 UTC (rev 125867)
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src=""
+</head>
+<body>
+<script>
+description('Check stepping-up and -down for time input fields from renderer. No cases of empty initial values.');
+
+var input = document.createElement('input');
+var invalidStateErr = '"Error: INVALID_STATE_ERR: DOM Exception 11"';
+
+document.body.appendChild(input);
+
+function sendKey(keyName) {
+    var event = document.createEvent('KeyboardEvent');
+    event.initKeyboardEvent('keydown', true, true, document.defaultView, keyName);
+    input.dispatchEvent(event);
+}
+
+function setInputAttributes(min, max, step, value) {
+    input.min = min;
+    input.max = max;
+    input.step = step;
+    input.value = value;
+}
+
+function stepUp(value, step, max, optionalStepCount) {
+    setInputAttributes(null, max, step, value);
+    if (typeof optionalStepCount != "undefined")
+        if (optionalStepCount < 0)
+            for (var i = 0; i < -optionalStepCount; i++)
+                sendKey('Down');
+        else
+            for (var i = 0; i < optionalStepCount; i++)
+                sendKey('Up');
+    else
+        sendKey('Up');
+    return input.value;
+}
+
+function stepDown(value, step, min, optionalStepCount) {
+    setInputAttributes(min, null, step, value);
+    if (typeof optionalStepCount != "undefined")
+        if (optionalStepCount < 0)
+            for (var i = 0; i < -optionalStepCount; i++)
+                sendKey('Up');
+        else
+            for (var i = 0; i < optionalStepCount; i++)
+                sendKey('Down');
+    else
+        sendKey('Down');
+    return input.value;
+}
+
+input.type = 'time';
+input.focus();
+sendKey('Right');
+debug('Function arguments are (value, step, {min or max}, [stepCount]).');
+debug('Normal cases');
+shouldBe('stepUp("07:13", null, null)', '"07:14"');
+shouldBe('stepDown("07:13", null, null)', '"07:12"');
+shouldBe('stepUp("07:13", null, null, 10)', '"07:23"');
+shouldBe('stepDown("07:13", null, null, 11)', '"07:02"');
+debug('');
+document.body.removeChild(input);
+</script>
+<script src=""
+</body>
+</html>
Property changes on: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
___________________________________________________________________

Added: svn:eol-style

_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to