mock_address_validator.h revision 116680a4aac90f2aa7413d9095a592090648e557
1// Copyright 2014 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 CHROME_BROWSER_UI_AUTOFILL_MOCK_ADDRESS_VALIDATOR_H_
6#define CHROME_BROWSER_UI_AUTOFILL_MOCK_ADDRESS_VALIDATOR_H_
7
8#include "base/basictypes.h"
9#include "testing/gmock/include/gmock/gmock.h"
10#include "third_party/libaddressinput/chromium/chrome_address_validator.h"
11#include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_data.h"
12
13namespace autofill {
14
15MATCHER_P(CountryCodeMatcher, country_code, "Checks an AddressData's country") {
16  // |arg| is an AddressData object.
17  return arg.region_code == country_code;
18}
19
20class MockAddressValidator : public AddressValidator {
21 public:
22  MockAddressValidator();
23  virtual ~MockAddressValidator();
24
25  MOCK_METHOD1(LoadRules, void(const std::string& country_code));
26
27  MOCK_CONST_METHOD3(ValidateAddress,
28      AddressValidator::Status(
29          const ::i18n::addressinput::AddressData& address,
30          const ::i18n::addressinput::FieldProblemMap* filter,
31          ::i18n::addressinput::FieldProblemMap* problems));
32
33  MOCK_CONST_METHOD4(GetSuggestions,
34      AddressValidator::Status(
35          const ::i18n::addressinput::AddressData& user_input,
36          ::i18n::addressinput::AddressField focused_field,
37          size_t suggestions_limit,
38          std::vector< ::i18n::addressinput::AddressData>* suggestions));
39
40  MOCK_CONST_METHOD1(CanonicalizeAdministrativeArea,
41                     bool(::i18n::addressinput::AddressData* address_data));
42
43 private:
44  DISALLOW_COPY_AND_ASSIGN(MockAddressValidator);
45};
46
47}  // namespace autofill
48
49#endif  // CHROME_BROWSER_UI_AUTOFILL_MOCK_ADDRESS_VALIDATOR_H_
50