@@ -27,7 +27,7 @@ const Time::Exploded kTestDateTimeExploded = {
2727// Returns difference between the local time and GMT formatted as string.
2828// This function gets |time| because the difference depends on time,
2929// see https://en.wikipedia.org/wiki/Daylight_saving_time for details.
30- base:: string16 GetShortTimeZone (const Time& time) {
30+ string16 GetShortTimeZone (const Time& time) {
3131 UErrorCode status = U_ZERO_ERROR;
3232 std::unique_ptr<icu::TimeZone> zone (icu::TimeZone::createDefault ());
3333 std::unique_ptr<icu::TimeZoneFormat> zone_formatter (
@@ -37,7 +37,30 @@ base::string16 GetShortTimeZone(const Time& time) {
3737 zone_formatter->format (UTZFMT_STYLE_SPECIFIC_SHORT, *zone,
3838 static_cast <UDate>(time.ToDoubleT () * 1000 ),
3939 name, nullptr );
40- return base::string16 (name.getBuffer (), name.length ());
40+ return string16 (name.getBuffer (), name.length ());
41+ }
42+
43+ // Calls TimeDurationFormat() with |delta| and |width| and returns the resulting
44+ // string. On failure, adds a failed expectation and returns an empty string.
45+ string16 TimeDurationFormatString (const TimeDelta& delta,
46+ DurationFormatWidth width) {
47+ string16 str;
48+ EXPECT_TRUE (TimeDurationFormat (delta, width, &str))
49+ << " Failed to format " << delta.ToInternalValue () << " with width "
50+ << width;
51+ return str;
52+ }
53+
54+ // Calls TimeDurationFormatWithSeconds() with |delta| and |width| and returns
55+ // the resulting string. On failure, adds a failed expectation and returns an
56+ // empty string.
57+ string16 TimeDurationFormatWithSecondsString (const TimeDelta& delta,
58+ DurationFormatWidth width) {
59+ string16 str;
60+ EXPECT_TRUE (TimeDurationFormatWithSeconds (delta, width, &str))
61+ << " Failed to format " << delta.ToInternalValue () << " with width "
62+ << width;
63+ return str;
4164}
4265
4366#if defined(OS_ANDROID)
@@ -254,24 +277,24 @@ TEST(TimeFormattingTest, TimeDurationFormat) {
254277 // US English.
255278 i18n::SetICUDefaultLocale (" en_US" );
256279 EXPECT_EQ (ASCIIToUTF16 (" 15 hours, 42 minutes" ),
257- TimeDurationFormat (delta, DURATION_WIDTH_WIDE));
280+ TimeDurationFormatString (delta, DURATION_WIDTH_WIDE));
258281 EXPECT_EQ (ASCIIToUTF16 (" 15 hr, 42 min" ),
259- TimeDurationFormat (delta, DURATION_WIDTH_SHORT));
282+ TimeDurationFormatString (delta, DURATION_WIDTH_SHORT));
260283 EXPECT_EQ (ASCIIToUTF16 (" 15h 42m" ),
261- TimeDurationFormat (delta, DURATION_WIDTH_NARROW));
284+ TimeDurationFormatString (delta, DURATION_WIDTH_NARROW));
262285 EXPECT_EQ (ASCIIToUTF16 (" 15:42" ),
263- TimeDurationFormat (delta, DURATION_WIDTH_NUMERIC));
286+ TimeDurationFormatString (delta, DURATION_WIDTH_NUMERIC));
264287
265288 // Danish, with Latin alphabet but different abbreviations and punctuation.
266289 i18n::SetICUDefaultLocale (" da" );
267290 EXPECT_EQ (ASCIIToUTF16 (" 15 timer og 42 minutter" ),
268- TimeDurationFormat (delta, DURATION_WIDTH_WIDE));
291+ TimeDurationFormatString (delta, DURATION_WIDTH_WIDE));
269292 EXPECT_EQ (ASCIIToUTF16 (" 15 t og 42 min." ),
270- TimeDurationFormat (delta, DURATION_WIDTH_SHORT));
293+ TimeDurationFormatString (delta, DURATION_WIDTH_SHORT));
271294 EXPECT_EQ (ASCIIToUTF16 (" 15 t og 42 min" ),
272- TimeDurationFormat (delta, DURATION_WIDTH_NARROW));
295+ TimeDurationFormatString (delta, DURATION_WIDTH_NARROW));
273296 EXPECT_EQ (ASCIIToUTF16 (" 15.42" ),
274- TimeDurationFormat (delta, DURATION_WIDTH_NUMERIC));
297+ TimeDurationFormatString (delta, DURATION_WIDTH_NUMERIC));
275298
276299 // Persian, with non-Arabic numbers.
277300 i18n::SetICUDefaultLocale (" fa" );
@@ -285,10 +308,11 @@ TEST(TimeFormattingTest, TimeDurationFormat) {
285308 L" \x6f1\x6f5\x20\x633\x627\x639\x62a\x20\x6f4\x6f2\x20\x62f\x642\x6cc "
286309 L" \x642\x647 " );
287310 string16 fa_numeric = WideToUTF16 (L" \x6f1\x6f5\x3a\x6f4\x6f2 " );
288- EXPECT_EQ (fa_wide, TimeDurationFormat (delta, DURATION_WIDTH_WIDE));
289- EXPECT_EQ (fa_short, TimeDurationFormat (delta, DURATION_WIDTH_SHORT));
290- EXPECT_EQ (fa_narrow, TimeDurationFormat (delta, DURATION_WIDTH_NARROW));
291- EXPECT_EQ (fa_numeric, TimeDurationFormat (delta, DURATION_WIDTH_NUMERIC));
311+ EXPECT_EQ (fa_wide, TimeDurationFormatString (delta, DURATION_WIDTH_WIDE));
312+ EXPECT_EQ (fa_short, TimeDurationFormatString (delta, DURATION_WIDTH_SHORT));
313+ EXPECT_EQ (fa_narrow, TimeDurationFormatString (delta, DURATION_WIDTH_NARROW));
314+ EXPECT_EQ (fa_numeric,
315+ TimeDurationFormatString (delta, DURATION_WIDTH_NUMERIC));
292316}
293317
294318TEST (TimeFormattingTest, TimeDurationFormatWithSeconds) {
@@ -300,44 +324,44 @@ TEST(TimeFormattingTest, TimeDurationFormatWithSeconds) {
300324 // Test different formats.
301325 TimeDelta delta = TimeDelta::FromSeconds (15 * 3600 + 42 * 60 + 30 );
302326 EXPECT_EQ (ASCIIToUTF16 (" 15 hours, 42 minutes, 30 seconds" ),
303- TimeDurationFormatWithSeconds (delta, DURATION_WIDTH_WIDE));
327+ TimeDurationFormatWithSecondsString (delta, DURATION_WIDTH_WIDE));
304328 EXPECT_EQ (ASCIIToUTF16 (" 15 hr, 42 min, 30 sec" ),
305- TimeDurationFormatWithSeconds (delta, DURATION_WIDTH_SHORT));
329+ TimeDurationFormatWithSecondsString (delta, DURATION_WIDTH_SHORT));
306330 EXPECT_EQ (ASCIIToUTF16 (" 15h 42m 30s" ),
307- TimeDurationFormatWithSeconds (delta, DURATION_WIDTH_NARROW));
331+ TimeDurationFormatWithSecondsString (delta, DURATION_WIDTH_NARROW));
308332 EXPECT_EQ (ASCIIToUTF16 (" 15:42:30" ),
309- TimeDurationFormatWithSeconds (delta, DURATION_WIDTH_NUMERIC));
333+ TimeDurationFormatWithSecondsString (delta, DURATION_WIDTH_NUMERIC));
310334
311335 // Test edge case when hour >= 100.
312336 delta = TimeDelta::FromSeconds (125 * 3600 + 42 * 60 + 30 );
313337 EXPECT_EQ (ASCIIToUTF16 (" 125 hours, 42 minutes, 30 seconds" ),
314- TimeDurationFormatWithSeconds (delta, DURATION_WIDTH_WIDE));
338+ TimeDurationFormatWithSecondsString (delta, DURATION_WIDTH_WIDE));
315339 EXPECT_EQ (ASCIIToUTF16 (" 125 hr, 42 min, 30 sec" ),
316- TimeDurationFormatWithSeconds (delta, DURATION_WIDTH_SHORT));
340+ TimeDurationFormatWithSecondsString (delta, DURATION_WIDTH_SHORT));
317341 EXPECT_EQ (ASCIIToUTF16 (" 125h 42m 30s" ),
318- TimeDurationFormatWithSeconds (delta, DURATION_WIDTH_NARROW));
342+ TimeDurationFormatWithSecondsString (delta, DURATION_WIDTH_NARROW));
319343
320344 // Test edge case when minute = 0.
321345 delta = TimeDelta::FromSeconds (15 * 3600 + 0 * 60 + 30 );
322346 EXPECT_EQ (ASCIIToUTF16 (" 15 hours, 0 minutes, 30 seconds" ),
323- TimeDurationFormatWithSeconds (delta, DURATION_WIDTH_WIDE));
347+ TimeDurationFormatWithSecondsString (delta, DURATION_WIDTH_WIDE));
324348 EXPECT_EQ (ASCIIToUTF16 (" 15 hr, 0 min, 30 sec" ),
325- TimeDurationFormatWithSeconds (delta, DURATION_WIDTH_SHORT));
349+ TimeDurationFormatWithSecondsString (delta, DURATION_WIDTH_SHORT));
326350 EXPECT_EQ (ASCIIToUTF16 (" 15h 0m 30s" ),
327- TimeDurationFormatWithSeconds (delta, DURATION_WIDTH_NARROW));
351+ TimeDurationFormatWithSecondsString (delta, DURATION_WIDTH_NARROW));
328352 EXPECT_EQ (ASCIIToUTF16 (" 15:00:30" ),
329- TimeDurationFormatWithSeconds (delta, DURATION_WIDTH_NUMERIC));
353+ TimeDurationFormatWithSecondsString (delta, DURATION_WIDTH_NUMERIC));
330354
331355 // Test edge case when second = 0.
332356 delta = TimeDelta::FromSeconds (15 * 3600 + 42 * 60 + 0 );
333357 EXPECT_EQ (ASCIIToUTF16 (" 15 hours, 42 minutes, 0 seconds" ),
334- TimeDurationFormatWithSeconds (delta, DURATION_WIDTH_WIDE));
358+ TimeDurationFormatWithSecondsString (delta, DURATION_WIDTH_WIDE));
335359 EXPECT_EQ (ASCIIToUTF16 (" 15 hr, 42 min, 0 sec" ),
336- TimeDurationFormatWithSeconds (delta, DURATION_WIDTH_SHORT));
360+ TimeDurationFormatWithSecondsString (delta, DURATION_WIDTH_SHORT));
337361 EXPECT_EQ (ASCIIToUTF16 (" 15h 42m 0s" ),
338- TimeDurationFormatWithSeconds (delta, DURATION_WIDTH_NARROW));
362+ TimeDurationFormatWithSecondsString (delta, DURATION_WIDTH_NARROW));
339363 EXPECT_EQ (ASCIIToUTF16 (" 15:42:00" ),
340- TimeDurationFormatWithSeconds (delta, DURATION_WIDTH_NUMERIC));
364+ TimeDurationFormatWithSecondsString (delta, DURATION_WIDTH_NUMERIC));
341365}
342366
343367TEST (TimeFormattingTest, TimeIntervalFormat) {
0 commit comments