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.
5 // This whole test runs as a separate browser_test because it depends on a
6 // static initialization inside third_party/icu (gDecimal in digitlst.cpp).
8 // That initialization depends on the current locale, and on certain locales
9 // will lead to wrong behavior. To make sure that the locale is set before
10 // icu is used, and that the "wrong" static value doesn't affect other tests,
11 // this test is executed on its own process.
13 #include "base/strings/string16.h"
14 #include "base/strings/utf_string_conversions.h"
15 #include "base/test/scoped_locale.h"
16 #include "chrome/test/base/in_process_browser_test.h"
17 #include "ui/base/l10n/time_format.h"
19 using base::TimeDelta
;
21 class TimeFormatBrowserTest
: public InProcessBrowserTest
{
23 TimeFormatBrowserTest() : scoped_locale_("fr_FR.utf-8") {
27 base::ScopedLocale scoped_locale_
;
30 IN_PROC_BROWSER_TEST_F(TimeFormatBrowserTest
, DecimalPointNotDot
) {
31 // Some locales use a comma ',' instead of a dot '.' as the separator for
32 // decimal digits. The icu library wasn't handling this, leading to "1"
33 // being internally converted to "+1,0e00" and ultimately leading to "NaN".
34 // This showed up on the browser on estimated download time, for example.
35 // http://crbug.com/60476
38 ui::TimeFormat::TimeRemainingShort(TimeDelta::FromMinutes(1));
39 EXPECT_EQ(ASCIIToUTF16("1 min"), one_min
);