| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/base/l10n/time_format.h" | 5 #include "ui/base/l10n/time_format.h" |
| 6 | 6 |
| 7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
| 8 #include "base/strings/string16.h" | 8 #include "base/strings/string16.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 EXPECT_EQ(ASCIIToUTF16("2 secs ago"), TimeFormat::Simple( | 152 EXPECT_EQ(ASCIIToUTF16("2 secs ago"), TimeFormat::Simple( |
| 153 TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_2s_)); | 153 TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_2s_)); |
| 154 EXPECT_EQ(ASCIIToUTF16("2 mins ago"), TimeFormat::Simple( | 154 EXPECT_EQ(ASCIIToUTF16("2 mins ago"), TimeFormat::Simple( |
| 155 TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_2m_)); | 155 TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_2m_)); |
| 156 EXPECT_EQ(ASCIIToUTF16("2 hours ago"), TimeFormat::Simple( | 156 EXPECT_EQ(ASCIIToUTF16("2 hours ago"), TimeFormat::Simple( |
| 157 TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_2h_)); | 157 TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_2h_)); |
| 158 EXPECT_EQ(ASCIIToUTF16("2 days ago"), TimeFormat::Simple( | 158 EXPECT_EQ(ASCIIToUTF16("2 days ago"), TimeFormat::Simple( |
| 159 TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_2d_)); | 159 TimeFormat::FORMAT_ELAPSED, TimeFormat::LENGTH_SHORT, delta_2d_)); |
| 160 | 160 |
| 161 // Test English strings (detailed, singular and plural). | 161 // Test English strings (detailed, singular and plural). |
| 162 EXPECT_EQ(ASCIIToUTF16("1 minute 2 seconds"), TimeFormat::Detailed( | 162 EXPECT_EQ(ASCIIToUTF16("1 minute and 2 seconds"), TimeFormat::Detailed( |
| 163 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_1m2s_)); | 163 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_1m2s_)); |
| 164 EXPECT_EQ(ASCIIToUTF16("2 minutes 1 second"), TimeFormat::Detailed( | 164 EXPECT_EQ(ASCIIToUTF16("2 minutes and 1 second"), TimeFormat::Detailed( |
| 165 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_2m1s_)); | 165 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_2m1s_)); |
| 166 EXPECT_EQ(ASCIIToUTF16("1 hour 2 minutes"), TimeFormat::Detailed( | 166 EXPECT_EQ(ASCIIToUTF16("1 hour and 2 minutes"), TimeFormat::Detailed( |
| 167 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_1h2m_)); | 167 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_1h2m_)); |
| 168 EXPECT_EQ(ASCIIToUTF16("2 hours 1 minute"), TimeFormat::Detailed( | 168 EXPECT_EQ(ASCIIToUTF16("2 hours and 1 minute"), TimeFormat::Detailed( |
| 169 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_2h1m_)); | 169 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_2h1m_)); |
| 170 EXPECT_EQ(ASCIIToUTF16("1 day 2 hours"), TimeFormat::Detailed( | 170 EXPECT_EQ(ASCIIToUTF16("1 day and 2 hours"), TimeFormat::Detailed( |
| 171 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_1d2h_)); | 171 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_1d2h_)); |
| 172 EXPECT_EQ(ASCIIToUTF16("2 days 1 hour"), TimeFormat::Detailed( | 172 EXPECT_EQ(ASCIIToUTF16("2 days and 1 hour"), TimeFormat::Detailed( |
| 173 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_2d1h_)); | 173 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 3, delta_2d1h_)); |
| 174 } | 174 } |
| 175 | 175 |
| 176 TimeDelta delta_0s_; | 176 TimeDelta delta_0s_; |
| 177 TimeDelta delta_1ms_; | 177 TimeDelta delta_1ms_; |
| 178 TimeDelta delta_499ms_; | 178 TimeDelta delta_499ms_; |
| 179 TimeDelta delta_500ms_; | 179 TimeDelta delta_500ms_; |
| 180 TimeDelta delta_999ms_; | 180 TimeDelta delta_999ms_; |
| 181 TimeDelta delta_1s_; | 181 TimeDelta delta_1s_; |
| 182 TimeDelta delta_1s499ms_; | 182 TimeDelta delta_1s499ms_; |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 260 EXPECT_EQ(ASCIIToUTF16("1 day"), TimeFormat::Simple( | 260 EXPECT_EQ(ASCIIToUTF16("1 day"), TimeFormat::Simple( |
| 261 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, | 261 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, |
| 262 delta_1d11h59m59s999ms_)); | 262 delta_1d11h59m59s999ms_)); |
| 263 EXPECT_EQ(ASCIIToUTF16("2 days"), TimeFormat::Simple( | 263 EXPECT_EQ(ASCIIToUTF16("2 days"), TimeFormat::Simple( |
| 264 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1d12h_)); | 264 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_SHORT, delta_1d12h_)); |
| 265 | 265 |
| 266 // Test rounding behavior (detailed). | 266 // Test rounding behavior (detailed). |
| 267 EXPECT_EQ(ASCIIToUTF16("59 seconds"), TimeFormat::Detailed( | 267 EXPECT_EQ(ASCIIToUTF16("59 seconds"), TimeFormat::Detailed( |
| 268 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 100, | 268 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 100, |
| 269 delta_59s499ms_)); | 269 delta_59s499ms_)); |
| 270 EXPECT_EQ(ASCIIToUTF16("1 minute 0 seconds"), TimeFormat::Detailed( | 270 EXPECT_EQ(ASCIIToUTF16("1 minute and 0 seconds"), TimeFormat::Detailed( |
| 271 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, | 271 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, |
| 272 delta_59s500ms_)); | 272 delta_59s500ms_)); |
| 273 EXPECT_EQ(ASCIIToUTF16("1 minute"), TimeFormat::Detailed( | 273 EXPECT_EQ(ASCIIToUTF16("1 minute"), TimeFormat::Detailed( |
| 274 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, | 274 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, |
| 275 delta_59s500ms_)); | 275 delta_59s500ms_)); |
| 276 EXPECT_EQ(ASCIIToUTF16("59 minutes 59 seconds"), TimeFormat::Detailed( | 276 EXPECT_EQ(ASCIIToUTF16("59 minutes and 59 seconds"), TimeFormat::Detailed( |
| 277 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 60, | 277 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 60, |
| 278 delta_59m59s499ms_)); | 278 delta_59m59s499ms_)); |
| 279 EXPECT_EQ(ASCIIToUTF16("1 hour 0 minutes"), TimeFormat::Detailed( | 279 EXPECT_EQ(ASCIIToUTF16("1 hour and 0 minutes"), TimeFormat::Detailed( |
| 280 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 59, | 280 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 59, |
| 281 delta_59m59s499ms_)); | 281 delta_59m59s499ms_)); |
| 282 EXPECT_EQ(ASCIIToUTF16("1 hour 0 minutes"), TimeFormat::Detailed( | 282 EXPECT_EQ(ASCIIToUTF16("1 hour and 0 minutes"), TimeFormat::Detailed( |
| 283 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, | 283 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, |
| 284 delta_59m59s499ms_)); | 284 delta_59m59s499ms_)); |
| 285 EXPECT_EQ(ASCIIToUTF16("1 hour"), TimeFormat::Detailed( | 285 EXPECT_EQ(ASCIIToUTF16("1 hour"), TimeFormat::Detailed( |
| 286 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, | 286 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, |
| 287 delta_59m59s499ms_)); | 287 delta_59m59s499ms_)); |
| 288 EXPECT_EQ(ASCIIToUTF16("1 hour"), TimeFormat::Detailed( | 288 EXPECT_EQ(ASCIIToUTF16("1 hour"), TimeFormat::Detailed( |
| 289 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, | 289 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, |
| 290 delta_59m59s500ms_)); | 290 delta_59m59s500ms_)); |
| 291 EXPECT_EQ(ASCIIToUTF16("1 hour 0 minutes"), TimeFormat::Detailed( | 291 EXPECT_EQ(ASCIIToUTF16("1 hour and 0 minutes"), TimeFormat::Detailed( |
| 292 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, | 292 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, |
| 293 delta_59m59s500ms_)); | 293 delta_59m59s500ms_)); |
| 294 EXPECT_EQ(ASCIIToUTF16("23 hours 59 minutes"), TimeFormat::Detailed( | 294 EXPECT_EQ(ASCIIToUTF16("23 hours and 59 minutes"), TimeFormat::Detailed( |
| 295 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 24, | 295 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 24, |
| 296 delta_23h59m29s999ms_)); | 296 delta_23h59m29s999ms_)); |
| 297 EXPECT_EQ(ASCIIToUTF16("1 day 0 hours"), TimeFormat::Detailed( | 297 EXPECT_EQ(ASCIIToUTF16("1 day and 0 hours"), TimeFormat::Detailed( |
| 298 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 23, | 298 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 23, |
| 299 delta_23h59m29s999ms_)); | 299 delta_23h59m29s999ms_)); |
| 300 EXPECT_EQ(ASCIIToUTF16("1 day 0 hours"), TimeFormat::Detailed( | 300 EXPECT_EQ(ASCIIToUTF16("1 day and 0 hours"), TimeFormat::Detailed( |
| 301 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, | 301 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, |
| 302 delta_23h59m29s999ms_)); | 302 delta_23h59m29s999ms_)); |
| 303 EXPECT_EQ(ASCIIToUTF16("1 day"), TimeFormat::Detailed( | 303 EXPECT_EQ(ASCIIToUTF16("1 day"), TimeFormat::Detailed( |
| 304 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, | 304 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, |
| 305 delta_23h59m29s999ms_)); | 305 delta_23h59m29s999ms_)); |
| 306 EXPECT_EQ(ASCIIToUTF16("1 day"), TimeFormat::Detailed( | 306 EXPECT_EQ(ASCIIToUTF16("1 day"), TimeFormat::Detailed( |
| 307 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, | 307 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 1, |
| 308 delta_23h59m30s_)); | 308 delta_23h59m30s_)); |
| 309 EXPECT_EQ(ASCIIToUTF16("1 day 0 hours"), TimeFormat::Detailed( | 309 EXPECT_EQ(ASCIIToUTF16("1 day and 0 hours"), TimeFormat::Detailed( |
| 310 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, | 310 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, 2, |
| 311 delta_23h59m30s_)); | 311 delta_23h59m30s_)); |
| 312 EXPECT_EQ(ASCIIToUTF16("1 day 0 hours"), TimeFormat::Detailed( | 312 EXPECT_EQ(ASCIIToUTF16("1 day and 0 hours"), TimeFormat::Detailed( |
| 313 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, -1, | 313 TimeFormat::FORMAT_DURATION, TimeFormat::LENGTH_LONG, -1, |
| 314 delta_23h59m30s_)); | 314 delta_23h59m30s_)); |
| 315 } | 315 } |
| 316 | 316 |
| 317 // Test strings in default code path. | 317 // Test strings in default code path. |
| 318 TEST_F(TimeFormatTest, SimpleAndDetailedStrings) { | 318 TEST_F(TimeFormatTest, SimpleAndDetailedStrings) { |
| 319 TestStrings(); | 319 TestStrings(); |
| 320 } | 320 } |
| 321 | 321 |
| 322 // Test strings in fallback path in case of translator error. | 322 // Test strings in fallback path in case of translator error. |
| (...skipping 20 matching lines...) Expand all Loading... |
| 343 TimeFormat::RelativeDate(two_days_ago, NULL); | 343 TimeFormat::RelativeDate(two_days_ago, NULL); |
| 344 EXPECT_TRUE(two_days_ago_str.empty()); | 344 EXPECT_TRUE(two_days_ago_str.empty()); |
| 345 | 345 |
| 346 base::Time a_week_ago = now - TimeDelta::FromDays(7); | 346 base::Time a_week_ago = now - TimeDelta::FromDays(7); |
| 347 base::string16 a_week_ago_str = TimeFormat::RelativeDate(a_week_ago, NULL); | 347 base::string16 a_week_ago_str = TimeFormat::RelativeDate(a_week_ago, NULL); |
| 348 EXPECT_TRUE(a_week_ago_str.empty()); | 348 EXPECT_TRUE(a_week_ago_str.empty()); |
| 349 } | 349 } |
| 350 | 350 |
| 351 } // namespace | 351 } // namespace |
| 352 } // namespace ui | 352 } // namespace ui |
| OLD | NEW |