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();
22scoped_ptr<Address> GetTestAddress();
23scoped_ptr<Address> GetTestMinimalAddress();
24scoped_ptr<FullWallet> GetTestFullWallet();
25scoped_ptr<FullWallet> GetTestFullWalletWithRequiredActions(
26    const std::vector<RequiredAction>& action);
27scoped_ptr<FullWallet> GetTestFullWalletInstrumentOnly();
28scoped_ptr<Instrument> GetTestInstrument();
29scoped_ptr<Instrument> GetTestAddressUpgradeInstrument();
30scoped_ptr<Instrument> GetTestExpirationDateChangeInstrument();
31scoped_ptr<Instrument> GetTestAddressNameChangeInstrument();
32scoped_ptr<WalletItems::LegalDocument> GetTestLegalDocument();
33scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrument();
34scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentExpired();
35scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentInvalid();
36scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentAmex(
37    AmexPermission amex_permission);
38scoped_ptr<WalletItems::MaskedInstrument> GetTestNonDefaultMaskedInstrument();
39scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentWithId(
40    const std::string& id);
41scoped_ptr<WalletItems::MaskedInstrument>
42    GetTestMaskedInstrumentWithIdAndAddress(
43        const std::string& id, scoped_ptr<Address> address);
44scoped_ptr<WalletItems::MaskedInstrument> GetTestMaskedInstrumentWithDetails(
45    const std::string& id,
46    scoped_ptr<Address> address,
47    WalletItems::MaskedInstrument::Type type,
48    WalletItems::MaskedInstrument::Status status);
49scoped_ptr<Address> GetTestSaveableAddress();
50scoped_ptr<Address> GetTestShippingAddress();
51scoped_ptr<Address> GetTestNonDefaultShippingAddress();
52scoped_ptr<WalletItems> GetTestWalletItemsWithRequiredAction(
53    RequiredAction action);
54scoped_ptr<WalletItems> GetTestWalletItems(AmexPermission amex_permission);
55scoped_ptr<WalletItems> GetTestWalletItemsWithUsers(
56    const std::vector<std::string>& users, size_t user_index);
57scoped_ptr<WalletItems> GetTestWalletItemsWithDefaultIds(
58    const std::string& default_instrument_id,
59    const std::string& default_address_id,
60    AmexPermission amex_permission);
61
62}  // namespace wallet
63}  // namespace autofill
64
65#endif  // COMPONENTS_AUTOFILL_CONTENT_BROWSER_WALLET_WALLET_TEST_UTIL_H_
66