diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2012-10-17 16:21:14 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2012-10-17 16:21:14 +0200 |
commit | 8995b83bcbfbb68245f779b64e5517627c6cc6ea (patch) | |
tree | 17985605dab9263cc2444bd4d45f189e142cca7c /Source/WebKit/chromium/tests/LocaleMacTest.cpp | |
parent | b9c9652036d5e9f1e29c574f40bc73a35c81ace6 (diff) | |
download | qtwebkit-8995b83bcbfbb68245f779b64e5517627c6cc6ea.tar.gz |
Imported WebKit commit cf4f8fc6f19b0629f51860cb2d4b25e139d07e00 (http://svn.webkit.org/repository/webkit/trunk@131592)
New snapshot that includes the build fixes for Mac OS X 10.6 and earlier as well
as the previously cherry-picked changes
Diffstat (limited to 'Source/WebKit/chromium/tests/LocaleMacTest.cpp')
-rw-r--r-- | Source/WebKit/chromium/tests/LocaleMacTest.cpp | 62 |
1 files changed, 55 insertions, 7 deletions
diff --git a/Source/WebKit/chromium/tests/LocaleMacTest.cpp b/Source/WebKit/chromium/tests/LocaleMacTest.cpp index afcd0b889..449776195 100644 --- a/Source/WebKit/chromium/tests/LocaleMacTest.cpp +++ b/Source/WebKit/chromium/tests/LocaleMacTest.cpp @@ -57,6 +57,13 @@ protected: return date; } + DateComponents timeComponents(int hour, int minute, int second, int millisecond) + { + DateComponents date; + date.setMillisecondsSinceMidnight(hour * msPerHour + minute * msPerMinute + second * msPerSecond + millisecond); + return date; + } + double msForDate(int year, int month, int day) { return dateToDaysFrom1970(year, month, day) * msPerDay; @@ -65,13 +72,19 @@ protected: String formatDate(const String& localeString, int year, int month, int day) { OwnPtr<LocaleMac> locale = LocaleMac::create(localeString); - return locale->formatDate(dateComponents(year, month, day)); + return locale->formatDateTime(dateComponents(year, month, day)); + } + + String formatTime(const String& localeString, int hour, int minute, int second, int millisecond, bool useShortFormat) + { + OwnPtr<LocaleMac> locale = LocaleMac::create(localeString); + return locale->formatDateTime(timeComponents(hour, minute, second, millisecond), (useShortFormat ? Localizer::FormatTypeShort : Localizer::FormatTypeMedium)); } double parseDate(const String& localeString, const String& dateString) { OwnPtr<LocaleMac> locale = LocaleMac::create(localeString); - return locale->parseDate(dateString); + return locale->parseDateTime(dateString, DateComponents::Date); } #if ENABLE(CALENDAR_PICKER) @@ -98,9 +111,15 @@ protected: OwnPtr<LocaleMac> locale = LocaleMac::create(localeString); return locale->weekDayShortLabels()[index]; } + + bool isRTL(const String& localeString) + { + OwnPtr<LocaleMac> locale = LocaleMac::create(localeString); + return locale->isRTL(); + } #endif -#if ENABLE(INPUT_TYPE_TIME_MULTIPLE_FIELDS) +#if ENABLE(INPUT_MULTIPLE_FIELDS_UI) String timeFormat(const String& localeString) { OwnPtr<LocaleMac> locale = LocaleMac::create(localeString); @@ -129,9 +148,30 @@ protected: TEST_F(LocaleMacTest, formatDate) { - EXPECT_STREQ("4/27/05", formatDate("en_US", 2005, April, 27).utf8().data()); - EXPECT_STREQ("27/04/05", formatDate("fr_FR", 2005, April, 27).utf8().data()); - EXPECT_STREQ("05/04/27", formatDate("ja_JP", 2005, April, 27).utf8().data()); + EXPECT_STREQ("04/27/2005", formatDate("en_US", 2005, April, 27).utf8().data()); + EXPECT_STREQ("27/04/2005", formatDate("fr_FR", 2005, April, 27).utf8().data()); + // Do not test ja_JP locale. OS X 10.8 and 10.7 have different formats. +} + +TEST_F(LocaleMacTest, formatTime) +{ + EXPECT_STREQ("1:23 PM", formatTime("en_US", 13, 23, 00, 000, true).utf8().data()); + EXPECT_STREQ("13:23", formatTime("fr_FR", 13, 23, 00, 000, true).utf8().data()); + EXPECT_STREQ("13:23", formatTime("ja_JP", 13, 23, 00, 000, true).utf8().data()); + EXPECT_STREQ("\xD9\xA1:\xD9\xA2\xD9\xA3 \xD9\x85", formatTime("ar", 13, 23, 00, 000, true).utf8().data()); + EXPECT_STREQ("\xDB\xB1\xDB\xB3:\xDB\xB2\xDB\xB3", formatTime("fa", 13, 23, 00, 000, true).utf8().data()); + + EXPECT_STREQ("12:00 AM", formatTime("en_US", 00, 00, 00, 000, true).utf8().data()); + EXPECT_STREQ("00:00", formatTime("fr_FR", 00, 00, 00, 000, true).utf8().data()); + EXPECT_STREQ("0:00", formatTime("ja_JP", 00, 00, 00, 000, true).utf8().data()); + EXPECT_STREQ("\xD9\xA1\xD9\xA2:\xD9\xA0\xD9\xA0 \xD8\xB5", formatTime("ar", 00, 00, 00, 000, true).utf8().data()); + EXPECT_STREQ("\xDB\xB0:\xDB\xB0\xDB\xB0", formatTime("fa", 00, 00, 00, 000, true).utf8().data()); + + EXPECT_STREQ("7:07:07.007 AM", formatTime("en_US", 07, 07, 07, 007, false).utf8().data()); + EXPECT_STREQ("07:07:07,007", formatTime("fr_FR", 07, 07, 07, 007, false).utf8().data()); + EXPECT_STREQ("7:07:07.007", formatTime("ja_JP", 07, 07, 07, 007, false).utf8().data()); + EXPECT_STREQ("\xD9\xA7:\xD9\xA0\xD9\xA7:\xD9\xA0\xD9\xA7\xD9\xAB\xD9\xA0\xD9\xA0\xD9\xA7 \xD8\xB5", formatTime("ar", 07, 07, 07, 007, false).utf8().data()); + EXPECT_STREQ("\xDB\xB7:\xDB\xB0\xDB\xB7:\xDB\xB0\xDB\xB7\xD9\xAB\xDB\xB0\xDB\xB0\xDB\xB7", formatTime("fa", 07, 07, 07, 007, false).utf8().data()); } TEST_F(LocaleMacTest, parseDate) @@ -185,9 +225,17 @@ TEST_F(LocaleMacTest, weekDayShortLabels) EXPECT_STREQ("\xE6\xB0\xB4", weekDayShortLabel("ja_JP", Wednesday).utf8().data()); EXPECT_STREQ("\xE5\x9C\x9F", weekDayShortLabel("ja_JP", Saturday).utf8().data()); } + +TEST_F(LocaleMacTest, isRTL) +{ + EXPECT_TRUE(isRTL("ar-eg")); + EXPECT_FALSE(isRTL("en-us")); + EXPECT_FALSE(isRTL("ja-jp")); + EXPECT_FALSE(isRTL("**invalid**")); +} #endif -#if ENABLE(INPUT_TYPE_TIME_MULTIPLE_FIELDS) +#if ENABLE(INPUT_MULTIPLE_FIELDS_UI) TEST_F(LocaleMacTest, timeFormat) { EXPECT_STREQ("h:mm:ss a", timeFormat("en_US").utf8().data()); |