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

Side by Side Diff: third_party/WebKit/Source/modules/payments/PaymentsValidatorsTest.cpp

Issue 2967013002: Be explicit about namespace testing to not mix it with blink::testing (Closed)
Patch Set: Dropped mojo parts that need another review. Created 3 years, 5 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "modules/payments/PaymentsValidators.h" 5 #include "modules/payments/PaymentsValidators.h"
6 6
7 #include <ostream> // NOLINT 7 #include <ostream> // NOLINT
8 #include "platform/wtf/text/WTFString.h" 8 #include "platform/wtf/text/WTFString.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
11 namespace blink { 11 namespace blink {
12 namespace { 12 namespace {
13 13
14 struct CurrencyCodeTestCase { 14 struct CurrencyCodeTestCase {
15 CurrencyCodeTestCase(const char* code, 15 CurrencyCodeTestCase(const char* code,
16 const char* system, 16 const char* system,
17 bool expected_valid) 17 bool expected_valid)
18 : code(code), system(system), expected_valid(expected_valid) {} 18 : code(code), system(system), expected_valid(expected_valid) {}
19 ~CurrencyCodeTestCase() {} 19 ~CurrencyCodeTestCase() {}
20 20
21 const char* code; 21 const char* code;
22 const char* system; 22 const char* system;
23 bool expected_valid; 23 bool expected_valid;
24 }; 24 };
25 25
26 class PaymentsCurrencyValidatorTest 26 class PaymentsCurrencyValidatorTest
27 : public testing::TestWithParam<CurrencyCodeTestCase> {}; 27 : public ::testing::TestWithParam<CurrencyCodeTestCase> {};
28 28
29 const char* LongString2048() { 29 const char* LongString2048() {
30 static char long_string[2049]; 30 static char long_string[2049];
31 for (int i = 0; i < 2048; i++) 31 for (int i = 0; i < 2048; i++)
32 long_string[i] = 'a'; 32 long_string[i] = 'a';
33 long_string[2048] = '\0'; 33 long_string[2048] = '\0';
34 return long_string; 34 return long_string;
35 } 35 }
36 36
37 const char* LongString2049() { 37 const char* LongString2049() {
(...skipping 14 matching lines...) Expand all
52 << error_message; 52 << error_message;
53 53
54 EXPECT_EQ(GetParam().expected_valid, 54 EXPECT_EQ(GetParam().expected_valid,
55 PaymentsValidators::IsValidCurrencyCodeFormat( 55 PaymentsValidators::IsValidCurrencyCodeFormat(
56 GetParam().code, GetParam().system, nullptr)); 56 GetParam().code, GetParam().system, nullptr));
57 } 57 }
58 58
59 INSTANTIATE_TEST_CASE_P( 59 INSTANTIATE_TEST_CASE_P(
60 CurrencyCodes, 60 CurrencyCodes,
61 PaymentsCurrencyValidatorTest, 61 PaymentsCurrencyValidatorTest,
62 testing::Values( 62 ::testing::Values(
63 // The most common identifiers are three-letter alphabetic codes as 63 // The most common identifiers are three-letter alphabetic codes as
64 // defined by [ISO4217] (for example, "USD" for US Dollars). 64 // defined by [ISO4217] (for example, "USD" for US Dollars).
65 // |system| is a URL that indicates the currency system that the 65 // |system| is a URL that indicates the currency system that the
66 // currency identifier belongs to. By default, 66 // currency identifier belongs to. By default,
67 // the value is urn:iso:std:iso:4217 indicating that currency is defined 67 // the value is urn:iso:std:iso:4217 indicating that currency is defined
68 // by [[ISO4217]], however any string of at most 2048 68 // by [[ISO4217]], however any string of at most 2048
69 // characters is considered valid in other currencySystem. Returns false 69 // characters is considered valid in other currencySystem. Returns false
70 // if currency |code| is too long (greater than 2048). 70 // if currency |code| is too long (greater than 2048).
71 CurrencyCodeTestCase("USD", "urn:iso:std:iso:4217", true), 71 CurrencyCodeTestCase("USD", "urn:iso:std:iso:4217", true),
72 CurrencyCodeTestCase("US1", "http://www.example.com", true), 72 CurrencyCodeTestCase("US1", "http://www.example.com", true),
(...skipping 22 matching lines...) Expand all
95 const char* input; 95 const char* input;
96 bool expected_valid; 96 bool expected_valid;
97 }; 97 };
98 98
99 std::ostream& operator<<(std::ostream& out, const TestCase& test_case) { 99 std::ostream& operator<<(std::ostream& out, const TestCase& test_case) {
100 out << "'" << test_case.input << "' is expected to be " 100 out << "'" << test_case.input << "' is expected to be "
101 << (test_case.expected_valid ? "valid" : "invalid"); 101 << (test_case.expected_valid ? "valid" : "invalid");
102 return out; 102 return out;
103 } 103 }
104 104
105 class PaymentsAmountValidatorTest : public testing::TestWithParam<TestCase> {}; 105 class PaymentsAmountValidatorTest : public ::testing::TestWithParam<TestCase> {
106 };
106 107
107 TEST_P(PaymentsAmountValidatorTest, IsValidAmountFormat) { 108 TEST_P(PaymentsAmountValidatorTest, IsValidAmountFormat) {
108 String error_message; 109 String error_message;
109 EXPECT_EQ(GetParam().expected_valid, 110 EXPECT_EQ(GetParam().expected_valid,
110 PaymentsValidators::IsValidAmountFormat( 111 PaymentsValidators::IsValidAmountFormat(
111 GetParam().input, "test value", &error_message)) 112 GetParam().input, "test value", &error_message))
112 << error_message; 113 << error_message;
113 EXPECT_EQ(GetParam().expected_valid, error_message.IsEmpty()) 114 EXPECT_EQ(GetParam().expected_valid, error_message.IsEmpty())
114 << error_message; 115 << error_message;
115 116
116 EXPECT_EQ(GetParam().expected_valid, 117 EXPECT_EQ(GetParam().expected_valid,
117 PaymentsValidators::IsValidAmountFormat(GetParam().input, 118 PaymentsValidators::IsValidAmountFormat(GetParam().input,
118 "test value", nullptr)); 119 "test value", nullptr));
119 } 120 }
120 121
121 INSTANTIATE_TEST_CASE_P( 122 INSTANTIATE_TEST_CASE_P(
122 Amounts, 123 Amounts,
123 PaymentsAmountValidatorTest, 124 PaymentsAmountValidatorTest,
124 testing::Values(TestCase("0", true), 125 ::testing::Values(TestCase("0", true),
125 TestCase("-0", true), 126 TestCase("-0", true),
126 TestCase("1", true), 127 TestCase("1", true),
127 TestCase("10", true), 128 TestCase("10", true),
128 TestCase("-3", true), 129 TestCase("-3", true),
129 TestCase("10.99", true), 130 TestCase("10.99", true),
130 TestCase("-3.00", true), 131 TestCase("-3.00", true),
131 TestCase("01234567890123456789.0123456789", true), 132 TestCase("01234567890123456789.0123456789", true),
132 TestCase("01234567890123456789012345678.9", true), 133 TestCase("01234567890123456789012345678.9", true),
133 TestCase("012345678901234567890123456789", true), 134 TestCase("012345678901234567890123456789", true),
134 TestCase("-01234567890123456789.0123456789", true), 135 TestCase("-01234567890123456789.0123456789", true),
135 TestCase("-01234567890123456789012345678.9", true), 136 TestCase("-01234567890123456789012345678.9", true),
136 TestCase("-012345678901234567890123456789", true), 137 TestCase("-012345678901234567890123456789", true),
137 // Invalid amount formats 138 // Invalid amount formats
138 TestCase("", false), 139 TestCase("", false),
139 TestCase("-", false), 140 TestCase("-", false),
140 TestCase("notdigits", false), 141 TestCase("notdigits", false),
141 TestCase("ALSONOTDIGITS", false), 142 TestCase("ALSONOTDIGITS", false),
142 TestCase("10.", false), 143 TestCase("10.", false),
143 TestCase(".99", false), 144 TestCase(".99", false),
144 TestCase("-10.", false), 145 TestCase("-10.", false),
145 TestCase("-.99", false), 146 TestCase("-.99", false),
146 TestCase("10-", false), 147 TestCase("10-", false),
147 TestCase("1-0", false), 148 TestCase("1-0", false),
148 TestCase("1.0.0", false), 149 TestCase("1.0.0", false),
149 TestCase("1/3", false))); 150 TestCase("1/3", false)));
150 151
151 class PaymentsRegionValidatorTest : public testing::TestWithParam<TestCase> {}; 152 class PaymentsRegionValidatorTest : public ::testing::TestWithParam<TestCase> {
153 };
152 154
153 TEST_P(PaymentsRegionValidatorTest, IsValidCountryCodeFormat) { 155 TEST_P(PaymentsRegionValidatorTest, IsValidCountryCodeFormat) {
154 String error_message; 156 String error_message;
155 EXPECT_EQ(GetParam().expected_valid, 157 EXPECT_EQ(GetParam().expected_valid,
156 PaymentsValidators::IsValidCountryCodeFormat(GetParam().input, 158 PaymentsValidators::IsValidCountryCodeFormat(GetParam().input,
157 &error_message)) 159 &error_message))
158 << error_message; 160 << error_message;
159 EXPECT_EQ(GetParam().expected_valid, error_message.IsEmpty()) 161 EXPECT_EQ(GetParam().expected_valid, error_message.IsEmpty())
160 << error_message; 162 << error_message;
161 163
162 EXPECT_EQ( 164 EXPECT_EQ(
163 GetParam().expected_valid, 165 GetParam().expected_valid,
164 PaymentsValidators::IsValidCountryCodeFormat(GetParam().input, nullptr)); 166 PaymentsValidators::IsValidCountryCodeFormat(GetParam().input, nullptr));
165 } 167 }
166 168
167 INSTANTIATE_TEST_CASE_P(CountryCodes, 169 INSTANTIATE_TEST_CASE_P(CountryCodes,
168 PaymentsRegionValidatorTest, 170 PaymentsRegionValidatorTest,
169 testing::Values(TestCase("US", true), 171 ::testing::Values(TestCase("US", true),
170 // Invalid country code formats 172 // Invalid country code formats
171 TestCase("U1", false), 173 TestCase("U1", false),
172 TestCase("U", false), 174 TestCase("U", false),
173 TestCase("us", false), 175 TestCase("us", false),
174 TestCase("USA", false), 176 TestCase("USA", false),
175 TestCase("", false))); 177 TestCase("", false)));
176 178
177 class PaymentsLanguageValidatorTest : public testing::TestWithParam<TestCase> { 179 class PaymentsLanguageValidatorTest
178 }; 180 : public ::testing::TestWithParam<TestCase> {};
179 181
180 TEST_P(PaymentsLanguageValidatorTest, IsValidLanguageCodeFormat) { 182 TEST_P(PaymentsLanguageValidatorTest, IsValidLanguageCodeFormat) {
181 String error_message; 183 String error_message;
182 EXPECT_EQ(GetParam().expected_valid, 184 EXPECT_EQ(GetParam().expected_valid,
183 PaymentsValidators::IsValidLanguageCodeFormat(GetParam().input, 185 PaymentsValidators::IsValidLanguageCodeFormat(GetParam().input,
184 &error_message)) 186 &error_message))
185 << error_message; 187 << error_message;
186 EXPECT_EQ(GetParam().expected_valid, error_message.IsEmpty()) 188 EXPECT_EQ(GetParam().expected_valid, error_message.IsEmpty())
187 << error_message; 189 << error_message;
188 190
189 EXPECT_EQ( 191 EXPECT_EQ(
190 GetParam().expected_valid, 192 GetParam().expected_valid,
191 PaymentsValidators::IsValidLanguageCodeFormat(GetParam().input, nullptr)); 193 PaymentsValidators::IsValidLanguageCodeFormat(GetParam().input, nullptr));
192 } 194 }
193 195
194 INSTANTIATE_TEST_CASE_P(LanguageCodes, 196 INSTANTIATE_TEST_CASE_P(LanguageCodes,
195 PaymentsLanguageValidatorTest, 197 PaymentsLanguageValidatorTest,
196 testing::Values(TestCase("", true), 198 ::testing::Values(TestCase("", true),
197 TestCase("en", true), 199 TestCase("en", true),
198 TestCase("eng", true), 200 TestCase("eng", true),
199 // Invalid language code formats 201 // Invalid language code formats
200 TestCase("e1", false), 202 TestCase("e1", false),
201 TestCase("en1", false), 203 TestCase("en1", false),
202 TestCase("e", false), 204 TestCase("e", false),
203 TestCase("engl", false), 205 TestCase("engl", false),
204 TestCase("EN", false))); 206 TestCase("EN", false)));
205 207
206 class PaymentsScriptValidatorTest : public testing::TestWithParam<TestCase> {}; 208 class PaymentsScriptValidatorTest : public ::testing::TestWithParam<TestCase> {
209 };
207 210
208 TEST_P(PaymentsScriptValidatorTest, IsValidScriptCodeFormat) { 211 TEST_P(PaymentsScriptValidatorTest, IsValidScriptCodeFormat) {
209 String error_message; 212 String error_message;
210 EXPECT_EQ(GetParam().expected_valid, 213 EXPECT_EQ(GetParam().expected_valid,
211 PaymentsValidators::IsValidScriptCodeFormat(GetParam().input, 214 PaymentsValidators::IsValidScriptCodeFormat(GetParam().input,
212 &error_message)) 215 &error_message))
213 << error_message; 216 << error_message;
214 EXPECT_EQ(GetParam().expected_valid, error_message.IsEmpty()) 217 EXPECT_EQ(GetParam().expected_valid, error_message.IsEmpty())
215 << error_message; 218 << error_message;
216 219
217 EXPECT_EQ( 220 EXPECT_EQ(
218 GetParam().expected_valid, 221 GetParam().expected_valid,
219 PaymentsValidators::IsValidScriptCodeFormat(GetParam().input, nullptr)); 222 PaymentsValidators::IsValidScriptCodeFormat(GetParam().input, nullptr));
220 } 223 }
221 224
222 INSTANTIATE_TEST_CASE_P(ScriptCodes, 225 INSTANTIATE_TEST_CASE_P(ScriptCodes,
223 PaymentsScriptValidatorTest, 226 PaymentsScriptValidatorTest,
224 testing::Values(TestCase("", true), 227 ::testing::Values(TestCase("", true),
225 TestCase("Latn", true), 228 TestCase("Latn", true),
226 // Invalid script code formats 229 // Invalid script code formats
227 TestCase("Lat1", false), 230 TestCase("Lat1", false),
228 TestCase("1lat", false), 231 TestCase("1lat", false),
229 TestCase("Latin", false), 232 TestCase("Latin", false),
230 TestCase("Lat", false), 233 TestCase("Lat", false),
231 TestCase("latn", false), 234 TestCase("latn", false),
232 TestCase("LATN", false))); 235 TestCase("LATN", false)));
233 236
234 struct ShippingAddressTestCase { 237 struct ShippingAddressTestCase {
235 ShippingAddressTestCase(const char* country_code, 238 ShippingAddressTestCase(const char* country_code,
236 const char* language_code, 239 const char* language_code,
237 const char* script_code, 240 const char* script_code,
238 bool expected_valid) 241 bool expected_valid)
239 : country_code(country_code), 242 : country_code(country_code),
240 language_code(language_code), 243 language_code(language_code),
241 script_code(script_code), 244 script_code(script_code),
242 expected_valid(expected_valid) {} 245 expected_valid(expected_valid) {}
243 ~ShippingAddressTestCase() {} 246 ~ShippingAddressTestCase() {}
244 247
245 const char* country_code; 248 const char* country_code;
246 const char* language_code; 249 const char* language_code;
247 const char* script_code; 250 const char* script_code;
248 bool expected_valid; 251 bool expected_valid;
249 }; 252 };
250 253
251 class PaymentsShippingAddressValidatorTest 254 class PaymentsShippingAddressValidatorTest
252 : public testing::TestWithParam<ShippingAddressTestCase> {}; 255 : public ::testing::TestWithParam<ShippingAddressTestCase> {};
253 256
254 TEST_P(PaymentsShippingAddressValidatorTest, IsValidShippingAddress) { 257 TEST_P(PaymentsShippingAddressValidatorTest, IsValidShippingAddress) {
255 payments::mojom::blink::PaymentAddressPtr address = 258 payments::mojom::blink::PaymentAddressPtr address =
256 payments::mojom::blink::PaymentAddress::New(); 259 payments::mojom::blink::PaymentAddress::New();
257 address->country = GetParam().country_code; 260 address->country = GetParam().country_code;
258 address->language_code = GetParam().language_code; 261 address->language_code = GetParam().language_code;
259 address->script_code = GetParam().script_code; 262 address->script_code = GetParam().script_code;
260 263
261 String error_message; 264 String error_message;
262 EXPECT_EQ(GetParam().expected_valid, 265 EXPECT_EQ(GetParam().expected_valid,
263 PaymentsValidators::IsValidShippingAddress(address, &error_message)) 266 PaymentsValidators::IsValidShippingAddress(address, &error_message))
264 << error_message; 267 << error_message;
265 EXPECT_EQ(GetParam().expected_valid, error_message.IsEmpty()) 268 EXPECT_EQ(GetParam().expected_valid, error_message.IsEmpty())
266 << error_message; 269 << error_message;
267 270
268 EXPECT_EQ(GetParam().expected_valid, 271 EXPECT_EQ(GetParam().expected_valid,
269 PaymentsValidators::IsValidShippingAddress(address, nullptr)); 272 PaymentsValidators::IsValidShippingAddress(address, nullptr));
270 } 273 }
271 274
272 INSTANTIATE_TEST_CASE_P( 275 INSTANTIATE_TEST_CASE_P(
273 ShippingAddresses, 276 ShippingAddresses,
274 PaymentsShippingAddressValidatorTest, 277 PaymentsShippingAddressValidatorTest,
275 testing::Values( 278 ::testing::Values(
276 ShippingAddressTestCase("US", "en", "Latn", true), 279 ShippingAddressTestCase("US", "en", "Latn", true),
277 ShippingAddressTestCase("US", "en", "", true), 280 ShippingAddressTestCase("US", "en", "", true),
278 ShippingAddressTestCase("US", "", "", true), 281 ShippingAddressTestCase("US", "", "", true),
279 // Invalid shipping addresses 282 // Invalid shipping addresses
280 ShippingAddressTestCase("", "", "", false), 283 ShippingAddressTestCase("", "", "", false),
281 ShippingAddressTestCase("InvalidCountryCode", "", "", false), 284 ShippingAddressTestCase("InvalidCountryCode", "", "", false),
282 ShippingAddressTestCase("US", "InvalidLanguageCode", "", false), 285 ShippingAddressTestCase("US", "InvalidLanguageCode", "", false),
283 ShippingAddressTestCase("US", "en", "InvalidScriptCode", false), 286 ShippingAddressTestCase("US", "en", "InvalidScriptCode", false),
284 ShippingAddressTestCase("US", "", "Latn", false))); 287 ShippingAddressTestCase("US", "", "Latn", false)));
285 288
286 } // namespace 289 } // namespace
287 } // namespace blink 290 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698