Add ICU message format support
[chromium-blink-merge.git] / chrome / common / time_format_browsertest.cc
blob0a110aacafc801533068b2ecfc7556dd8a620cac
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).
7 //
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 {
22 public:
23 TimeFormatBrowserTest() : scoped_locale_("fr_FR.utf-8") {
26 private:
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
37 base::string16 one_min =
38 ui::TimeFormat::Simple(ui::TimeFormat::FORMAT_DURATION,
39 ui::TimeFormat::LENGTH_SHORT,
40 TimeDelta::FromMinutes(1));
41 EXPECT_EQ(base::ASCIIToUTF16("1 min"), one_min);