| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "ui/base/l10n/time_format.h" | |
| 6 | |
| 7 #include "base/files/file_path.h" | |
| 8 #include "base/strings/string16.h" | |
| 9 #include "base/strings/utf_string_conversions.h" | |
| 10 #include "base/time/time.h" | |
| 11 #include "testing/gtest/include/gtest/gtest.h" | |
| 12 #include "ui/base/l10n/formatter.h" | |
| 13 | |
| 14 using base::ASCIIToUTF16; | |
| 15 | |
| 16 namespace ui { | |
| 17 namespace { | |
| 18 | |
| 19 using base::TimeDelta; | |
| 20 | |
| 21 class TimeFormatTest : public ::testing::Test { | |
| 22 public: | |
| 23 TimeFormatTest() : | |
| 24 delta_0s_(TimeDelta::FromSeconds(0)), | |
| 25 delta_1ms_(TimeDelta::FromMilliseconds(1)), | |
| 26 delta_499ms_(TimeDelta::FromMilliseconds(499)), | |
| 27 delta_500ms_(TimeDelta::FromMilliseconds(500)), | |
| 28 delta_999ms_(TimeDelta::FromMilliseconds(999)), | |
| 29 delta_1s_(TimeDelta::FromSeconds(1)), | |
| 30 delta_1s499ms_(delta_1s_ + delta_499ms_), | |
| 31 delta_1s500ms_(delta_1s_ + delta_500ms_), | |
| 32 delta_2s_(TimeDelta::FromSeconds(2)), | |
| 33 delta_29s_(TimeDelta::FromSeconds(29)), | |
| 34 delta_30s_(TimeDelta::FromSeconds(30)), | |
| 35 delta_59s_(TimeDelta::FromSeconds(59)), | |
| 36 delta_59s499ms_(delta_59s_ + delta_499ms_), | |
| 37 delta_59s500ms_(delta_59s_ + delta_500ms_), | |
| 38 delta_1m_(TimeDelta::FromMinutes(1)), | |
| 39 delta_1m2s_(delta_1m_ + delta_2s_), | |
| 40 delta_1m29s999ms_(delta_1m_ + delta_29s_ + delta_999ms_), | |
| 41 delta_1m30s_(delta_1m_ + delta_30s_), | |
| 42 delta_2m_(TimeDelta::FromMinutes(2)), | |
| 43 delta_2m1s_(delta_2m_ + delta_1s_), | |
| 44 delta_29m_(TimeDelta::FromMinutes(29)), | |
| 45 delta_30m_(TimeDelta::FromMinutes(30)), | |
| 46 delta_59m_(TimeDelta::FromMinutes(59)), | |
| 47 delta_59m29s999ms_(delta_59m_ + delta_29s_ + delta_999ms_), | |
| 48 delta_59m30s_(delta_59m_ + delta_30s_), | |
| 49 delta_59m59s499ms_(delta_59m_ + delta_59s_ + delta_499ms_), | |
| 50 delta_59m59s500ms_(delta_59m_ + delta_59s_ + delta_500ms_), | |
| 51 delta_1h_(TimeDelta::FromHours(1)), | |
| 52 delta_1h2m_(delta_1h_ + delta_2m_), | |
| 53 delta_1h29m59s999ms_(delta_1h_ + delta_29m_ + delta_59s_ + delta_999ms_), | |
| 54 delta_1h30m_(delta_1h_ + delta_30m_), | |
| 55 delta_2h_(TimeDelta::FromHours(2)), | |
| 56 delta_2h1m_(delta_2h_ + delta_1m_), | |
| 57 delta_11h_(TimeDelta::FromHours(11)), | |
| 58 delta_12h_(TimeDelta::FromHours(12)), | |
| 59 delta_23h_(TimeDelta::FromHours(23)), | |
| 60 delta_23h29m59s999ms_(delta_23h_ + delta_29m_ + delta_59s_ + | |
| 61 delta_999ms_), | |
| 62 delta_23h30m_(delta_23h_ + delta_30m_), | |
| 63 delta_23h59m29s999ms_(delta_23h_ + delta_59m_ + delta_29s_ + | |
| 64 delta_999ms_), | |
| 65 delta_23h59m30s_(delta_23h_ + delta_59m_ + delta_30s_), | |
| 66 delta_1d_(TimeDelta::FromDays(1)), | |
| 67 delta_1d2h_(delta_1d_ + delta_2h_), | |
| 68 delta_1d11h59m59s999ms_(delta_1d_ + delta_11h_ + delta_59m_ + delta_29s_ + | |
| 69 delta_999ms_), | |
| 70 delta_1d12h_(delta_1d_ + delta_12h_), | |
| 71 delta_2d_(TimeDelta::FromDays(2)), | |
| 72 delta_2d1h_(delta_2d_ + delta_1h_) | |
| 73 {} | |
| 74 | |
| 75 protected: | |
| 76 void TestStrings() { | |
| 77 // Test English strings (simple, singular). | |
| 78 EXPECT_EQ(ASCIIToUTF16("1 sec"), TimeFormat::Simple( | |
| 79 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1s_)); | |
| 80 EXPECT_EQ(ASCIIToUTF16("1 min"), TimeFormat::Simple( | |
| 81 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1m_)); | |
| 82 EXPECT_EQ(ASCIIToUTF16("1 hour"), TimeFormat::Simple( | |
| 83 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1h_)); | |
| 84 EXPECT_EQ(ASCIIToUTF16("1 day"), TimeFormat::Simple( | |
| 85 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1d_)); | |
| 86 EXPECT_EQ(ASCIIToUTF16("1 second"), TimeFormat::Simple( | |
| 87 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, delta_1s_)); | |
| 88 EXPECT_EQ(ASCIIToUTF16("1 minute"), TimeFormat::Simple( | |
| 89 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, delta_1m_)); | |
| 90 EXPECT_EQ(ASCIIToUTF16("1 hour"), TimeFormat::Simple( | |
| 91 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, delta_1h_)); | |
| 92 EXPECT_EQ(ASCIIToUTF16("1 day"), TimeFormat::Simple( | |
| 93 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, delta_1d_)); | |
| 94 EXPECT_EQ(ASCIIToUTF16("1 sec left"), TimeFormat::Simple( | |
| 95 TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_SHORT, delta_1s_)); | |
| 96 EXPECT_EQ(ASCIIToUTF16("1 min left"), TimeFormat::Simple( | |
| 97 TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_SHORT, delta_1m_)); | |
| 98 EXPECT_EQ(ASCIIToUTF16("1 hour left"), TimeFormat::Simple( | |
| 99 TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_SHORT, delta_1h_)); | |
| 100 EXPECT_EQ(ASCIIToUTF16("1 day left"), TimeFormat::Simple( | |
| 101 TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_SHORT, delta_1d_)); | |
| 102 EXPECT_EQ(ASCIIToUTF16("1 second left"), TimeFormat::Simple( | |
| 103 TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_LONG, delta_1s_)); | |
| 104 EXPECT_EQ(ASCIIToUTF16("1 minute left"), TimeFormat::Simple( | |
| 105 TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_LONG, delta_1m_)); | |
| 106 EXPECT_EQ(ASCIIToUTF16("1 hour left"), TimeFormat::Simple( | |
| 107 TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_LONG, delta_1h_)); | |
| 108 EXPECT_EQ(ASCIIToUTF16("1 day left"), TimeFormat::Simple( | |
| 109 TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_LONG, delta_1d_)); | |
| 110 EXPECT_EQ(ASCIIToUTF16("1 sec ago"), TimeFormat::Simple( | |
| 111 TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_1s_)); | |
| 112 EXPECT_EQ(ASCIIToUTF16("1 min ago"), TimeFormat::Simple( | |
| 113 TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_1m_)); | |
| 114 EXPECT_EQ(ASCIIToUTF16("1 hour ago"), TimeFormat::Simple( | |
| 115 TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_1h_)); | |
| 116 EXPECT_EQ(ASCIIToUTF16("1 day ago"), TimeFormat::Simple( | |
| 117 TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_1d_)); | |
| 118 | |
| 119 // Test English strings (simple, plural). | |
| 120 EXPECT_EQ(ASCIIToUTF16("2 secs"), TimeFormat::Simple( | |
| 121 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_2s_)); | |
| 122 EXPECT_EQ(ASCIIToUTF16("2 mins"), TimeFormat::Simple( | |
| 123 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_2m_)); | |
| 124 EXPECT_EQ(ASCIIToUTF16("2 hours"), TimeFormat::Simple( | |
| 125 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_2h_)); | |
| 126 EXPECT_EQ(ASCIIToUTF16("2 days"), TimeFormat::Simple( | |
| 127 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_2d_)); | |
| 128 EXPECT_EQ(ASCIIToUTF16("2 seconds"), TimeFormat::Simple( | |
| 129 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, delta_2s_)); | |
| 130 EXPECT_EQ(ASCIIToUTF16("2 minutes"), TimeFormat::Simple( | |
| 131 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, delta_2m_)); | |
| 132 EXPECT_EQ(ASCIIToUTF16("2 hours"), TimeFormat::Simple( | |
| 133 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, delta_2h_)); | |
| 134 EXPECT_EQ(ASCIIToUTF16("2 days"), TimeFormat::Simple( | |
| 135 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, delta_2d_)); | |
| 136 EXPECT_EQ(ASCIIToUTF16("2 secs left"), TimeFormat::Simple( | |
| 137 TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_SHORT, delta_2s_)); | |
| 138 EXPECT_EQ(ASCIIToUTF16("2 mins left"), TimeFormat::Simple( | |
| 139 TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_SHORT, delta_2m_)); | |
| 140 EXPECT_EQ(ASCIIToUTF16("2 hours left"), TimeFormat::Simple( | |
| 141 TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_SHORT, delta_2h_)); | |
| 142 EXPECT_EQ(ASCIIToUTF16("2 days left"), TimeFormat::Simple( | |
| 143 TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_SHORT, delta_2d_)); | |
| 144 EXPECT_EQ(ASCIIToUTF16("2 seconds left"), TimeFormat::Simple( | |
| 145 TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_LONG, delta_2s_)); | |
| 146 EXPECT_EQ(ASCIIToUTF16("2 minutes left"), TimeFormat::Simple( | |
| 147 TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_LONG, delta_2m_)); | |
| 148 EXPECT_EQ(ASCIIToUTF16("2 hours left"), TimeFormat::Simple( | |
| 149 TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_LONG, delta_2h_)); | |
| 150 EXPECT_EQ(ASCIIToUTF16("2 days left"), TimeFormat::Simple( | |
| 151 TimeFormat::FORMAT_REMAINING, TimeFormat::LENGTH_LONG, delta_2d_)); | |
| 152 EXPECT_EQ(ASCIIToUTF16("2 secs ago"), TimeFormat::Simple( | |
| 153 TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_2s_)); | |
| 154 EXPECT_EQ(ASCIIToUTF16("2 mins ago"), TimeFormat::Simple( | |
| 155 TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_2m_)); | |
| 156 EXPECT_EQ(ASCIIToUTF16("2 hours ago"), TimeFormat::Simple( | |
| 157 TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_2h_)); | |
| 158 EXPECT_EQ(ASCIIToUTF16("2 days ago"), TimeFormat::Simple( | |
| 159 TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_2d_)); | |
| 160 | |
| 161 // Test English strings (detailed, singular and plural). | |
| 162 EXPECT_EQ(ASCIIToUTF16("1 minute 2 seconds"), TimeFormat::Detailed( | |
| 163 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_1m2s_)); | |
| 164 EXPECT_EQ(ASCIIToUTF16("2 minutes 1 second"), TimeFormat::Detailed( | |
| 165 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_2m1s_)); | |
| 166 EXPECT_EQ(ASCIIToUTF16("1 hour 2 minutes"), TimeFormat::Detailed( | |
| 167 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_1h2m_)); | |
| 168 EXPECT_EQ(ASCIIToUTF16("2 hours 1 minute"), TimeFormat::Detailed( | |
| 169 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_2h1m_)); | |
| 170 EXPECT_EQ(ASCIIToUTF16("1 day 2 hours"), TimeFormat::Detailed( | |
| 171 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_1d2h_)); | |
| 172 EXPECT_EQ(ASCIIToUTF16("2 days 1 hour"), TimeFormat::Detailed( | |
| 173 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_2d1h_)); | |
| 174 } | |
| 175 | |
| 176 TimeDelta delta_0s_; | |
| 177 TimeDelta delta_1ms_; | |
| 178 TimeDelta delta_499ms_; | |
| 179 TimeDelta delta_500ms_; | |
| 180 TimeDelta delta_999ms_; | |
| 181 TimeDelta delta_1s_; | |
| 182 TimeDelta delta_1s499ms_; | |
| 183 TimeDelta delta_1s500ms_; | |
| 184 TimeDelta delta_2s_; | |
| 185 TimeDelta delta_29s_; | |
| 186 TimeDelta delta_30s_; | |
| 187 TimeDelta delta_59s_; | |
| 188 TimeDelta delta_59s499ms_; | |
| 189 TimeDelta delta_59s500ms_; | |
| 190 TimeDelta delta_1m_; | |
| 191 TimeDelta delta_1m2s_; | |
| 192 TimeDelta delta_1m29s999ms_; | |
| 193 TimeDelta delta_1m30s_; | |
| 194 TimeDelta delta_2m_; | |
| 195 TimeDelta delta_2m1s_; | |
| 196 TimeDelta delta_29m_; | |
| 197 TimeDelta delta_30m_; | |
| 198 TimeDelta delta_59m_; | |
| 199 TimeDelta delta_59m29s999ms_; | |
| 200 TimeDelta delta_59m30s_; | |
| 201 TimeDelta delta_59m59s499ms_; | |
| 202 TimeDelta delta_59m59s500ms_; | |
| 203 TimeDelta delta_1h_; | |
| 204 TimeDelta delta_1h2m_; | |
| 205 TimeDelta delta_1h29m59s999ms_; | |
| 206 TimeDelta delta_1h30m_; | |
| 207 TimeDelta delta_2h_; | |
| 208 TimeDelta delta_2h1m_; | |
| 209 TimeDelta delta_11h_; | |
| 210 TimeDelta delta_12h_; | |
| 211 TimeDelta delta_23h_; | |
| 212 TimeDelta delta_23h29m59s999ms_; | |
| 213 TimeDelta delta_23h30m_; | |
| 214 TimeDelta delta_23h59m29s999ms_; | |
| 215 TimeDelta delta_23h59m30s_; | |
| 216 TimeDelta delta_1d_; | |
| 217 TimeDelta delta_1d2h_; | |
| 218 TimeDelta delta_1d11h59m59s999ms_; | |
| 219 TimeDelta delta_1d12h_; | |
| 220 TimeDelta delta_2d_; | |
| 221 TimeDelta delta_2d1h_; | |
| 222 }; | |
| 223 | |
| 224 TEST_F(TimeFormatTest, SimpleAndDetailedRounding) { | |
| 225 // Test rounding behavior (simple). | |
| 226 EXPECT_EQ(ASCIIToUTF16("0 secs"), TimeFormat::Simple( | |
| 227 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_0s_)); | |
| 228 EXPECT_EQ(ASCIIToUTF16("0 secs"), TimeFormat::Simple( | |
| 229 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_499ms_)); | |
| 230 EXPECT_EQ(ASCIIToUTF16("1 sec"), TimeFormat::Simple( | |
| 231 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_500ms_)); | |
| 232 EXPECT_EQ(ASCIIToUTF16("1 sec"), TimeFormat::Simple( | |
| 233 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1s499ms_)); | |
| 234 EXPECT_EQ(ASCIIToUTF16("2 secs"), TimeFormat::Simple( | |
| 235 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1s500ms_)); | |
| 236 EXPECT_EQ(ASCIIToUTF16("59 secs"), TimeFormat::Simple( | |
| 237 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_59s499ms_)); | |
| 238 EXPECT_EQ(ASCIIToUTF16("1 min"), TimeFormat::Simple( | |
| 239 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_59s500ms_)); | |
| 240 EXPECT_EQ(ASCIIToUTF16("1 min"), TimeFormat::Simple( | |
| 241 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, | |
| 242 delta_1m29s999ms_)); | |
| 243 EXPECT_EQ(ASCIIToUTF16("2 mins"), TimeFormat::Simple( | |
| 244 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1m30s_)); | |
| 245 EXPECT_EQ(ASCIIToUTF16("59 mins"), TimeFormat::Simple( | |
| 246 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, | |
| 247 delta_59m29s999ms_)); | |
| 248 EXPECT_EQ(ASCIIToUTF16("1 hour"), TimeFormat::Simple( | |
| 249 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_59m30s_)); | |
| 250 EXPECT_EQ(ASCIIToUTF16("1 hour"), TimeFormat::Simple( | |
| 251 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, | |
| 252 delta_1h29m59s999ms_)); | |
| 253 EXPECT_EQ(ASCIIToUTF16("2 hours"), TimeFormat::Simple( | |
| 254 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1h30m_)); | |
| 255 EXPECT_EQ(ASCIIToUTF16("23 hours"), TimeFormat::Simple( | |
| 256 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, | |
| 257 delta_23h29m59s999ms_)); | |
| 258 EXPECT_EQ(ASCIIToUTF16("1 day"), TimeFormat::Simple( | |
| 259 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_23h30m_)); | |
| 260 EXPECT_EQ(ASCIIToUTF16("1 day"), TimeFormat::Simple( | |
| 261 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, | |
| 262 delta_1d11h59m59s999ms_)); | |
| 263 EXPECT_EQ(ASCIIToUTF16("2 days"), TimeFormat::Simple( | |
| 264 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1d12h_)); | |
| 265 | |
| 266 // Test rounding behavior (detailed). | |
| 267 EXPECT_EQ(ASCIIToUTF16("59 seconds"), TimeFormat::Detailed( | |
| 268 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 100, | |
| 269 delta_59s499ms_)); | |
| 270 EXPECT_EQ(ASCIIToUTF16("1 minute 0 seconds"), TimeFormat::Detailed( | |
| 271 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, | |
| 272 delta_59s500ms_)); | |
| 273 EXPECT_EQ(ASCIIToUTF16("1 minute"), TimeFormat::Detailed( | |
| 274 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, | |
| 275 delta_59s500ms_)); | |
| 276 EXPECT_EQ(ASCIIToUTF16("59 minutes 59 seconds"), TimeFormat::Detailed( | |
| 277 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 60, | |
| 278 delta_59m59s499ms_)); | |
| 279 EXPECT_EQ(ASCIIToUTF16("1 hour 0 minutes"), TimeFormat::Detailed( | |
| 280 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 59, | |
| 281 delta_59m59s499ms_)); | |
| 282 EXPECT_EQ(ASCIIToUTF16("1 hour 0 minutes"), TimeFormat::Detailed( | |
| 283 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, | |
| 284 delta_59m59s499ms_)); | |
| 285 EXPECT_EQ(ASCIIToUTF16("1 hour"), TimeFormat::Detailed( | |
| 286 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, | |
| 287 delta_59m59s499ms_)); | |
| 288 EXPECT_EQ(ASCIIToUTF16("1 hour"), TimeFormat::Detailed( | |
| 289 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, | |
| 290 delta_59m59s500ms_)); | |
| 291 EXPECT_EQ(ASCIIToUTF16("1 hour 0 minutes"), TimeFormat::Detailed( | |
| 292 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, | |
| 293 delta_59m59s500ms_)); | |
| 294 EXPECT_EQ(ASCIIToUTF16("23 hours 59 minutes"), TimeFormat::Detailed( | |
| 295 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 24, | |
| 296 delta_23h59m29s999ms_)); | |
| 297 EXPECT_EQ(ASCIIToUTF16("1 day 0 hours"), TimeFormat::Detailed( | |
| 298 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 23, | |
| 299 delta_23h59m29s999ms_)); | |
| 300 EXPECT_EQ(ASCIIToUTF16("1 day 0 hours"), TimeFormat::Detailed( | |
| 301 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, | |
| 302 delta_23h59m29s999ms_)); | |
| 303 EXPECT_EQ(ASCIIToUTF16("1 day"), TimeFormat::Detailed( | |
| 304 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, | |
| 305 delta_23h59m29s999ms_)); | |
| 306 EXPECT_EQ(ASCIIToUTF16("1 day"), TimeFormat::Detailed( | |
| 307 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, | |
| 308 delta_23h59m30s_)); | |
| 309 EXPECT_EQ(ASCIIToUTF16("1 day 0 hours"), TimeFormat::Detailed( | |
| 310 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, | |
| 311 delta_23h59m30s_)); | |
| 312 EXPECT_EQ(ASCIIToUTF16("1 day 0 hours"), TimeFormat::Detailed( | |
| 313 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, -1, | |
| 314 delta_23h59m30s_)); | |
| 315 } | |
| 316 | |
| 317 // Test strings in default code path. | |
| 318 TEST_F(TimeFormatTest, SimpleAndDetailedStrings) { | |
| 319 TestStrings(); | |
| 320 } | |
| 321 | |
| 322 // Test strings in fallback path in case of translator error. | |
| 323 TEST_F(TimeFormatTest, SimpleAndDetailedStringFallback) { | |
| 324 formatter_force_fallback = true; | |
| 325 g_container.Get().ResetForTesting(); | |
| 326 TestStrings(); | |
| 327 formatter_force_fallback = false; | |
| 328 g_container.Get().ResetForTesting(); | |
| 329 } | |
| 330 | |
| 331 // crbug.com/159388: This test fails when daylight savings time ends. | |
| 332 TEST_F(TimeFormatTest, RelativeDate) { | |
| 333 base::Time now = base::Time::Now(); | |
| 334 base::string16 today_str = TimeFormat::RelativeDate(now, NULL); | |
| 335 EXPECT_EQ(ASCIIToUTF16("Today"), today_str); | |
| 336 | |
| 337 base::Time yesterday = now - TimeDelta::FromDays(1); | |
| 338 base::string16 yesterday_str = TimeFormat::RelativeDate(yesterday, NULL); | |
| 339 EXPECT_EQ(ASCIIToUTF16("Yesterday"), yesterday_str); | |
| 340 | |
| 341 base::Time two_days_ago = now - TimeDelta::FromDays(2); | |
| 342 base::string16 two_days_ago_str = | |
| 343 TimeFormat::RelativeDate(two_days_ago, NULL); | |
| 344 EXPECT_TRUE(two_days_ago_str.empty()); | |
| 345 | |
| 346 base::Time a_week_ago = now - TimeDelta::FromDays(7); | |
| 347 base::string16 a_week_ago_str = TimeFormat::RelativeDate(a_week_ago, NULL); | |
| 348 EXPECT_TRUE(a_week_ago_str.empty()); | |
| 349 } | |
| 350 | |
| 351 } // namespace | |
| 352 } // namespace ui | |
| OLD | NEW |