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

Side by Side Diff: third_party/libaddressinput/chromium/cpp/test/country_rules_aggregator_test.cc

Issue 389863002: Remove Chrome's own version of libaddressinput in favor of the upstream. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (C) 2013 Google Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14
15 #include "country_rules_aggregator.h"
16
17 #include <libaddressinput/callback.h>
18 #include <libaddressinput/downloader.h>
19 #include <libaddressinput/storage.h>
20 #include <libaddressinput/util/basictypes.h>
21 #include <libaddressinput/util/scoped_ptr.h>
22
23 #include <algorithm>
24 #include <cstddef>
25 #include <string>
26 #include <vector>
27
28 #include <gtest/gtest.h>
29
30 #include "fake_downloader.h"
31 #include "fake_storage.h"
32 #include "region_data_constants.h"
33 #include "retriever.h"
34 #include "rule.h"
35 #include "ruleset.h"
36
37 namespace i18n {
38 namespace addressinput {
39
40 class CountryRulesAggregatorTest : public testing::Test {
41 public:
42 CountryRulesAggregatorTest()
43 : aggregator_(scoped_ptr<Retriever>(new Retriever(
44 FakeDownloader::kFakeDataUrl,
45 scoped_ptr<Downloader>(new FakeDownloader),
46 scoped_ptr<Storage>(new FakeStorage)))),
47 success_(false),
48 country_code_(),
49 ruleset_() {}
50
51 virtual ~CountryRulesAggregatorTest() {}
52
53 protected:
54 scoped_ptr<CountryRulesAggregator::Callback> BuildCallback() {
55 return ::i18n::addressinput::BuildScopedPtrCallback(
56 this, &CountryRulesAggregatorTest::OnRulesetReady);
57 }
58
59 CountryRulesAggregator aggregator_;
60 bool success_;
61 std::string country_code_;
62 scoped_ptr<Ruleset> ruleset_;
63
64 private:
65 void OnRulesetReady(bool success,
66 const std::string& country_code,
67 scoped_ptr<Ruleset> ruleset) {
68 success_ = success;
69 country_code_ = country_code;
70 ruleset_.reset(ruleset.release());
71 }
72
73 DISALLOW_COPY_AND_ASSIGN(CountryRulesAggregatorTest);
74 };
75
76 TEST_F(CountryRulesAggregatorTest, ValidRulesets) {
77 const std::vector<std::string>& region_codes =
78 RegionDataConstants::GetRegionCodes();
79
80 for (size_t i = 0; i < region_codes.size(); ++i) {
81 SCOPED_TRACE("For region: " + region_codes[i]);
82
83 aggregator_.AggregateRules(region_codes[i], BuildCallback());
84 EXPECT_TRUE(success_);
85 EXPECT_EQ(region_codes[i], country_code_);
86 ASSERT_TRUE(ruleset_ != NULL);
87
88 const std::vector<std::string>& sub_keys = ruleset_->rule().GetSubKeys();
89 for (std::vector<std::string>::const_iterator sub_key_it = sub_keys.begin();
90 sub_key_it != sub_keys.end(); ++sub_key_it) {
91 EXPECT_TRUE(ruleset_->GetSubRegionRuleset(*sub_key_it) != NULL);
92 }
93
94 std::vector<std::string> non_default_languages =
95 ruleset_->rule().GetLanguages();
96 std::vector<std::string>::iterator default_lang_it =
97 std::find(non_default_languages.begin(),
98 non_default_languages.end(),
99 ruleset_->rule().GetLanguage());
100 if (default_lang_it != non_default_languages.end()) {
101 non_default_languages.erase(default_lang_it);
102 }
103
104 for (std::vector<std::string>::const_iterator
105 lang_it = non_default_languages.begin();
106 lang_it != non_default_languages.end();
107 ++lang_it) {
108 EXPECT_TRUE(ruleset_->GetLanguageCodeRule(*lang_it).GetLanguage() !=
109 ruleset_->rule().GetLanguage());
110 }
111 }
112 }
113
114 } // namespace addressinput
115 } // namespace i18n
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698