Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(118)

Side by Side Diff: base/i18n/message_formatter_unittest.cc

Issue 1852433005: Convert //base to use std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase after r384946 Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/i18n/message_formatter.h ('k') | base/i18n/number_formatting.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "base/i18n/message_formatter.h" 5 #include "base/i18n/message_formatter.h"
6 6
7 #include <memory>
8
7 #include "base/i18n/rtl.h" 9 #include "base/i18n/rtl.h"
8 #include "base/memory/scoped_ptr.h"
9 #include "base/strings/string_piece.h" 10 #include "base/strings/string_piece.h"
10 #include "base/strings/string_util.h" 11 #include "base/strings/string_util.h"
11 #include "base/strings/utf_string_conversions.h" 12 #include "base/strings/utf_string_conversions.h"
12 #include "base/time/time.h" 13 #include "base/time/time.h"
13 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
14 #include "third_party/icu/source/common/unicode/unistr.h" 15 #include "third_party/icu/source/common/unicode/unistr.h"
15 #include "third_party/icu/source/i18n/unicode/datefmt.h" 16 #include "third_party/icu/source/i18n/unicode/datefmt.h"
16 #include "third_party/icu/source/i18n/unicode/msgfmt.h" 17 #include "third_party/icu/source/i18n/unicode/msgfmt.h"
17 18
18 typedef testing::Test MessageFormatterTest; 19 typedef testing::Test MessageFormatterTest;
(...skipping 10 matching lines...) Expand all
29 ~MessageFormatterTest() override { 30 ~MessageFormatterTest() override {
30 SetICUDefaultLocale(original_locale_); 31 SetICUDefaultLocale(original_locale_);
31 } 32 }
32 33
33 private: 34 private:
34 std::string original_locale_; 35 std::string original_locale_;
35 }; 36 };
36 37
37 namespace { 38 namespace {
38 39
39 void AppendFormattedDateTime(const scoped_ptr<icu::DateFormat>& df, 40 void AppendFormattedDateTime(const std::unique_ptr<icu::DateFormat>& df,
40 const Time& now, std::string* result) { 41 const Time& now,
42 std::string* result) {
41 icu::UnicodeString formatted; 43 icu::UnicodeString formatted;
42 df->format(static_cast<UDate>(now.ToJsTime()), formatted). 44 df->format(static_cast<UDate>(now.ToJsTime()), formatted).
43 toUTF8String(*result); 45 toUTF8String(*result);
44 } 46 }
45 47
46 } // namespace 48 } // namespace
47 49
48 TEST_F(MessageFormatterTest, PluralNamedArgs) { 50 TEST_F(MessageFormatterTest, PluralNamedArgs) {
49 const string16 pattern = ASCIIToUTF16( 51 const string16 pattern = ASCIIToUTF16(
50 "{num_people, plural, " 52 "{num_people, plural, "
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 } 114 }
113 115
114 TEST_F(MessageFormatterTest, PluralNumberedArgsWithDate) { 116 TEST_F(MessageFormatterTest, PluralNumberedArgsWithDate) {
115 const string16 pattern = ASCIIToUTF16( 117 const string16 pattern = ASCIIToUTF16(
116 "{1, plural, " 118 "{1, plural, "
117 "=1 {The cert for {0} expired yesterday. Today is {2,date,full}}" 119 "=1 {The cert for {0} expired yesterday. Today is {2,date,full}}"
118 "other {The cert for {0} expired # days ago. Today is {2,date,full}}}"); 120 "other {The cert for {0} expired # days ago. Today is {2,date,full}}}");
119 121
120 base::Time now = base::Time::Now(); 122 base::Time now = base::Time::Now();
121 using icu::DateFormat; 123 using icu::DateFormat;
122 scoped_ptr<DateFormat> df(DateFormat::createDateInstance(DateFormat::FULL)); 124 std::unique_ptr<DateFormat> df(
125 DateFormat::createDateInstance(DateFormat::FULL));
123 std::string second_sentence = " Today is "; 126 std::string second_sentence = " Today is ";
124 AppendFormattedDateTime(df, now, &second_sentence); 127 AppendFormattedDateTime(df, now, &second_sentence);
125 128
126 std::string result = UTF16ToASCII(MessageFormatter::FormatWithNumberedArgs( 129 std::string result = UTF16ToASCII(MessageFormatter::FormatWithNumberedArgs(
127 pattern, "example.com", 1, now)); 130 pattern, "example.com", 1, now));
128 EXPECT_EQ("The cert for example.com expired yesterday." + second_sentence, 131 EXPECT_EQ("The cert for example.com expired yesterday." + second_sentence,
129 result); 132 result);
130 result = UTF16ToASCII(MessageFormatter::FormatWithNumberedArgs( 133 result = UTF16ToASCII(MessageFormatter::FormatWithNumberedArgs(
131 pattern, "example.com", 15, now)); 134 pattern, "example.com", 15, now));
132 EXPECT_EQ("The cert for example.com expired 15 days ago." + second_sentence, 135 EXPECT_EQ("The cert for example.com expired 15 days ago." + second_sentence,
133 result); 136 result);
134 } 137 }
135 138
136 TEST_F(MessageFormatterTest, DateTimeAndNumber) { 139 TEST_F(MessageFormatterTest, DateTimeAndNumber) {
137 // Note that using 'mph' for all locales is not a good i18n practice. 140 // Note that using 'mph' for all locales is not a good i18n practice.
138 const string16 pattern = ASCIIToUTF16( 141 const string16 pattern = ASCIIToUTF16(
139 "At {0,time, short} on {0,date, medium}, " 142 "At {0,time, short} on {0,date, medium}, "
140 "there was {1} at building {2,number,integer}. " 143 "there was {1} at building {2,number,integer}. "
141 "The speed of the wind was {3,number,###.#} mph."); 144 "The speed of the wind was {3,number,###.#} mph.");
142 145
143 using icu::DateFormat; 146 using icu::DateFormat;
144 scoped_ptr<DateFormat> tf(DateFormat::createTimeInstance(DateFormat::SHORT)); 147 std::unique_ptr<DateFormat> tf(
145 scoped_ptr<DateFormat> df(DateFormat::createDateInstance(DateFormat::MEDIUM)); 148 DateFormat::createTimeInstance(DateFormat::SHORT));
149 std::unique_ptr<DateFormat> df(
150 DateFormat::createDateInstance(DateFormat::MEDIUM));
146 151
147 base::Time now = base::Time::Now(); 152 base::Time now = base::Time::Now();
148 std::string expected = "At "; 153 std::string expected = "At ";
149 AppendFormattedDateTime(tf, now, &expected); 154 AppendFormattedDateTime(tf, now, &expected);
150 expected.append(" on "); 155 expected.append(" on ");
151 AppendFormattedDateTime(df, now, &expected); 156 AppendFormattedDateTime(df, now, &expected);
152 expected.append(", there was an explosion at building 3. " 157 expected.append(", there was an explosion at building 3. "
153 "The speed of the wind was 37.4 mph."); 158 "The speed of the wind was 37.4 mph.");
154 159
155 EXPECT_EQ(expected, UTF16ToASCII(MessageFormatter::FormatWithNumberedArgs( 160 EXPECT_EQ(expected, UTF16ToASCII(MessageFormatter::FormatWithNumberedArgs(
(...skipping 15 matching lines...) Expand all
171 EXPECT_EQ("Select files to upload.", result); 176 EXPECT_EQ("Select files to upload.", result);
172 177
173 // fallback if a parameter is not selectors specified in the message pattern. 178 // fallback if a parameter is not selectors specified in the message pattern.
174 result = UTF16ToASCII(MessageFormatter::FormatWithNumberedArgs( 179 result = UTF16ToASCII(MessageFormatter::FormatWithNumberedArgs(
175 pattern, "foobar")); 180 pattern, "foobar"));
176 EXPECT_EQ("UNUSED", result); 181 EXPECT_EQ("UNUSED", result);
177 } 182 }
178 183
179 } // namespace i18n 184 } // namespace i18n
180 } // namespace base 185 } // namespace base
OLDNEW
« no previous file with comments | « base/i18n/message_formatter.h ('k') | base/i18n/number_formatting.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698