15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
25d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// found in the LICENSE file.
45d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifndef CHROME_BROWSER_UI_AUTOFILL_MOCK_ADDRESS_VALIDATOR_H_
65d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define CHROME_BROWSER_UI_AUTOFILL_MOCK_ADDRESS_VALIDATOR_H_
75d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "base/basictypes.h"
95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "testing/gmock/include/gmock/gmock.h"
10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "third_party/libaddressinput/chromium/chrome_address_validator.h"
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_data.h"
125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)namespace autofill {
145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)MATCHER_P(CountryCodeMatcher, country_code, "Checks an AddressData's country") {
165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  // |arg| is an AddressData object.
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return arg.region_code == country_code;
185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass MockAddressValidator : public AddressValidator {
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) public:
225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  MockAddressValidator();
235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  virtual ~MockAddressValidator();
245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  MOCK_METHOD1(LoadRules, void(const std::string& country_code));
265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  MOCK_CONST_METHOD3(ValidateAddress,
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      AddressValidator::Status(
295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)          const ::i18n::addressinput::AddressData& address,
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          const ::i18n::addressinput::FieldProblemMap* filter,
31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          ::i18n::addressinput::FieldProblemMap* problems));
325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
33a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  MOCK_CONST_METHOD4(GetSuggestions,
34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      AddressValidator::Status(
35a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)          const ::i18n::addressinput::AddressData& user_input,
36a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)          ::i18n::addressinput::AddressField focused_field,
37a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)          size_t suggestions_limit,
38a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)          std::vector< ::i18n::addressinput::AddressData>* suggestions));
39a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  MOCK_CONST_METHOD1(CanonicalizeAdministrativeArea,
415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                     bool(::i18n::addressinput::AddressData* address_data));
425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) private:
445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(MockAddressValidator);
455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)};
465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}  // namespace autofill
485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif  // CHROME_BROWSER_UI_AUTOFILL_MOCK_ADDRESS_VALIDATOR_H_
50