summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields
diff options
context:
space:
mode:
authorcommit-queue@webkit.org <commit-queue@webkit.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538>2013-03-22 10:04:16 +0000
committercommit-queue@webkit.org <commit-queue@webkit.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538>2013-03-22 10:04:16 +0000
commit1b5ee4337fe825d39095d42dbd596f153c48ac36 (patch)
treee2ceefb56b6cf2edc4e4a264ab8def5b8cc7530a /third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields
parent7551108a40902e5e45d0679df2ce7e0bc8c090c1 (diff)
downloadchromium_src-1b5ee4337fe825d39095d42dbd596f153c48ac36.zip
chromium_src-1b5ee4337fe825d39095d42dbd596f153c48ac36.tar.gz
chromium_src-1b5ee4337fe825d39095d42dbd596f153c48ac36.tar.bz2
INPUT_MULTIPLE_FIELDS_UI: Incomplete datetime format should fallback to default
https://bugs.webkit.org/show_bug.cgi?id=113005 Patch by Kunihiko Sakamoto <ksakamoto@chromium.org> on 2013-03-22 Reviewed by Kent Tamura. Source/WebCore: Use fallback format when datetime format from locale is not complete. Tests: fast/forms/date-multiple-fields/date-multiple-fields-fallback-format.html fast/forms/datetime-multiple-fields/datetime-multiple-fields-fallback-format.html fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-fallback-format.html fast/forms/month-multiple-fields/month-multiple-fields-fallback-format.html fast/forms/time-multiple-fields/time-multiple-fields-fallback-format.html fast/forms/week-multiple-fields/week-multiple-fields-fallback-format.html * html/BaseMultipleFieldsDateAndTimeInputType.cpp: (DateTimeFormatValidator): A helper class that parses datetime format and tests existence of fields. (WebCore::DateTimeFormatValidator::DateTimeFormatValidator): (WebCore::DateTimeFormatValidator::visitField): (WebCore::DateTimeFormatValidator::validateFormat): Parses datetime format and validates by calling BaseMultipleFieldsDateAndTimeInputType::isValidFormat. (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Checks if dateTimeFormat is valid, and uses fallback format if not. * html/BaseMultipleFieldsDateAndTimeInputType.h: (BaseMultipleFieldsDateAndTimeInputType): Declare isValidFormat. * html/DateInputType.cpp: (WebCore::DateInputType::isValidFormat): Added. * html/DateInputType.h: (DateInputType): * html/DateTimeInputType.cpp: (WebCore::DateTimeInputType::isValidFormat): Added. * html/DateTimeInputType.h: (DateTimeInputType): * html/DateTimeLocalInputType.cpp: (WebCore::DateTimeLocalInputType::isValidFormat): Added. * html/DateTimeLocalInputType.h: (DateTimeLocalInputType): * html/MonthInputType.cpp: (WebCore::MonthInputType::isValidFormat): Added. * html/MonthInputType.h: (MonthInputType): * html/TimeInputType.cpp: (WebCore::TimeInputType::isValidFormat): Added. * html/TimeInputType.h: (TimeInputType): * html/WeekInputType.cpp: (WebCore::WeekInputType::isValidFormat): Added. * html/WeekInputType.h: (WeekInputType): LayoutTests: * fast/forms/date-multiple-fields/date-multiple-fields-fallback-format-expected.txt: Added. * fast/forms/date-multiple-fields/date-multiple-fields-fallback-format.html: Added. * fast/forms/datetime-multiple-fields/datetime-multiple-fields-fallback-format-expected.txt: Added. * fast/forms/datetime-multiple-fields/datetime-multiple-fields-fallback-format.html: Added. * fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-fallback-format-expected.txt: Added. * fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-fallback-format.html: Added. * fast/forms/month-multiple-fields/month-multiple-fields-fallback-format-expected.txt: Added. * fast/forms/month-multiple-fields/month-multiple-fields-fallback-format.html: Added. * fast/forms/time-multiple-fields/time-multiple-fields-fallback-format-expected.txt: Added. * fast/forms/time-multiple-fields/time-multiple-fields-fallback-format.html: Added. * fast/forms/week-multiple-fields/week-multiple-fields-fallback-format-expected.txt: Added. * fast/forms/week-multiple-fields/week-multiple-fields-fallback-format.html: Added. git-svn-id: svn://svn.chromium.org/blink/trunk@146584 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Diffstat (limited to 'third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields')
-rw-r--r--third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields/week-multiple-fields-fallback-format-expected.txt14
-rw-r--r--third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields/week-multiple-fields-fallback-format.html37
2 files changed, 51 insertions, 0 deletions
diff --git a/third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields/week-multiple-fields-fallback-format-expected.txt b/third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields/week-multiple-fields-fallback-format-expected.txt
new file mode 100644
index 0000000..7b2cca8
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields/week-multiple-fields-fallback-format-expected.txt
@@ -0,0 +1,14 @@
+Checks incomplete datetime formats are rejected.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Valid format
+PASS getUserAgentShadowTextContent(input) is "Week09 1999"
+Invalid format, fallback to yyyy-'W'ww
+PASS getUserAgentShadowTextContent(input) is "1999-W09"
+PASS getUserAgentShadowTextContent(input) is "1999-W09"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields/week-multiple-fields-fallback-format.html b/third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields/week-multiple-fields-fallback-format.html
new file mode 100644
index 0000000..25f492b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields/week-multiple-fields-fallback-format.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../../js/resources/js-test-pre.js"></script>
+<script src="../resources/common.js"></script>
+</head>
+<body>
+<script>
+description('Checks incomplete datetime formats are rejected.');
+
+var input = document.createElement('input');
+input.type = 'week';
+document.body.appendChild(input);
+
+function setDateTimeFormat(pattern) {
+ var value = input.value;
+ getElementByPseudoId(internals.youngestShadowRoot(input), '-webkit-datetime-edit').setAttribute('pattern', pattern);
+ input.value = ''; // Updates the element for new format
+ input.value = value;
+}
+
+input.value = '1999-W09';
+
+debug('Valid format');
+setDateTimeFormat("'Week'ww yyyy");
+shouldBeEqualToString('getUserAgentShadowTextContent(input)', 'Week09 1999');
+
+debug("Invalid format, fallback to yyyy-'W'ww");
+setDateTimeFormat('ww');
+shouldBeEqualToString('getUserAgentShadowTextContent(input)', '1999-W09');
+setDateTimeFormat('yyyy');
+shouldBeEqualToString('getUserAgentShadowTextContent(input)', '1999-W09');
+
+</script>
+<script src="../../js/resources/js-test-post.js"></script>
+</body>
+</html>