Index: ui/base/l10n/time_format_unittest.cc |
diff --git a/ui/base/l10n/time_format_unittest.cc b/ui/base/l10n/time_format_unittest.cc |
index 4d6dbb7d154197e95547a7ec3f9bceeaef6badd6..69f8b4e94ac10b7e2df683c4b97746688f0126fa 100644 |
--- a/ui/base/l10n/time_format_unittest.cc |
+++ b/ui/base/l10n/time_format_unittest.cc |
@@ -9,6 +9,7 @@ |
#include "base/strings/utf_string_conversions.h" |
#include "base/time/time.h" |
#include "testing/gtest/include/gtest/gtest.h" |
+#include "ui/base/l10n/formatter.h" |
#include "ui/base/resource/resource_bundle.h" |
using base::ASCIIToUTF16; |
@@ -20,6 +21,59 @@ using base::TimeDelta; |
class TimeFormatTest : public ::testing::Test { |
public: |
+ TimeFormatTest() : |
+ delta_0s_(TimeDelta::FromSeconds(0)), |
+ delta_1ms_(TimeDelta::FromMilliseconds(1)), |
+ delta_499ms_(TimeDelta::FromMilliseconds(499)), |
+ delta_500ms_(TimeDelta::FromMilliseconds(500)), |
+ delta_999ms_(TimeDelta::FromMilliseconds(999)), |
+ delta_1s_(TimeDelta::FromSeconds(1)), |
+ delta_1s499ms_(delta_1s_ + delta_499ms_), |
+ delta_1s500ms_(delta_1s_ + delta_500ms_), |
+ delta_2s_(TimeDelta::FromSeconds(2)), |
+ delta_29s_(TimeDelta::FromSeconds(29)), |
+ delta_30s_(TimeDelta::FromSeconds(30)), |
+ delta_59s_(TimeDelta::FromSeconds(59)), |
+ delta_59s499ms_(delta_59s_ + delta_499ms_), |
+ delta_59s500ms_(delta_59s_ + delta_500ms_), |
+ delta_1m_(TimeDelta::FromMinutes(1)), |
+ delta_1m2s_(delta_1m_ + delta_2s_), |
+ delta_1m29s999ms_(delta_1m_ + delta_29s_ + delta_999ms_), |
+ delta_1m30s_(delta_1m_ + delta_30s_), |
+ delta_2m_(TimeDelta::FromMinutes(2)), |
+ delta_2m1s_(delta_2m_ + delta_1s_), |
+ delta_29m_(TimeDelta::FromMinutes(29)), |
+ delta_30m_(TimeDelta::FromMinutes(30)), |
+ delta_59m_(TimeDelta::FromMinutes(59)), |
+ delta_59m29s999ms_(delta_59m_ + delta_29s_ + delta_999ms_), |
+ delta_59m30s_(delta_59m_ + delta_30s_), |
+ delta_59m59s499ms_(delta_59m_ + delta_59s_ + delta_499ms_), |
+ delta_59m59s500ms_(delta_59m_ + delta_59s_ + delta_500ms_), |
+ delta_1h_(TimeDelta::FromHours(1)), |
+ delta_1h2m_(delta_1h_ + delta_2m_), |
+ delta_1h29m59s999ms_(delta_1h_ + delta_29m_ + delta_59s_ + delta_999ms_), |
+ delta_1h30m_(delta_1h_ + delta_30m_), |
+ delta_2h_(TimeDelta::FromHours(2)), |
+ delta_2h1m_(delta_2h_ + delta_1m_), |
+ delta_11h_(TimeDelta::FromHours(11)), |
+ delta_12h_(TimeDelta::FromHours(12)), |
+ delta_23h_(TimeDelta::FromHours(23)), |
+ delta_23h29m59s999ms_(delta_23h_ + delta_29m_ + delta_59s_ + |
+ delta_999ms_), |
+ delta_23h30m_(delta_23h_ + delta_30m_), |
+ delta_23h59m29s999ms_(delta_23h_ + delta_59m_ + delta_29s_ + |
+ delta_999ms_), |
+ delta_23h59m30s_(delta_23h_ + delta_59m_ + delta_30s_), |
+ delta_1d_(TimeDelta::FromDays(1)), |
+ delta_1d2h_(delta_1d_ + delta_2h_), |
+ delta_1d11h59m59s999ms_(delta_1d_ + delta_11h_ + delta_59m_ + delta_29s_ + |
+ delta_999ms_), |
+ delta_1d12h_(delta_1d_ + delta_12h_), |
+ delta_2d_(TimeDelta::FromDays(2)), |
+ delta_2d1h_(delta_2d_ + delta_1h_) |
+ {} |
+ |
+ protected: |
static void SetUpTestCase() { |
LoadLocale(ui::ResourceBundle::GetSharedInstance() |
.GetLocaleFilePath("en-US", true)); |
@@ -29,6 +83,153 @@ class TimeFormatTest : public ::testing::Test { |
LoadLocale(base::FilePath()); |
} |
+ void TestStrings() { |
+ // Test English strings (simple, singular). |
+ EXPECT_EQ(ASCIIToUTF16("1 sec"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1s_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 min"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1m_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 hour"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1h_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 day"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1d_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 second"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, delta_1s_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 minute"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, delta_1m_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 hour"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, delta_1h_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 day"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, delta_1d_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 sec left"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_SHORT, delta_1s_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 min left"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_SHORT, delta_1m_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 hour left"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_SHORT, delta_1h_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 day left"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_SHORT, delta_1d_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 second left"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_LONG, delta_1s_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 minute left"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_LONG, delta_1m_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 hour left"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_LONG, delta_1h_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 day left"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_LONG, delta_1d_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 sec ago"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_1s_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 min ago"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_1m_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 hour ago"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_1h_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 day ago"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_1d_)); |
+ |
+ // Test English strings (simple, plural). |
+ EXPECT_EQ(ASCIIToUTF16("2 secs"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_2s_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 mins"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_2m_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 hours"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_2h_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 days"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_2d_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 seconds"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, delta_2s_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 minutes"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, delta_2m_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 hours"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, delta_2h_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 days"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, delta_2d_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 secs left"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_SHORT, delta_2s_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 mins left"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_SHORT, delta_2m_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 hours left"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_SHORT, delta_2h_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 days left"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_SHORT, delta_2d_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 seconds left"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_LONG, delta_2s_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 minutes left"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_LONG, delta_2m_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 hours left"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_LONG, delta_2h_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 days left"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_LONG, delta_2d_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 secs ago"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_2s_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 mins ago"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_2m_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 hours ago"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_2h_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 days ago"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_2d_)); |
+ |
+ // Test English strings (detailed, singular and plural). |
+ EXPECT_EQ(ASCIIToUTF16("1 minute 2 seconds"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_1m2s_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 minutes 1 second"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_2m1s_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 hour 2 minutes"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_1h2m_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 hours 1 minute"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_2h1m_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 day 2 hours"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_1d2h_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 days 1 hour"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_2d1h_)); |
+ } |
+ |
+ TimeDelta delta_0s_; |
+ TimeDelta delta_1ms_; |
+ TimeDelta delta_499ms_; |
+ TimeDelta delta_500ms_; |
+ TimeDelta delta_999ms_; |
+ TimeDelta delta_1s_; |
+ TimeDelta delta_1s499ms_; |
+ TimeDelta delta_1s500ms_; |
+ TimeDelta delta_2s_; |
+ TimeDelta delta_29s_; |
+ TimeDelta delta_30s_; |
+ TimeDelta delta_59s_; |
+ TimeDelta delta_59s499ms_; |
+ TimeDelta delta_59s500ms_; |
+ TimeDelta delta_1m_; |
+ TimeDelta delta_1m2s_; |
+ TimeDelta delta_1m29s999ms_; |
+ TimeDelta delta_1m30s_; |
+ TimeDelta delta_2m_; |
+ TimeDelta delta_2m1s_; |
+ TimeDelta delta_29m_; |
+ TimeDelta delta_30m_; |
+ TimeDelta delta_59m_; |
+ TimeDelta delta_59m29s999ms_; |
+ TimeDelta delta_59m30s_; |
+ TimeDelta delta_59m59s499ms_; |
+ TimeDelta delta_59m59s500ms_; |
+ TimeDelta delta_1h_; |
+ TimeDelta delta_1h2m_; |
+ TimeDelta delta_1h29m59s999ms_; |
+ TimeDelta delta_1h30m_; |
+ TimeDelta delta_2h_; |
+ TimeDelta delta_2h1m_; |
+ TimeDelta delta_11h_; |
+ TimeDelta delta_12h_; |
+ TimeDelta delta_23h_; |
+ TimeDelta delta_23h29m59s999ms_; |
+ TimeDelta delta_23h30m_; |
+ TimeDelta delta_23h59m29s999ms_; |
+ TimeDelta delta_23h59m30s_; |
+ TimeDelta delta_1d_; |
+ TimeDelta delta_1d2h_; |
+ TimeDelta delta_1d11h59m59s999ms_; |
+ TimeDelta delta_1d12h_; |
+ TimeDelta delta_2d_; |
+ TimeDelta delta_2d1h_; |
+ |
private: |
static void LoadLocale(const base::FilePath& file_path) { |
ui::ResourceBundle::GetSharedInstance().OverrideLocalePakForTest(file_path); |
@@ -36,74 +237,111 @@ class TimeFormatTest : public ::testing::Test { |
} |
}; |
-void TestTimeFormats(const TimeDelta& delta, const char* expected_ascii) { |
- base::string16 expected = ASCIIToUTF16(expected_ascii); |
- base::string16 expected_left = expected + ASCIIToUTF16(" left"); |
- base::string16 expected_ago = expected + ASCIIToUTF16(" ago"); |
- EXPECT_EQ(expected, TimeFormat::TimeDurationShort(delta)); |
- EXPECT_EQ(expected_left, TimeFormat::TimeRemaining(delta)); |
- EXPECT_EQ(expected_ago, TimeFormat::TimeElapsed(delta)); |
-} |
+TEST_F(TimeFormatTest, SimpleAndDetailedRounding) { |
+ // Test rounding behavior (simple). |
+ EXPECT_EQ(ASCIIToUTF16("0 secs"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_0s_)); |
+ EXPECT_EQ(ASCIIToUTF16("0 secs"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_499ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 sec"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_500ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 sec"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1s499ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 secs"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1s500ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("59 secs"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_59s499ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 min"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_59s500ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 min"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, |
+ delta_1m29s999ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 mins"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1m30s_)); |
+ EXPECT_EQ(ASCIIToUTF16("59 mins"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, |
+ delta_59m29s999ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 hour"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_59m30s_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 hour"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, |
+ delta_1h29m59s999ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 hours"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1h30m_)); |
+ EXPECT_EQ(ASCIIToUTF16("23 hours"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, |
+ delta_23h29m59s999ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 day"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_23h30m_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 day"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, |
+ delta_1d11h59m59s999ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("2 days"), TimeFormat::Simple( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1d12h_)); |
-TEST_F(TimeFormatTest, FormatTime) { |
- const TimeDelta one_day = TimeDelta::FromDays(1); |
- const TimeDelta one_hour = TimeDelta::FromHours(1); |
- const TimeDelta one_min = TimeDelta::FromMinutes(1); |
- const TimeDelta one_second = TimeDelta::FromSeconds(1); |
- const TimeDelta one_millisecond = TimeDelta::FromMilliseconds(1); |
- const TimeDelta zero = TimeDelta::FromMilliseconds(0); |
- |
- TestTimeFormats(zero, "0 secs"); |
- TestTimeFormats(499 * one_millisecond, "0 secs"); |
- TestTimeFormats(500 * one_millisecond, "1 sec"); |
- TestTimeFormats(1 * one_second + 499 * one_millisecond, "1 sec"); |
- TestTimeFormats(1 * one_second + 500 * one_millisecond, "2 secs"); |
- TestTimeFormats(59 * one_second + 499 * one_millisecond, "59 secs"); |
- TestTimeFormats(59 * one_second + 500 * one_millisecond, "1 min"); |
- TestTimeFormats(1 * one_min + 30 * one_second - one_millisecond, "1 min"); |
- TestTimeFormats(1 * one_min + 30 * one_second, "2 mins"); |
- TestTimeFormats(59 * one_min + 30 * one_second - one_millisecond, "59 mins"); |
- TestTimeFormats(59 * one_min + 30 * one_second, "1 hour"); |
- TestTimeFormats(1 * one_hour + 30 * one_min - one_millisecond, "1 hour"); |
- TestTimeFormats(1 * one_hour + 30 * one_min, "2 hours"); |
- TestTimeFormats(23 * one_hour + 30 * one_min - one_millisecond, "23 hours"); |
- TestTimeFormats(23 * one_hour + 30 * one_min, "1 day"); |
- TestTimeFormats(1 * one_day + 12 * one_hour - one_millisecond, "1 day"); |
- TestTimeFormats(1 * one_day + 12 * one_hour, "2 days"); |
+ // Test rounding behavior (detailed). |
+ EXPECT_EQ(ASCIIToUTF16("59 seconds"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 100, |
+ delta_59s499ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 minute 0 seconds"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, |
+ delta_59s500ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 minute"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, |
+ delta_59s500ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("59 minutes 59 seconds"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 60, |
+ delta_59m59s499ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 hour 0 minutes"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 59, |
+ delta_59m59s499ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 hour 0 minutes"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, |
+ delta_59m59s499ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 hour"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, |
+ delta_59m59s499ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 hour"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, |
+ delta_59m59s500ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 hour 0 minutes"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, |
+ delta_59m59s500ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("23 hours 59 minutes"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 24, |
+ delta_23h59m29s999ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 day 0 hours"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 23, |
+ delta_23h59m29s999ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 day 0 hours"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, |
+ delta_23h59m29s999ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 day"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, |
+ delta_23h59m29s999ms_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 day"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, |
+ delta_23h59m30s_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 day 0 hours"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, |
+ delta_23h59m30s_)); |
+ EXPECT_EQ(ASCIIToUTF16("1 day 0 hours"), TimeFormat::Detailed( |
+ TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, -1, |
+ delta_23h59m30s_)); |
} |
-void TestRemainingLong(const TimeDelta& delta, const std::string& expected) { |
- EXPECT_EQ(TimeFormat::TimeRemainingLong(delta), ASCIIToUTF16(expected)); |
+// Test strings in default code path. |
+TEST_F(TimeFormatTest, SimpleAndDetailedStrings) { |
+ TestStrings(); |
} |
-TEST_F(TimeFormatTest, TimeRemainingLong) { |
- const TimeDelta one_day(TimeDelta::FromDays(1)); |
- const TimeDelta one_hour(TimeDelta::FromHours(1)); |
- const TimeDelta one_min(TimeDelta::FromMinutes(1)); |
- const TimeDelta one_second(TimeDelta::FromSeconds(1)); |
- const TimeDelta one_millisecond(TimeDelta::FromMilliseconds(1)); |
- const TimeDelta zero(TimeDelta::FromMilliseconds(0)); |
- |
- TestRemainingLong(zero, "0 seconds left"); |
- TestRemainingLong(499 * one_millisecond, "0 seconds left"); |
- TestRemainingLong(500 * one_millisecond, "1 second left"); |
- TestRemainingLong(one_second + 499 * one_millisecond, "1 second left"); |
- TestRemainingLong(one_second + 500 * one_millisecond, "2 seconds left"); |
- TestRemainingLong(59 * one_second + 499 * one_millisecond, "59 seconds left"); |
- TestRemainingLong(59 * one_second + 500 * one_millisecond, "1 minute left"); |
- TestRemainingLong(one_min + 30 * one_second - one_millisecond, |
- "1 minute left"); |
- TestRemainingLong(one_min + 30 * one_second, "2 minutes left"); |
- TestRemainingLong(59 * one_min + 30 * one_second - one_millisecond, |
- "59 minutes left"); |
- TestRemainingLong(59 * one_min + 30 * one_second, "1 hour left"); |
- TestRemainingLong(one_hour + 30 * one_min - one_millisecond, "1 hour left"); |
- TestRemainingLong(one_hour + 30 * one_min, "2 hours left"); |
- TestRemainingLong(23 * one_hour + 30 * one_min - one_millisecond, |
- "23 hours left"); |
- TestRemainingLong(23 * one_hour + 30 * one_min, "1 day left"); |
- TestRemainingLong(one_day + 12 * one_hour - one_millisecond, "1 day left"); |
- TestRemainingLong(one_day + 12 * one_hour, "2 days left"); |
+// Test strings in fallback path in case of translator error. |
+TEST_F(TimeFormatTest, SimpleAndDetailedStringFallback) { |
+ formatter_force_fallback = true; |
+ g_container.Get().ResetForTesting(); |
+ TestStrings(); |
+ formatter_force_fallback = false; |
+ g_container.Get().ResetForTesting(); |
} |
// crbug.com/159388: This test fails when daylight savings time ends. |