diff options
Diffstat (limited to 'Source/WebKit/chromium/tests/LocaleMacTest.cpp')
-rw-r--r-- | Source/WebKit/chromium/tests/LocaleMacTest.cpp | 56 |
1 files changed, 52 insertions, 4 deletions
diff --git a/Source/WebKit/chromium/tests/LocaleMacTest.cpp b/Source/WebKit/chromium/tests/LocaleMacTest.cpp index afcd0b889..8b1c2f576 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); @@ -134,6 +153,27 @@ TEST_F(LocaleMacTest, formatDate) EXPECT_STREQ("05/04/27", formatDate("ja_JP", 2005, April, 27).utf8().data()); } +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) { EXPECT_EQ(msForDate(2005, April, 27), parseDate("en_US", "April 27, 2005")); @@ -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()); |