diff options
author | commit-queue@webkit.org <commit-queue@webkit.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538> | 2013-03-22 10:04:16 +0000 |
---|---|---|
committer | commit-queue@webkit.org <commit-queue@webkit.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538> | 2013-03-22 10:04:16 +0000 |
commit | 1b5ee4337fe825d39095d42dbd596f153c48ac36 (patch) | |
tree | e2ceefb56b6cf2edc4e4a264ab8def5b8cc7530a /third_party/WebKit/LayoutTests/fast/forms/week-multiple-fields | |
parent | 7551108a40902e5e45d0679df2ce7e0bc8c090c1 (diff) | |
download | chromium_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')
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> |