OLD | NEW |
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 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 Retriever bad_retriever(FakeDownloader::kFakeDataUrl, | 115 Retriever bad_retriever(FakeDownloader::kFakeDataUrl, |
116 scoped_ptr<Downloader>(new FaultyDownloader), | 116 scoped_ptr<Downloader>(new FaultyDownloader), |
117 scoped_ptr<Storage>(new FakeStorage)); | 117 scoped_ptr<Storage>(new FakeStorage)); |
118 bad_retriever.Retrieve(kKey, BuildCallback()); | 118 bad_retriever.Retrieve(kKey, BuildCallback()); |
119 | 119 |
120 EXPECT_FALSE(success_); | 120 EXPECT_FALSE(success_); |
121 EXPECT_EQ(kKey, key_); | 121 EXPECT_EQ(kKey, key_); |
122 EXPECT_TRUE(data_.empty()); | 122 EXPECT_TRUE(data_.empty()); |
123 } | 123 } |
124 | 124 |
| 125 TEST_F(RetrieverTest, FaultyDownloaderFallback) { |
| 126 Retriever bad_retriever(FakeDownloader::kFakeDataUrl, |
| 127 scoped_ptr<Downloader>(new FaultyDownloader), |
| 128 scoped_ptr<Storage>(new FakeStorage)); |
| 129 const char kFallbackDataKey[] = "data/US"; |
| 130 bad_retriever.Retrieve(kFallbackDataKey, BuildCallback()); |
| 131 |
| 132 EXPECT_TRUE(success_); |
| 133 EXPECT_EQ(kFallbackDataKey, key_); |
| 134 EXPECT_FALSE(data_.empty()); |
| 135 EXPECT_NE(kEmptyData, data_); |
| 136 } |
| 137 |
125 // The downloader that doesn't get back to you. | 138 // The downloader that doesn't get back to you. |
126 class HangingDownloader : public Downloader { | 139 class HangingDownloader : public Downloader { |
127 public: | 140 public: |
128 HangingDownloader() {} | 141 HangingDownloader() {} |
129 virtual ~HangingDownloader() {} | 142 virtual ~HangingDownloader() {} |
130 | 143 |
131 // Downloader implementation. | 144 // Downloader implementation. |
132 virtual void Download(const std::string& url, | 145 virtual void Download(const std::string& url, |
133 scoped_ptr<Callback> downloaded) {} | 146 scoped_ptr<Callback> downloaded) {} |
134 }; | 147 }; |
135 | 148 |
136 TEST_F(RetrieverTest, RequestsDontStack) { | 149 TEST_F(RetrieverTest, RequestsDontStack) { |
137 Retriever slow_retriever(FakeDownloader::kFakeDataUrl, | 150 Retriever slow_retriever(FakeDownloader::kFakeDataUrl, |
138 scoped_ptr<Downloader>(new HangingDownloader), | 151 scoped_ptr<Downloader>(new HangingDownloader), |
139 scoped_ptr<Storage>(new FakeStorage)); | 152 scoped_ptr<Storage>(new FakeStorage)); |
140 | 153 |
141 slow_retriever.Retrieve(kKey, BuildCallback()); | 154 slow_retriever.Retrieve(kKey, BuildCallback()); |
142 EXPECT_FALSE(success_); | 155 EXPECT_FALSE(success_); |
143 EXPECT_TRUE(key_.empty()); | 156 EXPECT_TRUE(key_.empty()); |
144 | 157 |
145 EXPECT_NO_FATAL_FAILURE(slow_retriever.Retrieve(kKey, BuildCallback())); | 158 EXPECT_NO_FATAL_FAILURE(slow_retriever.Retrieve(kKey, BuildCallback())); |
146 } | 159 } |
147 | 160 |
148 } // namespace | 161 } // namespace |
149 | 162 |
150 } // namespace addressinput | 163 } // namespace addressinput |
151 } // namespace i18n | 164 } // namespace i18n |
OLD | NEW |