1868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "components/autofill/content/browser/wallet/wallet_test_util.h"
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <string>
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <vector>
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
10868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/string16.h"
117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "base/strings/string_number_conversions.h"
12868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/utf_string_conversions.h"
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/values.h"
14868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "components/autofill/content/browser/wallet/full_wallet.h"
15a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "components/autofill/content/browser/wallet/gaia_account.h"
16868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "components/autofill/content/browser/wallet/instrument.h"
17868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "components/autofill/content/browser/wallet/required_action.h"
18868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "components/autofill/content/browser/wallet/wallet_address.h"
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)using base::ASCIIToUTF16;
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace autofill {
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace wallet {
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace {
26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)int FutureYear() {
28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  // "In the Year 3000." - Richie "LaBamba" Rosenberg
29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  return 3000;
30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}  // namespace
33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
3490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentWithDetails(
3590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    const std::string& id,
3690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    scoped_ptr<Address> address,
3790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    WalletItems::MaskedInstrument::Type type,
3890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    WalletItems::MaskedInstrument::Status status) {
395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return make_scoped_ptr(
40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      new WalletItems::MaskedInstrument(ASCIIToUTF16("descriptive_name"),
4190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                                        type,
42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                                        ASCIIToUTF16("1111"),
43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                                        12,
44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                                        FutureYear(),
4590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                                        address.Pass(),
4690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                                        status,
47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                                        id));
48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
5090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentWithId(
5190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    const std::string& id) {
5290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  return GetTestMaskedInstrumentWithDetails(
5390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      id,
5490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      GetTestAddress(),
5590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      WalletItems::MaskedInstrument::VISA,
5690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      WalletItems::MaskedInstrument::VALID);
5790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
5890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
5990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)scoped_ptr<WalletItems::MaskedInstrument>
6090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)GetTestMaskedInstrumentWithIdAndAddress(
6190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    const std::string& id, scoped_ptr<Address> address) {
6290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  return GetTestMaskedInstrumentWithDetails(
6390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      id,
6490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      address.Pass(),
6590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      WalletItems::MaskedInstrument::VISA,
6690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      WalletItems::MaskedInstrument::VALID);
6790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
6890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
69a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)scoped_ptr<GaiaAccount> GetTestGaiaAccount() {
705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return GaiaAccount::CreateForTesting("user@chromium.org",
715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                       "obfuscated_id",
725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                       0,
735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                       true);
745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)std::vector<base::string16> StreetAddress(const std::string& line1,
775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                          const std::string& line2) {
785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  std::vector<base::string16> street_address;
795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  street_address.push_back(ASCIIToUTF16(line1));
805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  street_address.push_back(ASCIIToUTF16(line2));
815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return street_address;
82a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)}
83a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)scoped_ptr<Address> GetTestAddress() {
855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return make_scoped_ptr(
865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      new Address("US",
875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("recipient_name"),
885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  StreetAddress("address_line_1", "address_line_2"),
895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("locality_name"),
905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("dependent_locality_name"),
915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("admin_area_name"),
925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("postal_code_number"),
935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("sorting_code"),
945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("phone_number"),
95a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch                  std::string(),
96a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch                  "language_code"));
972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
9990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)scoped_ptr<Address> GetTestMinimalAddress() {
10090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  scoped_ptr<Address> address = GetTestAddress();
10190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  address->set_is_complete_address(false);
10290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  return address.Pass();
10390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
10490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
105c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)scoped_ptr<FullWallet> GetTestFullWallet() {
1068bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)  return GetTestFullWalletWithRequiredActions(std::vector<RequiredAction>());
1078bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)}
1088bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)
1098bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)scoped_ptr<FullWallet> GetTestFullWalletWithRequiredActions(
1108bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)    const std::vector<RequiredAction>& actions) {
1117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  scoped_ptr<FullWallet> wallet(new FullWallet(FutureYear(),
112c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                                               12,
1137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch                                               "528512",
1147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch                                               "5ec4feecf9d6",
115c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                                               GetTestAddress(),
116c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                                               GetTestShippingAddress(),
1178bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)                                               actions));
118a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  std::vector<uint8> one_time_pad;
119a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  base::HexStringToBytes("5F04A8704183", &one_time_pad);
120a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  wallet->set_one_time_pad(one_time_pad);
121a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  return wallet.Pass();
122a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)}
123a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
124a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)scoped_ptr<FullWallet> GetTestFullWalletInstrumentOnly() {
125a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  scoped_ptr<FullWallet> wallet(new FullWallet(FutureYear(),
126a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)                                               12,
127a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)                                               "528512",
128a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)                                               "5ec4feecf9d6",
129a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)                                               GetTestAddress(),
130a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)                                               scoped_ptr<Address>(),
131a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)                                               std::vector<RequiredAction>()));
1327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  std::vector<uint8> one_time_pad;
1337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  base::HexStringToBytes("5F04A8704183", &one_time_pad);
1347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  wallet->set_one_time_pad(one_time_pad);
1357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  return wallet.Pass();
136c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
137c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
1382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)scoped_ptr<Instrument> GetTestInstrument() {
1395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return make_scoped_ptr(new Instrument(ASCIIToUTF16("4444444444444448"),
1405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        ASCIIToUTF16("123"),
1415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        12,
1425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        FutureYear(),
1435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        Instrument::VISA,
1445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        GetTestAddress()));
1452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
1462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
147ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochscoped_ptr<Instrument> GetTestAddressUpgradeInstrument() {
1485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return make_scoped_ptr(new Instrument(base::string16(),
1495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        base::string16(),
1505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        12,
1515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        FutureYear(),
1525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        Instrument::UNKNOWN,
1535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        GetTestAddress()));
154ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch}
155ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch
156ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochscoped_ptr<Instrument> GetTestExpirationDateChangeInstrument() {
1575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return make_scoped_ptr(new Instrument(base::string16(),
1585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        ASCIIToUTF16("123"),
1595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        12,
1605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        FutureYear() + 1,
1615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        Instrument::UNKNOWN,
1625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        scoped_ptr<Address>()));
163ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch}
164ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch
165ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochscoped_ptr<Instrument> GetTestAddressNameChangeInstrument() {
1665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return make_scoped_ptr(new Instrument(base::string16(),
1675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        ASCIIToUTF16("123"),
1685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        12,
1695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        FutureYear(),
1705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        Instrument::UNKNOWN,
1715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        GetTestAddress()));
172ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch}
173ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch
1742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)scoped_ptr<WalletItems::LegalDocument> GetTestLegalDocument() {
1752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  base::DictionaryValue dict;
1762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  dict.SetString("legal_document_id", "document_id");
1772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  dict.SetString("display_name", "display_name");
1782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return wallet::WalletItems::LegalDocument::CreateLegalDocument(dict);
1792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
1802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrument() {
182c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  return GetTestMaskedInstrumentWithId("default_instrument_id");
183c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
184c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
185868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentExpired() {
186868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  return GetTestMaskedInstrumentWithDetails(
187868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      "default_instrument_id",
188868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      GetTestAddress(),
189868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      WalletItems::MaskedInstrument::VISA,
190868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      WalletItems::MaskedInstrument::EXPIRED);
191868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)}
192868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
19390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentInvalid() {
19490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  return GetTestMaskedInstrumentWithDetails(
19590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      "default_instrument_id",
19690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      GetTestAddress(),
19790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      WalletItems::MaskedInstrument::VISA,
19890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      WalletItems::MaskedInstrument::DECLINED);
19990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
20090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
20168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentAmex(
20268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    AmexPermission amex_permission) {
20390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  return GetTestMaskedInstrumentWithDetails(
20490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      "default_instrument_id",
20590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      GetTestAddress(),
20690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      WalletItems::MaskedInstrument::AMEX,
2075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      amex_permission == AMEX_ALLOWED ?
2085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)          WalletItems::MaskedInstrument::VALID :
2095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)          WalletItems::MaskedInstrument::AMEX_NOT_SUPPORTED);
21090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
21190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
212c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)scoped_ptr<WalletItems::MaskedInstrument> GetTestNonDefaultMaskedInstrument() {
213c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  return GetTestMaskedInstrumentWithId("instrument_id");
2142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
2152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)scoped_ptr<Address> GetTestSaveableAddress() {
2175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return make_scoped_ptr(
2185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      new Address("US",
2195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("save_recipient_name"),
2205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  StreetAddress("save_address_line_1", "save_address_line_2"),
2215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("save_locality_name"),
2225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("save_dependent_locality_name"),
2235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("save_admin_area_name"),
2245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("save_postal_code_number"),
2255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("save_sorting_code"),
2265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("save_phone_number"),
227a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch                  std::string(),
228a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch                  "save_language_code"));
2292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
2302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)scoped_ptr<Address> GetTestShippingAddress() {
2325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return make_scoped_ptr(
2335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      new Address("US",
2345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("ship_recipient_name"),
2355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  StreetAddress("ship_address_line_1", "ship_address_line_2"),
2365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("ship_locality_name"),
2375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("ship_dependent_locality_name"),
2385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("ship_admin_area_name"),
2395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("ship_postal_code_number"),
2405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("ship_sorting_code"),
2415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                  ASCIIToUTF16("ship_phone_number"),
242a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch                  "default_address_id",
243a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch                  "ship_language_code"));
244c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
245c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
246c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)scoped_ptr<Address> GetTestNonDefaultShippingAddress() {
247c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  scoped_ptr<Address> address = GetTestShippingAddress();
248c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  address->set_object_id("address_id");
249c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  return address.Pass();
2502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
2512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)scoped_ptr<WalletItems> GetTestWalletItemsWithDetails(
2530f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)    const std::vector<RequiredAction>& required_actions,
2540f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)    const std::string& default_instrument_id,
2550f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)    const std::string& default_address_id,
256a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    AmexPermission amex_permission) {
2575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return make_scoped_ptr(new wallet::WalletItems(required_actions,
2585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                                 "google_transaction_id",
2595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                                 default_instrument_id,
2605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                                 default_address_id,
2615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                                 amex_permission));
2620f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)}
2630f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)
2640f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)scoped_ptr<WalletItems> GetTestWalletItemsWithRequiredAction(
2650f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)    RequiredAction action) {
266f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  std::vector<RequiredAction> required_actions(1, action);
267a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  scoped_ptr<WalletItems> items =
2685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      GetTestWalletItemsWithDetails(required_actions,
2695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                    "default_instrument_id",
2705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                    "default_address_id",
2715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                    AMEX_ALLOWED);
272a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
273f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  if (action != GAIA_AUTH)
274a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    items->AddAccount(GetTestGaiaAccount());
275a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
276a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  return items.Pass();
2770f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)}
2780f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)
27968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)scoped_ptr<WalletItems> GetTestWalletItems(AmexPermission amex_permission) {
28058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  return GetTestWalletItemsWithDefaultIds("default_instrument_id",
28168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                                          "default_address_id",
28268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                                          amex_permission);
28358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)}
28458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
285f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)scoped_ptr<WalletItems> GetTestWalletItemsWithUsers(
286a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    const std::vector<std::string>& users, size_t active_index) {
287a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  scoped_ptr<WalletItems> items =
2885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      GetTestWalletItemsWithDetails(std::vector<RequiredAction>(),
2895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                    "default_instrument_id",
2905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                    "default_address_id",
2915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                    AMEX_ALLOWED);
292a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  for (size_t i = 0; i < users.size(); ++i) {
293a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    scoped_ptr<GaiaAccount> account(GaiaAccount::CreateForTesting(
294a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)        users[i], "obfuscated_id", i, i == active_index));
295a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    items->AddAccount(account.Pass());
296a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  }
297a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  return items.Pass();
298f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}
299f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
30058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)scoped_ptr<WalletItems> GetTestWalletItemsWithDefaultIds(
30158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)    const std::string& default_instrument_id,
30268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    const std::string& default_address_id,
30368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    AmexPermission amex_permission) {
304a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  scoped_ptr<WalletItems> items =
3055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      GetTestWalletItemsWithDetails(std::vector<RequiredAction>(),
3065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                    default_instrument_id,
3075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                    default_address_id,
3085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                    amex_permission);
309a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  items->AddAccount(GetTestGaiaAccount());
310a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  return items.Pass();
3112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
3122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace wallet
3142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace autofill
315