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
3// found in the LICENSE file.
4
5#ifndef COMPONENTS_AUTOFILL_CONTENT_BROWSER_WALLET_WALLET_TEST_UTIL_H_
6#define COMPONENTS_AUTOFILL_CONTENT_BROWSER_WALLET_WALLET_TEST_UTIL_H_
7
8#include <vector>
9
10#include "base/memory/scoped_ptr.h"
11#include "components/autofill/content/browser/wallet/wallet_items.h"
12
13namespace autofill {
14namespace wallet {
15
16class Address;
17class FullWallet;
18class GaiaAccount;
19class Instrument;
20
21scoped_ptr<GaiaAccount> GetTestGaiaAccount();
22std::vector<base::string16> StreetAddress(const std::string& line1,
23                                          const std::string& line2);
24scoped_ptr<Address> GetTestAddress();
25scoped_ptr<Address> GetTestMinimalAddress();
26scoped_ptr<FullWallet> GetTestFullWallet();
27scoped_ptr<FullWallet> GetTestFullWalletWithRequiredActions(
28    const std::vector<RequiredAction>& action);
29scoped_ptr<FullWallet> GetTestFullWalletInstrumentOnly();
30scoped_ptr<Instrument> GetTestInstrument();
31scoped_ptr<Instrument> GetTestAddressUpgradeInstrument();
32scoped_ptr<Instrument> GetTestExpirationDateChangeInstrument();
33scoped_ptr<Instrument> GetTestAddressNameChangeInstrument();
34scoped_ptr<WalletItems::LegalDocument> GetTestLegalDocument();
35scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrument();
36scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentExpired();
37scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentInvalid();
38scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentAmex(
39    AmexPermission amex_permission);
40scoped_ptr<WalletItems::MaskedInstrument> GetTestNonDefaultMaskedInstrument();
41scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentWithId(
42    const std::string& id);
43scoped_ptr<WalletItems::MaskedInstrument>
44    GetTestMaskedInstrumentWithIdAndAddress(
45        const std::string& id, scoped_ptr<Address> address);
46scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentWithDetails(
47    const std::string& id,
48    scoped_ptr<Address> address,
49    WalletItems::MaskedInstrument::Type type,
50    WalletItems::MaskedInstrument::Status status);
51scoped_ptr<Address> GetTestSaveableAddress();
52scoped_ptr<Address> GetTestShippingAddress();
53scoped_ptr<Address> GetTestNonDefaultShippingAddress();
54scoped_ptr<WalletItems> GetTestWalletItemsWithRequiredAction(
55    RequiredAction action);
56scoped_ptr<WalletItems> GetTestWalletItems(AmexPermission amex_permission);
57scoped_ptr<WalletItems> GetTestWalletItemsWithUsers(
58    const std::vector<std::string>& users, size_t user_index);
59scoped_ptr<WalletItems> GetTestWalletItemsWithDefaultIds(
60    const std::string& default_instrument_id,
61    const std::string& default_address_id,
62    AmexPermission amex_permission);
63
64}  // namespace wallet
65}  // namespace autofill
66
67#endif  // COMPONENTS_AUTOFILL_CONTENT_BROWSER_WALLET_WALLET_TEST_UTIL_H_
68