| 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>()); | |
| 107 } | |
| 108 | |
| 109 scoped_ptr<FullWallet> GetTestFullWalletWithRequiredActions( | |
| 110 const std::vector<RequiredAction>& actions) { | |
| 111 scoped_ptr<FullWallet> wallet(new FullWallet(FutureYear(), | 61 scoped_ptr<FullWallet> wallet(new FullWallet(FutureYear(), |
| 112 12, | 62 12, |
| 113 "528512", | 63 "528512", |
| 114 "5ec4feecf9d6", | 64 "5ec4feecf9d6", |
| 115 GetTestAddress(), | 65 GetTestAddress(), |
| 116 GetTestShippingAddress(), | 66 GetTestShippingAddress())); |
| 117 actions)); | |
| 118 std::vector<uint8> one_time_pad; | 67 std::vector<uint8> one_time_pad; |
| 119 base::HexStringToBytes("5F04A8704183", &one_time_pad); | 68 base::HexStringToBytes("5F04A8704183", &one_time_pad); |
| 120 wallet->set_one_time_pad(one_time_pad); | 69 wallet->set_one_time_pad(one_time_pad); |
| 121 return wallet.Pass(); | 70 return wallet.Pass(); |
| 122 } | 71 } |
| 123 | 72 |
| 124 scoped_ptr<FullWallet> GetTestFullWalletInstrumentOnly() { | 73 scoped_ptr<FullWallet> GetTestFullWalletInstrumentOnly() { |
| 125 scoped_ptr<FullWallet> wallet(new FullWallet(FutureYear(), | 74 scoped_ptr<FullWallet> wallet(new FullWallet(FutureYear(), |
| 126 12, | 75 12, |
| 127 "528512", | 76 "528512", |
| 128 "5ec4feecf9d6", | 77 "5ec4feecf9d6", |
| 129 GetTestAddress(), | 78 GetTestAddress(), |
| 130 scoped_ptr<Address>(), | 79 scoped_ptr<Address>())); |
| 131 std::vector<RequiredAction>())); | |
| 132 std::vector<uint8> one_time_pad; | 80 std::vector<uint8> one_time_pad; |
| 133 base::HexStringToBytes("5F04A8704183", &one_time_pad); | 81 base::HexStringToBytes("5F04A8704183", &one_time_pad); |
| 134 wallet->set_one_time_pad(one_time_pad); | 82 wallet->set_one_time_pad(one_time_pad); |
| 135 return wallet.Pass(); | 83 return wallet.Pass(); |
| 136 } | 84 } |
| 137 | 85 |
| 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() { | 86 scoped_ptr<Address> GetTestSaveableAddress() { |
| 218 return make_scoped_ptr( | 87 return make_scoped_ptr( |
| 219 new Address("US", | 88 new Address("US", |
| 220 ASCIIToUTF16("save_recipient_name"), | 89 ASCIIToUTF16("save_recipient_name"), |
| 221 StreetAddress("save_address_line_1", "save_address_line_2"), | 90 StreetAddress("save_address_line_1", "save_address_line_2"), |
| 222 ASCIIToUTF16("save_locality_name"), | 91 ASCIIToUTF16("save_locality_name"), |
| 223 ASCIIToUTF16("save_dependent_locality_name"), | 92 ASCIIToUTF16("save_dependent_locality_name"), |
| 224 ASCIIToUTF16("save_admin_area_name"), | 93 ASCIIToUTF16("save_admin_area_name"), |
| 225 ASCIIToUTF16("save_postal_code_number"), | 94 ASCIIToUTF16("save_postal_code_number"), |
| 226 ASCIIToUTF16("save_sorting_code"), | 95 ASCIIToUTF16("save_sorting_code"), |
| (...skipping 16 matching lines...) Expand all Loading... |
| 243 "default_address_id", | 112 "default_address_id", |
| 244 "ship_language_code")); | 113 "ship_language_code")); |
| 245 } | 114 } |
| 246 | 115 |
| 247 scoped_ptr<Address> GetTestNonDefaultShippingAddress() { | 116 scoped_ptr<Address> GetTestNonDefaultShippingAddress() { |
| 248 scoped_ptr<Address> address = GetTestShippingAddress(); | 117 scoped_ptr<Address> address = GetTestShippingAddress(); |
| 249 address->set_object_id("address_id"); | 118 address->set_object_id("address_id"); |
| 250 return address.Pass(); | 119 return address.Pass(); |
| 251 } | 120 } |
| 252 | 121 |
| 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 | 122 } // namespace wallet |
| 315 } // namespace autofill | 123 } // namespace autofill |
| OLD | NEW |