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

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

Issue 137443009: libaddressinput - merge LookupKeyUtil into Retriever (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 11 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
1 // Copyright (C) 2013 Google Inc. 1 // Copyright (C) 2013 Google Inc.
2 // 2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); 3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with 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 5 // You may obtain a copy of the License at
6 // 6 //
7 // http://www.apache.org/licenses/LICENSE-2.0 7 // http://www.apache.org/licenses/LICENSE-2.0
8 // 8 //
9 // Unless required by applicable law or agreed to in writing, software 9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, 10 // distributed under the License is distributed on an "AS IS" BASIS,
(...skipping 11 matching lines...) Expand all
22 22
23 #include <gtest/gtest.h> 23 #include <gtest/gtest.h>
24 24
25 #include "fake_downloader.h" 25 #include "fake_downloader.h"
26 #include "fake_storage.h" 26 #include "fake_storage.h"
27 #include "region_data_constants.h" 27 #include "region_data_constants.h"
28 28
29 namespace i18n { 29 namespace i18n {
30 namespace addressinput { 30 namespace addressinput {
31 31
32 namespace {
33
34 const char kKey[] = "data/CA/AB--fr"; 32 const char kKey[] = "data/CA/AB--fr";
35 33
36 // Empty data that the downloader can return. 34 // Empty data that the downloader can return.
37 const char kEmptyData[] = "{}"; 35 const char kEmptyData[] = "{}";
38 36
39 // Tests for Retriever object. 37 // Tests for Retriever object.
40 class RetrieverTest : public testing::Test { 38 class RetrieverTest : public testing::Test {
41 protected: 39 protected:
42 RetrieverTest() 40 RetrieverTest()
43 : retriever_(FakeDownloader::kFakeDataUrl, 41 : success_(false),
44 scoped_ptr<Downloader>(new FakeDownloader),
45 scoped_ptr<Storage>(new FakeStorage)),
46 success_(false),
47 key_(), 42 key_(),
48 data_() {} 43 data_() {
44 ResetRetriever(FakeDownloader::kFakeDataUrl);
45 }
49 46
50 virtual ~RetrieverTest() {} 47 virtual ~RetrieverTest() {}
51 48
52 scoped_ptr<Retriever::Callback> BuildCallback() { 49 scoped_ptr<Retriever::Callback> BuildCallback() {
53 return ::i18n::addressinput::BuildCallback( 50 return ::i18n::addressinput::BuildCallback(
54 this, &RetrieverTest::OnDataReady); 51 this, &RetrieverTest::OnDataReady);
55 } 52 }
56 53
57 Retriever retriever_; 54 void ResetRetriever(const std::string& url) {
55 retriever_.reset(
56 new Retriever(url,
57 scoped_ptr<Downloader>(new FakeDownloader),
58 scoped_ptr<Storage>(new FakeStorage)));
59 }
60
61 std::string GetUrlForKey(const std::string& key) {
62 return retriever_->GetUrlForKey(key);
63 }
64
65 std::string GetKeyForUrl(const std::string& url) {
66 return retriever_->GetKeyForUrl(url);
67 }
68
69 scoped_ptr<Retriever> retriever_;
58 bool success_; 70 bool success_;
59 std::string key_; 71 std::string key_;
60 std::string data_; 72 std::string data_;
61 73
62 private: 74 private:
63 void OnDataReady(bool success, 75 void OnDataReady(bool success,
64 const std::string& key, 76 const std::string& key,
65 const std::string& data) { 77 const std::string& data) {
66 success_ = success; 78 success_ = success;
67 key_ = key; 79 key_ = key;
68 data_ = data; 80 data_ = data;
69 } 81 }
70 }; 82 };
71 83
72 TEST_F(RetrieverTest, RetrieveData) { 84 TEST_F(RetrieverTest, RetrieveData) {
73 retriever_.Retrieve(kKey, BuildCallback()); 85 retriever_->Retrieve(kKey, BuildCallback());
74 86
75 EXPECT_TRUE(success_); 87 EXPECT_TRUE(success_);
76 EXPECT_EQ(kKey, key_); 88 EXPECT_EQ(kKey, key_);
77 EXPECT_FALSE(data_.empty()); 89 EXPECT_FALSE(data_.empty());
78 EXPECT_NE(kEmptyData, data_); 90 EXPECT_NE(kEmptyData, data_);
79 } 91 }
80 92
81 TEST_F(RetrieverTest, ReadDataFromStorage) { 93 TEST_F(RetrieverTest, ReadDataFromStorage) {
82 retriever_.Retrieve(kKey, BuildCallback()); 94 retriever_->Retrieve(kKey, BuildCallback());
83 retriever_.Retrieve(kKey, BuildCallback()); 95 retriever_->Retrieve(kKey, BuildCallback());
84 96
85 EXPECT_TRUE(success_); 97 EXPECT_TRUE(success_);
86 EXPECT_EQ(kKey, key_); 98 EXPECT_EQ(kKey, key_);
87 EXPECT_FALSE(data_.empty()); 99 EXPECT_FALSE(data_.empty());
88 EXPECT_NE(kEmptyData, data_); 100 EXPECT_NE(kEmptyData, data_);
89 } 101 }
90 102
91 TEST_F(RetrieverTest, MissingKeyReturnsEmptyData) { 103 TEST_F(RetrieverTest, MissingKeyReturnsEmptyData) {
92 static const char kMissingKey[] = "junk"; 104 static const char kMissingKey[] = "junk";
93 105
94 retriever_.Retrieve(kMissingKey, BuildCallback()); 106 retriever_->Retrieve(kMissingKey, BuildCallback());
95 107
96 EXPECT_TRUE(success_); 108 EXPECT_TRUE(success_);
97 EXPECT_EQ(kMissingKey, key_); 109 EXPECT_EQ(kMissingKey, key_);
98 EXPECT_EQ(kEmptyData, data_); 110 EXPECT_EQ(kEmptyData, data_);
99 } 111 }
100 112
101 // The downloader that always fails. 113 // The downloader that always fails.
102 class FaultyDownloader : public Downloader { 114 class FaultyDownloader : public Downloader {
103 public: 115 public:
104 FaultyDownloader() {} 116 FaultyDownloader() {}
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 scoped_ptr<Downloader>(new HangingDownloader), 150 scoped_ptr<Downloader>(new HangingDownloader),
139 scoped_ptr<Storage>(new FakeStorage)); 151 scoped_ptr<Storage>(new FakeStorage));
140 152
141 slow_retriever.Retrieve(kKey, BuildCallback()); 153 slow_retriever.Retrieve(kKey, BuildCallback());
142 EXPECT_FALSE(success_); 154 EXPECT_FALSE(success_);
143 EXPECT_TRUE(key_.empty()); 155 EXPECT_TRUE(key_.empty());
144 156
145 EXPECT_NO_FATAL_FAILURE(slow_retriever.Retrieve(kKey, BuildCallback())); 157 EXPECT_NO_FATAL_FAILURE(slow_retriever.Retrieve(kKey, BuildCallback()));
146 } 158 }
147 159
148 } // namespace 160 TEST_F(RetrieverTest, GetUrlForKey) {
161 ResetRetriever("test:///");
162 EXPECT_EQ("test:///", GetUrlForKey(""));
163 EXPECT_EQ("test:///data", GetUrlForKey("data"));
164 EXPECT_EQ("test:///data/US", GetUrlForKey("data/US"));
165 EXPECT_EQ("test:///data/CA--fr", GetUrlForKey("data/CA--fr"));
166 }
167
168 TEST_F(RetrieverTest, GetKeyForUrl) {
169 ResetRetriever("test:///");
170 EXPECT_EQ("", GetKeyForUrl("test://"));
171 EXPECT_EQ("", GetKeyForUrl("http://www.google.com/"));
172 EXPECT_EQ("", GetKeyForUrl(""));
173 EXPECT_EQ("", GetKeyForUrl("test:///"));
174 EXPECT_EQ("data", GetKeyForUrl("test:///data"));
175 EXPECT_EQ("data/US", GetKeyForUrl("test:///data/US"));
176 EXPECT_EQ("data/CA--fr", GetKeyForUrl("test:///data/CA--fr"));
177 }
149 178
150 } // namespace addressinput 179 } // namespace addressinput
151 } // namespace i18n 180 } // namespace i18n
OLDNEW
« no previous file with comments | « third_party/libaddressinput/chromium/cpp/test/lookup_key_util_test.cc ('k') | third_party/libaddressinput/libaddressinput.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698