OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "components/autofill/content/browser/wallet/wallet_test_util.h" | 5 #include "components/autofill/content/browser/wallet/wallet_test_util.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
11 #include "base/strings/string_number_conversions.h" | 11 #include "base/strings/string_number_conversions.h" |
12 #include "base/strings/utf_string_conversions.h" | 12 #include "base/strings/utf_string_conversions.h" |
13 #include "base/values.h" | 13 #include "base/values.h" |
14 #include "components/autofill/content/browser/wallet/full_wallet.h" | 14 #include "components/autofill/content/browser/wallet/full_wallet.h" |
15 #include "components/autofill/content/browser/wallet/gaia_account.h" | |
16 #include "components/autofill/content/browser/wallet/instrument.h" | |
17 #include "components/autofill/content/browser/wallet/required_action.h" | |
18 #include "components/autofill/content/browser/wallet/wallet_address.h" | 15 #include "components/autofill/content/browser/wallet/wallet_address.h" |
19 | 16 |
20 using base::ASCIIToUTF16; | 17 using base::ASCIIToUTF16; |
21 | 18 |
22 namespace autofill { | 19 namespace autofill { |
23 namespace wallet { | 20 namespace wallet { |
24 | 21 |
25 namespace { | 22 namespace { |
26 | 23 |
27 int FutureYear() { | 24 int FutureYear() { |
28 // "In the Year 3000." - Richie "LaBamba" Rosenberg | 25 // "In the Year 3000." - Richie "LaBamba" Rosenberg |
29 return 3000; | 26 return 3000; |
30 } | 27 } |
31 | 28 |
32 } // namespace | 29 } // namespace |
33 | 30 |
34 scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentWithDetails( | |
35 const std::string& id, | |
36 scoped_ptr<Address> address, | |
37 WalletItems::MaskedInstrument::Type type, | |
38 WalletItems::MaskedInstrument::Status status) { | |
39 return make_scoped_ptr( | |
40 new WalletItems::MaskedInstrument(ASCIIToUTF16("descriptive_name"), | |
41 type, | |
42 ASCIIToUTF16("1111"), | |
43 12, | |
44 FutureYear(), | |
45 address.Pass(), | |
46 status, | |
47 id)); | |
48 } | |
49 | |
50 scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentWithId( | |
51 const std::string& id) { | |
52 return GetTestMaskedInstrumentWithDetails( | |
53 id, | |
54 GetTestAddress(), | |
55 WalletItems::MaskedInstrument::VISA, | |
56 WalletItems::MaskedInstrument::VALID); | |
57 } | |
58 | |
59 scoped_ptr<WalletItems::MaskedInstrument> | |
60 GetTestMaskedInstrumentWithIdAndAddress( | |
61 const std::string& id, scoped_ptr<Address> address) { | |
62 return GetTestMaskedInstrumentWithDetails( | |
63 id, | |
64 address.Pass(), | |
65 WalletItems::MaskedInstrument::VISA, | |
66 WalletItems::MaskedInstrument::VALID); | |
67 } | |
68 | |
69 scoped_ptr<GaiaAccount> GetTestGaiaAccount() { | |
70 return GaiaAccount::CreateForTesting("user@chromium.org", | |
71 "obfuscated_id", | |
72 0, | |
73 true); | |
74 } | |
75 | |
76 std::vector<base::string16> StreetAddress(const std::string& line1, | 31 std::vector<base::string16> StreetAddress(const std::string& line1, |
77 const std::string& line2) { | 32 const std::string& line2) { |
78 std::vector<base::string16> street_address; | 33 std::vector<base::string16> street_address; |
79 street_address.push_back(ASCIIToUTF16(line1)); | 34 street_address.push_back(ASCIIToUTF16(line1)); |
80 street_address.push_back(ASCIIToUTF16(line2)); | 35 street_address.push_back(ASCIIToUTF16(line2)); |
81 return street_address; | 36 return street_address; |
82 } | 37 } |
83 | 38 |
84 scoped_ptr<Address> GetTestAddress() { | 39 scoped_ptr<Address> GetTestAddress() { |
85 return make_scoped_ptr( | 40 return make_scoped_ptr( |
(...skipping 10 matching lines...) Expand all Loading... |
96 "language_code")); | 51 "language_code")); |
97 } | 52 } |
98 | 53 |
99 scoped_ptr<Address> GetTestMinimalAddress() { | 54 scoped_ptr<Address> GetTestMinimalAddress() { |
100 scoped_ptr<Address> address = GetTestAddress(); | 55 scoped_ptr<Address> address = GetTestAddress(); |
101 address->set_is_complete_address(false); | 56 address->set_is_complete_address(false); |
102 return address.Pass(); | 57 return address.Pass(); |
103 } | 58 } |
104 | 59 |
105 scoped_ptr<FullWallet> GetTestFullWallet() { | 60 scoped_ptr<FullWallet> GetTestFullWallet() { |
106 return GetTestFullWalletWithRequiredActions(std::vector<RequiredAction>()); | 61 scoped_ptr<FullWallet> wallet(new FullWallet(FutureYear(), 12, "528512", |
107 } | 62 "5ec4feecf9d6", GetTestAddress(), |
108 | 63 GetTestShippingAddress())); |
109 scoped_ptr<FullWallet> GetTestFullWalletWithRequiredActions( | |
110 const std::vector<RequiredAction>& actions) { | |
111 scoped_ptr<FullWallet> wallet(new FullWallet(FutureYear(), | |
112 12, | |
113 "528512", | |
114 "5ec4feecf9d6", | |
115 GetTestAddress(), | |
116 GetTestShippingAddress(), | |
117 actions)); | |
118 std::vector<uint8> one_time_pad; | 64 std::vector<uint8> one_time_pad; |
119 base::HexStringToBytes("5F04A8704183", &one_time_pad); | 65 base::HexStringToBytes("5F04A8704183", &one_time_pad); |
120 wallet->set_one_time_pad(one_time_pad); | 66 wallet->set_one_time_pad(one_time_pad); |
121 return wallet.Pass(); | 67 return wallet.Pass(); |
122 } | 68 } |
123 | 69 |
124 scoped_ptr<FullWallet> GetTestFullWalletInstrumentOnly() { | 70 scoped_ptr<FullWallet> GetTestFullWalletInstrumentOnly() { |
125 scoped_ptr<FullWallet> wallet(new FullWallet(FutureYear(), | 71 scoped_ptr<FullWallet> wallet(new FullWallet(FutureYear(), 12, "528512", |
126 12, | 72 "5ec4feecf9d6", GetTestAddress(), |
127 "528512", | 73 scoped_ptr<Address>())); |
128 "5ec4feecf9d6", | |
129 GetTestAddress(), | |
130 scoped_ptr<Address>(), | |
131 std::vector<RequiredAction>())); | |
132 std::vector<uint8> one_time_pad; | 74 std::vector<uint8> one_time_pad; |
133 base::HexStringToBytes("5F04A8704183", &one_time_pad); | 75 base::HexStringToBytes("5F04A8704183", &one_time_pad); |
134 wallet->set_one_time_pad(one_time_pad); | 76 wallet->set_one_time_pad(one_time_pad); |
135 return wallet.Pass(); | 77 return wallet.Pass(); |
136 } | 78 } |
137 | 79 |
138 scoped_ptr<Instrument> GetTestInstrument() { | |
139 return make_scoped_ptr(new Instrument(ASCIIToUTF16("4444444444444448"), | |
140 ASCIIToUTF16("123"), | |
141 12, | |
142 FutureYear(), | |
143 Instrument::VISA, | |
144 GetTestAddress())); | |
145 } | |
146 | |
147 scoped_ptr<Instrument> GetTestAddressUpgradeInstrument() { | |
148 return make_scoped_ptr(new Instrument(base::string16(), | |
149 base::string16(), | |
150 12, | |
151 FutureYear(), | |
152 Instrument::UNKNOWN, | |
153 GetTestAddress())); | |
154 } | |
155 | |
156 scoped_ptr<Instrument> GetTestExpirationDateChangeInstrument() { | |
157 return make_scoped_ptr(new Instrument(base::string16(), | |
158 ASCIIToUTF16("123"), | |
159 12, | |
160 FutureYear() + 1, | |
161 Instrument::UNKNOWN, | |
162 scoped_ptr<Address>())); | |
163 } | |
164 | |
165 scoped_ptr<Instrument> GetTestAddressNameChangeInstrument() { | |
166 return make_scoped_ptr(new Instrument(base::string16(), | |
167 ASCIIToUTF16("123"), | |
168 12, | |
169 FutureYear(), | |
170 Instrument::UNKNOWN, | |
171 GetTestAddress())); | |
172 } | |
173 | |
174 scoped_ptr<WalletItems::LegalDocument> GetTestLegalDocument() { | |
175 base::DictionaryValue dict; | |
176 dict.SetString("legal_document_id", "document_id"); | |
177 dict.SetString("url", "https://example.com"); | |
178 dict.SetString("display_name", "display_name"); | |
179 return wallet::WalletItems::LegalDocument::CreateLegalDocument(dict); | |
180 } | |
181 | |
182 scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrument() { | |
183 return GetTestMaskedInstrumentWithId("default_instrument_id"); | |
184 } | |
185 | |
186 scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentExpired() { | |
187 return GetTestMaskedInstrumentWithDetails( | |
188 "default_instrument_id", | |
189 GetTestAddress(), | |
190 WalletItems::MaskedInstrument::VISA, | |
191 WalletItems::MaskedInstrument::EXPIRED); | |
192 } | |
193 | |
194 scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentInvalid() { | |
195 return GetTestMaskedInstrumentWithDetails( | |
196 "default_instrument_id", | |
197 GetTestAddress(), | |
198 WalletItems::MaskedInstrument::VISA, | |
199 WalletItems::MaskedInstrument::DECLINED); | |
200 } | |
201 | |
202 scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentAmex( | |
203 AmexPermission amex_permission) { | |
204 return GetTestMaskedInstrumentWithDetails( | |
205 "default_instrument_id", | |
206 GetTestAddress(), | |
207 WalletItems::MaskedInstrument::AMEX, | |
208 amex_permission == AMEX_ALLOWED ? | |
209 WalletItems::MaskedInstrument::VALID : | |
210 WalletItems::MaskedInstrument::AMEX_NOT_SUPPORTED); | |
211 } | |
212 | |
213 scoped_ptr<WalletItems::MaskedInstrument> GetTestNonDefaultMaskedInstrument() { | |
214 return GetTestMaskedInstrumentWithId("instrument_id"); | |
215 } | |
216 | |
217 scoped_ptr<Address> GetTestSaveableAddress() { | 80 scoped_ptr<Address> GetTestSaveableAddress() { |
218 return make_scoped_ptr( | 81 return make_scoped_ptr( |
219 new Address("US", | 82 new Address("US", |
220 ASCIIToUTF16("save_recipient_name"), | 83 ASCIIToUTF16("save_recipient_name"), |
221 StreetAddress("save_address_line_1", "save_address_line_2"), | 84 StreetAddress("save_address_line_1", "save_address_line_2"), |
222 ASCIIToUTF16("save_locality_name"), | 85 ASCIIToUTF16("save_locality_name"), |
223 ASCIIToUTF16("save_dependent_locality_name"), | 86 ASCIIToUTF16("save_dependent_locality_name"), |
224 ASCIIToUTF16("save_admin_area_name"), | 87 ASCIIToUTF16("save_admin_area_name"), |
225 ASCIIToUTF16("save_postal_code_number"), | 88 ASCIIToUTF16("save_postal_code_number"), |
226 ASCIIToUTF16("save_sorting_code"), | 89 ASCIIToUTF16("save_sorting_code"), |
(...skipping 16 matching lines...) Expand all Loading... |
243 "default_address_id", | 106 "default_address_id", |
244 "ship_language_code")); | 107 "ship_language_code")); |
245 } | 108 } |
246 | 109 |
247 scoped_ptr<Address> GetTestNonDefaultShippingAddress() { | 110 scoped_ptr<Address> GetTestNonDefaultShippingAddress() { |
248 scoped_ptr<Address> address = GetTestShippingAddress(); | 111 scoped_ptr<Address> address = GetTestShippingAddress(); |
249 address->set_object_id("address_id"); | 112 address->set_object_id("address_id"); |
250 return address.Pass(); | 113 return address.Pass(); |
251 } | 114 } |
252 | 115 |
253 scoped_ptr<WalletItems> GetTestWalletItemsWithDetails( | |
254 const std::vector<RequiredAction>& required_actions, | |
255 const std::string& default_instrument_id, | |
256 const std::string& default_address_id, | |
257 AmexPermission amex_permission) { | |
258 return make_scoped_ptr(new wallet::WalletItems(required_actions, | |
259 "google_transaction_id", | |
260 default_instrument_id, | |
261 default_address_id, | |
262 amex_permission)); | |
263 } | |
264 | |
265 scoped_ptr<WalletItems> GetTestWalletItemsWithRequiredAction( | |
266 RequiredAction action) { | |
267 std::vector<RequiredAction> required_actions(1, action); | |
268 scoped_ptr<WalletItems> items = | |
269 GetTestWalletItemsWithDetails(required_actions, | |
270 "default_instrument_id", | |
271 "default_address_id", | |
272 AMEX_ALLOWED); | |
273 | |
274 if (action != GAIA_AUTH) | |
275 items->AddAccount(GetTestGaiaAccount()); | |
276 | |
277 return items.Pass(); | |
278 } | |
279 | |
280 scoped_ptr<WalletItems> GetTestWalletItems(AmexPermission amex_permission) { | |
281 return GetTestWalletItemsWithDefaultIds("default_instrument_id", | |
282 "default_address_id", | |
283 amex_permission); | |
284 } | |
285 | |
286 scoped_ptr<WalletItems> GetTestWalletItemsWithUsers( | |
287 const std::vector<std::string>& users, size_t active_index) { | |
288 scoped_ptr<WalletItems> items = | |
289 GetTestWalletItemsWithDetails(std::vector<RequiredAction>(), | |
290 "default_instrument_id", | |
291 "default_address_id", | |
292 AMEX_ALLOWED); | |
293 for (size_t i = 0; i < users.size(); ++i) { | |
294 scoped_ptr<GaiaAccount> account(GaiaAccount::CreateForTesting( | |
295 users[i], "obfuscated_id", i, i == active_index)); | |
296 items->AddAccount(account.Pass()); | |
297 } | |
298 return items.Pass(); | |
299 } | |
300 | |
301 scoped_ptr<WalletItems> GetTestWalletItemsWithDefaultIds( | |
302 const std::string& default_instrument_id, | |
303 const std::string& default_address_id, | |
304 AmexPermission amex_permission) { | |
305 scoped_ptr<WalletItems> items = | |
306 GetTestWalletItemsWithDetails(std::vector<RequiredAction>(), | |
307 default_instrument_id, | |
308 default_address_id, | |
309 amex_permission); | |
310 items->AddAccount(GetTestGaiaAccount()); | |
311 return items.Pass(); | |
312 } | |
313 | |
314 } // namespace wallet | 116 } // namespace wallet |
315 } // namespace autofill | 117 } // namespace autofill |
OLD | NEW |