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_CORE_BROWSER_TEST_PERSONAL_DATA_MANAGER_H_
6#define COMPONENTS_AUTOFILL_CORE_BROWSER_TEST_PERSONAL_DATA_MANAGER_H_
7
8#include <vector>
9
10#include "components/autofill/core/browser/autofill_profile.h"
11#include "components/autofill/core/browser/credit_card.h"
12#include "components/autofill/core/browser/personal_data_manager.h"
13
14namespace autofill {
15
16// A simplistic PersonalDataManager used for testing.
17class TestPersonalDataManager : public PersonalDataManager {
18 public:
19  TestPersonalDataManager();
20  virtual ~TestPersonalDataManager();
21
22  // Adds |profile| to |profiles_|. This does not take ownership of |profile|.
23  void AddTestingProfile(AutofillProfile* profile);
24
25  // Adds |credit_card| to |credit_cards_|. This does not take ownership of
26  // |credit_card|.
27  void AddTestingCreditCard(CreditCard* credit_card);
28
29  virtual const std::vector<AutofillProfile*>& GetProfiles() const OVERRIDE;
30  virtual const std::vector<AutofillProfile*>& web_profiles() const OVERRIDE;
31  virtual const std::vector<CreditCard*>& GetCreditCards() const OVERRIDE;
32
33  virtual std::string SaveImportedProfile(
34      const AutofillProfile& imported_profile) OVERRIDE;
35  virtual std::string SaveImportedCreditCard(
36      const CreditCard& imported_credit_card) OVERRIDE;
37
38  virtual std::string CountryCodeForCurrentTimezone() const OVERRIDE;
39  virtual const std::string& GetDefaultCountryCodeForNewAddress() const
40      OVERRIDE;
41
42  void set_timezone_country_code(const std::string& timezone_country_code) {
43    timezone_country_code_ = timezone_country_code;
44  }
45  void set_default_country_code(const std::string& default_country_code) {
46    default_country_code_ = default_country_code;
47  }
48
49  const AutofillProfile& imported_profile() { return imported_profile_; }
50  const CreditCard& imported_credit_card() { return imported_credit_card_; }
51
52 private:
53  std::vector<AutofillProfile*> profiles_;
54  std::vector<CreditCard*> credit_cards_;
55  AutofillProfile imported_profile_;
56  CreditCard imported_credit_card_;
57  std::string timezone_country_code_;
58  std::string default_country_code_;
59};
60
61}  // namespace autofill
62
63#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_TEST_PERSONAL_DATA_MANAGER_H_
64