| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "third_party/libaddressinput/chromium/chrome_address_validator.h" | 5 #include "third_party/libaddressinput/chromium/chrome_address_validator.h" |
| 6 | 6 |
| 7 #include <cstddef> | 7 #include <cstddef> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 validator_->LoadRules("US"); | 59 validator_->LoadRules("US"); |
| 60 } | 60 } |
| 61 | 61 |
| 62 virtual ~AddressValidatorTest() {} | 62 virtual ~AddressValidatorTest() {} |
| 63 | 63 |
| 64 const scoped_ptr<AddressValidator> validator_; | 64 const scoped_ptr<AddressValidator> validator_; |
| 65 | 65 |
| 66 private: | 66 private: |
| 67 // LoadRulesListener implementation. | 67 // LoadRulesListener implementation. |
| 68 virtual void OnAddressValidationRulesLoaded(const std::string& country_code, | 68 virtual void OnAddressValidationRulesLoaded(const std::string& country_code, |
| 69 bool success) OVERRIDE { | 69 bool success) override { |
| 70 AddressData address_data; | 70 AddressData address_data; |
| 71 address_data.region_code = country_code; | 71 address_data.region_code = country_code; |
| 72 FieldProblemMap dummy; | 72 FieldProblemMap dummy; |
| 73 AddressValidator::Status status = | 73 AddressValidator::Status status = |
| 74 validator_->ValidateAddress(address_data, NULL, &dummy); | 74 validator_->ValidateAddress(address_data, NULL, &dummy); |
| 75 ASSERT_EQ(success, status == AddressValidator::SUCCESS); | 75 ASSERT_EQ(success, status == AddressValidator::SUCCESS); |
| 76 } | 76 } |
| 77 | 77 |
| 78 DISALLOW_COPY_AND_ASSIGN(AddressValidatorTest); | 78 DISALLOW_COPY_AND_ASSIGN(AddressValidatorTest); |
| 79 }; | 79 }; |
| (...skipping 662 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 742 scoped_ptr< ::i18n::addressinput::Source> source, | 742 scoped_ptr< ::i18n::addressinput::Source> source, |
| 743 scoped_ptr< ::i18n::addressinput::Storage> storage, | 743 scoped_ptr< ::i18n::addressinput::Storage> storage, |
| 744 LoadRulesListener* load_rules_listener) | 744 LoadRulesListener* load_rules_listener) |
| 745 : AddressValidator(source.Pass(), | 745 : AddressValidator(source.Pass(), |
| 746 storage.Pass(), | 746 storage.Pass(), |
| 747 load_rules_listener) {} | 747 load_rules_listener) {} |
| 748 | 748 |
| 749 virtual ~TestAddressValidator() {} | 749 virtual ~TestAddressValidator() {} |
| 750 | 750 |
| 751 protected: | 751 protected: |
| 752 virtual base::TimeDelta GetBaseRetryPeriod() const OVERRIDE { | 752 virtual base::TimeDelta GetBaseRetryPeriod() const override { |
| 753 return base::TimeDelta::FromSeconds(0); | 753 return base::TimeDelta::FromSeconds(0); |
| 754 } | 754 } |
| 755 | 755 |
| 756 private: | 756 private: |
| 757 DISALLOW_COPY_AND_ASSIGN(TestAddressValidator); | 757 DISALLOW_COPY_AND_ASSIGN(TestAddressValidator); |
| 758 }; | 758 }; |
| 759 | 759 |
| 760 // A source that always fails |failures_number| times before downloading | 760 // A source that always fails |failures_number| times before downloading |
| 761 // data. | 761 // data. |
| 762 class FailingSource : public Source { | 762 class FailingSource : public Source { |
| 763 public: | 763 public: |
| 764 explicit FailingSource() | 764 explicit FailingSource() |
| 765 : failures_number_(0), attempts_number_(0), actual_source_(true) {} | 765 : failures_number_(0), attempts_number_(0), actual_source_(true) {} |
| 766 virtual ~FailingSource() {} | 766 virtual ~FailingSource() {} |
| 767 | 767 |
| 768 // Sets the number of times to fail before downloading data. | 768 // Sets the number of times to fail before downloading data. |
| 769 void set_failures_number(int failures_number) { | 769 void set_failures_number(int failures_number) { |
| 770 failures_number_ = failures_number; | 770 failures_number_ = failures_number; |
| 771 } | 771 } |
| 772 | 772 |
| 773 // Source implementation. | 773 // Source implementation. |
| 774 // Always fails for the first |failures_number| times. | 774 // Always fails for the first |failures_number| times. |
| 775 virtual void Get(const std::string& url, | 775 virtual void Get(const std::string& url, |
| 776 const Callback& callback) const OVERRIDE { | 776 const Callback& callback) const override { |
| 777 ++attempts_number_; | 777 ++attempts_number_; |
| 778 // |callback| takes ownership of the |new std::string|. | 778 // |callback| takes ownership of the |new std::string|. |
| 779 if (failures_number_-- > 0) | 779 if (failures_number_-- > 0) |
| 780 callback(false, url, new std::string); | 780 callback(false, url, new std::string); |
| 781 else | 781 else |
| 782 actual_source_.Get(url, callback); | 782 actual_source_.Get(url, callback); |
| 783 } | 783 } |
| 784 | 784 |
| 785 // Returns the number of download attempts. | 785 // Returns the number of download attempts. |
| 786 int attempts_number() const { return attempts_number_; } | 786 int attempts_number() const { return attempts_number_; } |
| (...skipping 21 matching lines...) Expand all Loading... |
| 808 | 808 |
| 809 virtual ~FailingAddressValidatorTest() {} | 809 virtual ~FailingAddressValidatorTest() {} |
| 810 | 810 |
| 811 FailingSource* source_; // Owned by |validator_|. | 811 FailingSource* source_; // Owned by |validator_|. |
| 812 scoped_ptr<AddressValidator> validator_; | 812 scoped_ptr<AddressValidator> validator_; |
| 813 bool load_rules_success_; | 813 bool load_rules_success_; |
| 814 | 814 |
| 815 private: | 815 private: |
| 816 // LoadRulesListener implementation. | 816 // LoadRulesListener implementation. |
| 817 virtual void OnAddressValidationRulesLoaded(const std::string&, | 817 virtual void OnAddressValidationRulesLoaded(const std::string&, |
| 818 bool success) OVERRIDE { | 818 bool success) override { |
| 819 load_rules_success_ = success; | 819 load_rules_success_ = success; |
| 820 } | 820 } |
| 821 | 821 |
| 822 base::MessageLoop ui_; | 822 base::MessageLoop ui_; |
| 823 | 823 |
| 824 DISALLOW_COPY_AND_ASSIGN(FailingAddressValidatorTest); | 824 DISALLOW_COPY_AND_ASSIGN(FailingAddressValidatorTest); |
| 825 }; | 825 }; |
| 826 | 826 |
| 827 // The validator will attempt to load rules at most 8 times. | 827 // The validator will attempt to load rules at most 8 times. |
| 828 TEST_F(FailingAddressValidatorTest, RetryLoadingRulesHasLimit) { | 828 TEST_F(FailingAddressValidatorTest, RetryLoadingRulesHasLimit) { |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 882 source_->set_failures_number(99); | 882 source_->set_failures_number(99); |
| 883 validator_->LoadRules("CH"); | 883 validator_->LoadRules("CH"); |
| 884 validator_->LoadRules("GB"); | 884 validator_->LoadRules("GB"); |
| 885 base::RunLoop().RunUntilIdle(); | 885 base::RunLoop().RunUntilIdle(); |
| 886 | 886 |
| 887 EXPECT_FALSE(load_rules_success_); | 887 EXPECT_FALSE(load_rules_success_); |
| 888 EXPECT_EQ(16, source_->attempts_number()); | 888 EXPECT_EQ(16, source_->attempts_number()); |
| 889 } | 889 } |
| 890 | 890 |
| 891 } // namespace autofill | 891 } // namespace autofill |
| OLD | NEW |