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

Side by Side Diff: chrome/browser/component_updater/test/update_checker_unittest.cc

Issue 318143003: Make CUS interface more resilient by returning a copy of the data (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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 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 "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/compiler_specific.h" 6 #include "base/compiler_specific.h"
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 const std::string& error_message, 48 const std::string& error_message,
49 const UpdateResponse::Results& results); 49 const UpdateResponse::Results& results);
50 50
51 net::URLRequestContextGetter* context() { return context_.get(); } 51 net::URLRequestContextGetter* context() { return context_.get(); }
52 52
53 protected: 53 protected:
54 void Quit(); 54 void Quit();
55 void RunThreads(); 55 void RunThreads();
56 void RunThreadsUntilIdle(); 56 void RunThreadsUntilIdle();
57 57
58 CrxUpdateItem BuildCrxUpdateItem(); 58 scoped_ptr<CrxUpdateItem> BuildCrxUpdateItem();
59 59
60 scoped_ptr<UpdateChecker> update_checker_; 60 scoped_ptr<UpdateChecker> update_checker_;
61 61
62 scoped_ptr<InterceptorFactory> interceptor_factory_; 62 scoped_ptr<InterceptorFactory> interceptor_factory_;
63 URLRequestPostInterceptor* post_interceptor_; // Owned by the factory. 63 URLRequestPostInterceptor* post_interceptor_; // Owned by the factory.
64 64
65 int error_; 65 int error_;
66 std::string error_message_; 66 std::string error_message_;
67 UpdateResponse::Results results_; 67 UpdateResponse::Results results_;
68 68
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 void UpdateCheckerTest::UpdateCheckComplete( 135 void UpdateCheckerTest::UpdateCheckComplete(
136 int error, 136 int error,
137 const std::string& error_message, 137 const std::string& error_message,
138 const UpdateResponse::Results& results) { 138 const UpdateResponse::Results& results) {
139 error_ = error; 139 error_ = error;
140 error_message_ = error_message; 140 error_message_ = error_message;
141 results_ = results; 141 results_ = results;
142 Quit(); 142 Quit();
143 } 143 }
144 144
145 CrxUpdateItem UpdateCheckerTest::BuildCrxUpdateItem() { 145 scoped_ptr<CrxUpdateItem> UpdateCheckerTest::BuildCrxUpdateItem() {
146 CrxComponent crx_component; 146 CrxComponent crx_component;
147 crx_component.name = "test_jebg"; 147 crx_component.name = "test_jebg";
148 crx_component.pk_hash.assign(jebg_hash, jebg_hash + arraysize(jebg_hash)); 148 crx_component.pk_hash.assign(jebg_hash, jebg_hash + arraysize(jebg_hash));
149 crx_component.installer = NULL; 149 crx_component.installer = NULL;
150 crx_component.version = base::Version("0.9"); 150 crx_component.version = base::Version("0.9");
151 crx_component.fingerprint = "fp1"; 151 crx_component.fingerprint = "fp1";
152 152
153 CrxUpdateItem crx_update_item; 153 scoped_ptr<CrxUpdateItem> crx_update_item(new CrxUpdateItem());
154 crx_update_item.status = CrxUpdateItem::kNew; 154 crx_update_item->status = CrxUpdateItem::kNew;
155 crx_update_item.id = "jebgalgnebhfojomionfpkfelancnnkf"; 155 crx_update_item->id = "jebgalgnebhfojomionfpkfelancnnkf";
156 crx_update_item.component = crx_component; 156 crx_update_item->component = crx_component;
157 157
158 return crx_update_item; 158 return crx_update_item.Pass();
159 } 159 }
160 160
161 TEST_F(UpdateCheckerTest, UpdateCheckSuccess) { 161 TEST_F(UpdateCheckerTest, UpdateCheckSuccess) {
162 EXPECT_TRUE(post_interceptor_->ExpectRequest( 162 EXPECT_TRUE(post_interceptor_->ExpectRequest(
163 new PartialMatch("updatecheck"), test_file("updatecheck_reply_1.xml"))); 163 new PartialMatch("updatecheck"), test_file("updatecheck_reply_1.xml")));
164 164
165 update_checker_ = 165 update_checker_ =
166 UpdateChecker::Create(GURL("https://localhost2/update2"), 166 UpdateChecker::Create(GURL("https://localhost2/update2"),
167 context(), 167 context(),
168 base::Bind(&UpdateCheckerTest::UpdateCheckComplete, 168 base::Bind(&UpdateCheckerTest::UpdateCheckComplete,
169 base::Unretained(this))).Pass(); 169 base::Unretained(this))).Pass();
170 170
171 CrxUpdateItem item(BuildCrxUpdateItem()); 171 scoped_ptr<CrxUpdateItem> item(BuildCrxUpdateItem());
172 std::vector<CrxUpdateItem*> items_to_check; 172 std::vector<CrxUpdateItem*> items_to_check;
173 items_to_check.push_back(&item); 173 items_to_check.push_back(item.get());
174 174
175 update_checker_->CheckForUpdates(items_to_check, "extra=\"params\""); 175 update_checker_->CheckForUpdates(items_to_check, "extra=\"params\"");
176 176
177 RunThreads(); 177 RunThreads();
178 178
179 EXPECT_EQ(1, post_interceptor_->GetHitCount()) 179 EXPECT_EQ(1, post_interceptor_->GetHitCount())
180 << post_interceptor_->GetRequestsAsString(); 180 << post_interceptor_->GetRequestsAsString();
181 EXPECT_EQ(1, post_interceptor_->GetCount()) 181 EXPECT_EQ(1, post_interceptor_->GetCount())
182 << post_interceptor_->GetRequestsAsString(); 182 << post_interceptor_->GetRequestsAsString();
183 183
(...skipping 27 matching lines...) Expand all
211 scoped_ptr<PartialMatch> request_matcher(new PartialMatch("updatecheck")); 211 scoped_ptr<PartialMatch> request_matcher(new PartialMatch("updatecheck"));
212 EXPECT_FALSE(post_interceptor_->ExpectRequest(request_matcher.get(), 212 EXPECT_FALSE(post_interceptor_->ExpectRequest(request_matcher.get(),
213 test_file("no such file"))); 213 test_file("no such file")));
214 214
215 update_checker_ = 215 update_checker_ =
216 UpdateChecker::Create(GURL("https://localhost2/update2"), 216 UpdateChecker::Create(GURL("https://localhost2/update2"),
217 context(), 217 context(),
218 base::Bind(&UpdateCheckerTest::UpdateCheckComplete, 218 base::Bind(&UpdateCheckerTest::UpdateCheckComplete,
219 base::Unretained(this))).Pass(); 219 base::Unretained(this))).Pass();
220 220
221 CrxUpdateItem item(BuildCrxUpdateItem()); 221 scoped_ptr<CrxUpdateItem> item(BuildCrxUpdateItem());
222 std::vector<CrxUpdateItem*> items_to_check; 222 std::vector<CrxUpdateItem*> items_to_check;
223 items_to_check.push_back(&item); 223 items_to_check.push_back(item.get());
224 224
225 update_checker_->CheckForUpdates(items_to_check, ""); 225 update_checker_->CheckForUpdates(items_to_check, "");
226 226
227 RunThreads(); 227 RunThreads();
228 228
229 EXPECT_EQ(0, post_interceptor_->GetHitCount()) 229 EXPECT_EQ(0, post_interceptor_->GetHitCount())
230 << post_interceptor_->GetRequestsAsString(); 230 << post_interceptor_->GetRequestsAsString();
231 EXPECT_EQ(1, post_interceptor_->GetCount()) 231 EXPECT_EQ(1, post_interceptor_->GetCount())
232 << post_interceptor_->GetRequestsAsString(); 232 << post_interceptor_->GetRequestsAsString();
233 233
234 EXPECT_NE(0, error_); 234 EXPECT_NE(0, error_);
235 EXPECT_STREQ("network error", error_message_.c_str()); 235 EXPECT_STREQ("network error", error_message_.c_str());
236 EXPECT_EQ(0ul, results_.list.size()); 236 EXPECT_EQ(0ul, results_.list.size());
237 } 237 }
238 238
239 } // namespace component_updater 239 } // namespace component_updater
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698