Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(78)

Side by Side Diff: third_party/libaddressinput/chromium/chrome_address_validator_unittest.cc

Issue 2800013004: Revert of Use dropdown list for admin areas in pr form. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/libaddressinput/chromium/chrome_address_validator.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <stddef.h> 7 #include <stddef.h>
8 #include <set>
9 #include <string> 8 #include <string>
10 #include <utility> 9 #include <utility>
11 #include <vector> 10 #include <vector>
12 11
13 #include "base/macros.h" 12 #include "base/macros.h"
14 #include "base/message_loop/message_loop.h" 13 #include "base/message_loop/message_loop.h"
15 #include "base/run_loop.h" 14 #include "base/run_loop.h"
16 #include "base/strings/utf_string_conversions.h" 15 #include "base/strings/utf_string_conversions.h"
17 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
18 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_da ta.h" 17 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_da ta.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 this)) { 60 this)) {
62 validator_->LoadRules("US"); 61 validator_->LoadRules("US");
63 } 62 }
64 63
65 virtual ~AddressValidatorTest() {} 64 virtual ~AddressValidatorTest() {}
66 65
67 const std::unique_ptr<AddressValidator> validator_; 66 const std::unique_ptr<AddressValidator> validator_;
68 67
69 private: 68 private:
70 // LoadRulesListener implementation. 69 // LoadRulesListener implementation.
71 void OnAddressRulesLoaded(const std::string& country_code, 70 virtual void OnAddressValidationRulesLoaded(const std::string& country_code,
72 bool success) override { 71 bool success) override {
73 AddressData address_data; 72 AddressData address_data;
74 address_data.region_code = country_code; 73 address_data.region_code = country_code;
75 FieldProblemMap dummy; 74 FieldProblemMap dummy;
76 AddressValidator::Status status = 75 AddressValidator::Status status =
77 validator_->ValidateAddress(address_data, NULL, &dummy); 76 validator_->ValidateAddress(address_data, NULL, &dummy);
78 ASSERT_EQ(success, status == AddressValidator::SUCCESS); 77 ASSERT_EQ(success, status == AddressValidator::SUCCESS);
79 } 78 }
80 79
81 DISALLOW_COPY_AND_ASSIGN(AddressValidatorTest); 80 DISALLOW_COPY_AND_ASSIGN(AddressValidatorTest);
82 }; 81 };
(...skipping 21 matching lines...) Expand all
104 103
105 // Owned shared instance of validator with large sets validation rules. 104 // Owned shared instance of validator with large sets validation rules.
106 static AddressValidator* validator_; 105 static AddressValidator* validator_;
107 106
108 private: 107 private:
109 DISALLOW_COPY_AND_ASSIGN(LargeAddressValidatorTest); 108 DISALLOW_COPY_AND_ASSIGN(LargeAddressValidatorTest);
110 }; 109 };
111 110
112 AddressValidator* LargeAddressValidatorTest::validator_ = NULL; 111 AddressValidator* LargeAddressValidatorTest::validator_ = NULL;
113 112
114 TEST_F(AddressValidatorTest, SubKeysLoaded) {
115 const std::string country_code = "US";
116 const std::string first_state = "AL";
117
118 validator_->LoadRules(country_code);
119 std::vector<std::string> sub_keys =
120 validator_->GetRegionSubKeys(country_code);
121 ASSERT_FALSE(sub_keys.empty());
122 ASSERT_EQ(sub_keys[0], first_state);
123 }
124
125 TEST_F(AddressValidatorTest, SubKeysNotLoaded) {
126 const std::string country_code = "ZZ";
127
128 validator_->LoadRules(country_code);
129 std::vector<std::string> sub_keys =
130 validator_->GetRegionSubKeys(country_code);
131 ASSERT_TRUE(sub_keys.empty());
132 }
133
134 TEST_F(AddressValidatorTest, RegionHasRules) { 113 TEST_F(AddressValidatorTest, RegionHasRules) {
135 const std::vector<std::string>& region_codes = GetRegionCodes(); 114 const std::vector<std::string>& region_codes = GetRegionCodes();
136 AddressData address; 115 AddressData address;
137 for (size_t i = 0; i < region_codes.size(); ++i) { 116 for (size_t i = 0; i < region_codes.size(); ++i) {
138 SCOPED_TRACE("For region: " + region_codes[i]); 117 SCOPED_TRACE("For region: " + region_codes[i]);
139 validator_->LoadRules(region_codes[i]); 118 validator_->LoadRules(region_codes[i]);
140 address.region_code = region_codes[i]; 119 address.region_code = region_codes[i];
141 FieldProblemMap dummy; 120 FieldProblemMap dummy;
142 EXPECT_EQ(AddressValidator::SUCCESS, 121 EXPECT_EQ(AddressValidator::SUCCESS,
143 validator_->ValidateAddress(address, NULL, &dummy)); 122 validator_->ValidateAddress(address, NULL, &dummy));
(...skipping 628 matching lines...) Expand 10 before | Expand all | Expand 10 after
772 TestAddressValidator(std::unique_ptr<::i18n::addressinput::Source> source, 751 TestAddressValidator(std::unique_ptr<::i18n::addressinput::Source> source,
773 std::unique_ptr<::i18n::addressinput::Storage> storage, 752 std::unique_ptr<::i18n::addressinput::Storage> storage,
774 LoadRulesListener* load_rules_listener) 753 LoadRulesListener* load_rules_listener)
775 : AddressValidator(std::move(source), 754 : AddressValidator(std::move(source),
776 std::move(storage), 755 std::move(storage),
777 load_rules_listener) {} 756 load_rules_listener) {}
778 757
779 virtual ~TestAddressValidator() {} 758 virtual ~TestAddressValidator() {}
780 759
781 protected: 760 protected:
782 base::TimeDelta GetBaseRetryPeriod() const override { 761 virtual base::TimeDelta GetBaseRetryPeriod() const override {
783 return base::TimeDelta::FromSeconds(0); 762 return base::TimeDelta::FromSeconds(0);
784 } 763 }
785 764
786 private: 765 private:
787 DISALLOW_COPY_AND_ASSIGN(TestAddressValidator); 766 DISALLOW_COPY_AND_ASSIGN(TestAddressValidator);
788 }; 767 };
789 768
790 // A source that always fails |failures_number| times before downloading 769 // A source that always fails |failures_number| times before downloading
791 // data. 770 // data.
792 class FailingSource : public Source { 771 class FailingSource : public Source {
793 public: 772 public:
794 FailingSource() 773 explicit FailingSource()
795 : failures_number_(0), attempts_number_(0), actual_source_(true) {} 774 : failures_number_(0), attempts_number_(0), actual_source_(true) {}
796 virtual ~FailingSource() {} 775 virtual ~FailingSource() {}
797 776
798 // Sets the number of times to fail before downloading data. 777 // Sets the number of times to fail before downloading data.
799 void set_failures_number(int failures_number) { 778 void set_failures_number(int failures_number) {
800 failures_number_ = failures_number; 779 failures_number_ = failures_number;
801 } 780 }
802 781
803 // Source implementation. 782 // Source implementation.
804 // Always fails for the first |failures_number| times. 783 // Always fails for the first |failures_number| times.
805 void Get(const std::string& url, const Callback& callback) const override { 784 virtual void Get(const std::string& url,
785 const Callback& callback) const override {
806 ++attempts_number_; 786 ++attempts_number_;
807 // |callback| takes ownership of the |new std::string|. 787 // |callback| takes ownership of the |new std::string|.
808 if (failures_number_-- > 0) 788 if (failures_number_-- > 0)
809 callback(false, url, new std::string); 789 callback(false, url, new std::string);
810 else 790 else
811 actual_source_.Get(url, callback); 791 actual_source_.Get(url, callback);
812 } 792 }
813 793
814 // Returns the number of download attempts. 794 // Returns the number of download attempts.
815 int attempts_number() const { return attempts_number_; } 795 int attempts_number() const { return attempts_number_; }
(...skipping 20 matching lines...) Expand all
836 load_rules_success_(false) {} 816 load_rules_success_(false) {}
837 817
838 virtual ~FailingAddressValidatorTest() {} 818 virtual ~FailingAddressValidatorTest() {}
839 819
840 FailingSource* source_; // Owned by |validator_|. 820 FailingSource* source_; // Owned by |validator_|.
841 std::unique_ptr<AddressValidator> validator_; 821 std::unique_ptr<AddressValidator> validator_;
842 bool load_rules_success_; 822 bool load_rules_success_;
843 823
844 private: 824 private:
845 // LoadRulesListener implementation. 825 // LoadRulesListener implementation.
846 void OnAddressRulesLoaded(const std::string&, bool success) override { 826 virtual void OnAddressValidationRulesLoaded(const std::string&,
827 bool success) override {
847 load_rules_success_ = success; 828 load_rules_success_ = success;
848 } 829 }
849 830
850 base::MessageLoop ui_; 831 base::MessageLoop ui_;
851 832
852 DISALLOW_COPY_AND_ASSIGN(FailingAddressValidatorTest); 833 DISALLOW_COPY_AND_ASSIGN(FailingAddressValidatorTest);
853 }; 834 };
854 835
855 // The validator will attempt to load rules at most 8 times. 836 // The validator will attempt to load rules at most 8 times.
856 TEST_F(FailingAddressValidatorTest, RetryLoadingRulesHasLimit) { 837 TEST_F(FailingAddressValidatorTest, RetryLoadingRulesHasLimit) {
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
910 source_->set_failures_number(99); 891 source_->set_failures_number(99);
911 validator_->LoadRules("CH"); 892 validator_->LoadRules("CH");
912 validator_->LoadRules("GB"); 893 validator_->LoadRules("GB");
913 base::RunLoop().RunUntilIdle(); 894 base::RunLoop().RunUntilIdle();
914 895
915 EXPECT_FALSE(load_rules_success_); 896 EXPECT_FALSE(load_rules_success_);
916 EXPECT_EQ(16, source_->attempts_number()); 897 EXPECT_EQ(16, source_->attempts_number());
917 } 898 }
918 899
919 } // namespace autofill 900 } // namespace autofill
OLDNEW
« no previous file with comments | « third_party/libaddressinput/chromium/chrome_address_validator.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698