summaryrefslogtreecommitdiff
path: root/Source/WebKit/chromium/tests/LocaleMacTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/chromium/tests/LocaleMacTest.cpp')
-rw-r--r--Source/WebKit/chromium/tests/LocaleMacTest.cpp56
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());