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

Side by Side Diff: webkit/appcache/appcache_service_unittest.cc

Issue 8769024: base::Bind: Convert AppCacheHelper::DeleteAppCachesForOrigin. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Build fix. Created 9 years 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
« no previous file with comments | « webkit/appcache/appcache_service.cc ('k') | webkit/appcache/mock_appcache_service.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <string> 5 #include <string>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h"
8 #include "base/message_loop.h" 9 #include "base/message_loop.h"
9 #include "base/pickle.h" 10 #include "base/pickle.h"
10 #include "net/base/completion_callback.h" 11 #include "net/base/completion_callback.h"
11 #include "net/base/io_buffer.h" 12 #include "net/base/io_buffer.h"
12 #include "net/http/http_response_headers.h" 13 #include "net/http/http_response_headers.h"
13 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
14 #include "webkit/appcache/appcache_response.h" 15 #include "webkit/appcache/appcache_response.h"
15 #include "webkit/appcache/appcache_service.h" 16 #include "webkit/appcache/appcache_service.h"
16 #include "webkit/appcache/mock_appcache_storage.h" 17 #include "webkit/appcache/mock_appcache_storage.h"
17 18
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 83
83 84
84 class AppCacheServiceTest : public testing::Test { 85 class AppCacheServiceTest : public testing::Test {
85 public: 86 public:
86 AppCacheServiceTest() 87 AppCacheServiceTest()
87 : kOrigin("http://hello/"), 88 : kOrigin("http://hello/"),
88 kManifestUrl(kOrigin.Resolve("manifest")), 89 kManifestUrl(kOrigin.Resolve("manifest")),
89 service_(new AppCacheService(NULL)), 90 service_(new AppCacheService(NULL)),
90 delete_result_(net::OK), delete_completion_count_(0), 91 delete_result_(net::OK), delete_completion_count_(0),
91 ALLOW_THIS_IN_INITIALIZER_LIST(deletion_callback_( 92 ALLOW_THIS_IN_INITIALIZER_LIST(deletion_callback_(
92 this, &AppCacheServiceTest::OnDeleteAppCachesComplete)) { 93 base::Bind(&AppCacheServiceTest::OnDeleteAppCachesComplete,
94 base::Unretained(this)))) {
93 // Setup to use mock storage. 95 // Setup to use mock storage.
94 service_->storage_.reset(new MockAppCacheStorage(service_.get())); 96 service_->storage_.reset(new MockAppCacheStorage(service_.get()));
95 } 97 }
96 98
97 void OnDeleteAppCachesComplete(int result) { 99 void OnDeleteAppCachesComplete(int result) {
98 delete_result_ = result; 100 delete_result_ = result;
99 ++delete_completion_count_; 101 ++delete_completion_count_;
100 } 102 }
101 103
102 MockAppCacheStorage* mock_storage() { 104 MockAppCacheStorage* mock_storage() {
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 info->Persist(pickle, kSkipTransientHeaders, kTruncated); 167 info->Persist(pickle, kSkipTransientHeaders, kTruncated);
166 return pickle->size(); 168 return pickle->size();
167 } 169 }
168 170
169 const GURL kOrigin; 171 const GURL kOrigin;
170 const GURL kManifestUrl; 172 const GURL kManifestUrl;
171 173
172 scoped_ptr<AppCacheService> service_; 174 scoped_ptr<AppCacheService> service_;
173 int delete_result_; 175 int delete_result_;
174 int delete_completion_count_; 176 int delete_completion_count_;
175 net::OldCompletionCallbackImpl<AppCacheServiceTest> deletion_callback_; 177 net::CompletionCallback deletion_callback_;
176 }; 178 };
177 179
178 TEST_F(AppCacheServiceTest, DeleteAppCachesForOrigin) { 180 TEST_F(AppCacheServiceTest, DeleteAppCachesForOrigin) {
179 // Without giving mock storage simiulated info, should fail. 181 // Without giving mock storage simiulated info, should fail.
180 service_->DeleteAppCachesForOrigin(kOrigin, &deletion_callback_); 182 service_->DeleteAppCachesForOrigin(kOrigin, deletion_callback_);
181 EXPECT_EQ(0, delete_completion_count_); 183 EXPECT_EQ(0, delete_completion_count_);
182 MessageLoop::current()->RunAllPending(); 184 MessageLoop::current()->RunAllPending();
183 EXPECT_EQ(1, delete_completion_count_); 185 EXPECT_EQ(1, delete_completion_count_);
184 EXPECT_EQ(net::ERR_FAILED, delete_result_); 186 EXPECT_EQ(net::ERR_FAILED, delete_result_);
185 delete_completion_count_ = 0; 187 delete_completion_count_ = 0;
186 188
187 // Should succeed given an empty info collection. 189 // Should succeed given an empty info collection.
188 mock_storage()->SimulateGetAllInfo(new AppCacheInfoCollection); 190 mock_storage()->SimulateGetAllInfo(new AppCacheInfoCollection);
189 service_->DeleteAppCachesForOrigin(kOrigin, &deletion_callback_); 191 service_->DeleteAppCachesForOrigin(kOrigin, deletion_callback_);
190 EXPECT_EQ(0, delete_completion_count_); 192 EXPECT_EQ(0, delete_completion_count_);
191 MessageLoop::current()->RunAllPending(); 193 MessageLoop::current()->RunAllPending();
192 EXPECT_EQ(1, delete_completion_count_); 194 EXPECT_EQ(1, delete_completion_count_);
193 EXPECT_EQ(net::OK, delete_result_); 195 EXPECT_EQ(net::OK, delete_result_);
194 delete_completion_count_ = 0; 196 delete_completion_count_ = 0;
195 197
196 scoped_refptr<AppCacheInfoCollection> info(new AppCacheInfoCollection); 198 scoped_refptr<AppCacheInfoCollection> info(new AppCacheInfoCollection);
197 199
198 // Should succeed given a non-empty info collection. 200 // Should succeed given a non-empty info collection.
199 AppCacheInfo mock_manifest_1; 201 AppCacheInfo mock_manifest_1;
200 AppCacheInfo mock_manifest_2; 202 AppCacheInfo mock_manifest_2;
201 AppCacheInfo mock_manifest_3; 203 AppCacheInfo mock_manifest_3;
202 mock_manifest_1.manifest_url = kOrigin.Resolve("manifest1"); 204 mock_manifest_1.manifest_url = kOrigin.Resolve("manifest1");
203 mock_manifest_2.manifest_url = kOrigin.Resolve("manifest2"); 205 mock_manifest_2.manifest_url = kOrigin.Resolve("manifest2");
204 mock_manifest_3.manifest_url = kOrigin.Resolve("manifest3"); 206 mock_manifest_3.manifest_url = kOrigin.Resolve("manifest3");
205 AppCacheInfoVector info_vector; 207 AppCacheInfoVector info_vector;
206 info_vector.push_back(mock_manifest_1); 208 info_vector.push_back(mock_manifest_1);
207 info_vector.push_back(mock_manifest_2); 209 info_vector.push_back(mock_manifest_2);
208 info_vector.push_back(mock_manifest_3); 210 info_vector.push_back(mock_manifest_3);
209 info->infos_by_origin[kOrigin] = info_vector; 211 info->infos_by_origin[kOrigin] = info_vector;
210 mock_storage()->SimulateGetAllInfo(info); 212 mock_storage()->SimulateGetAllInfo(info);
211 service_->DeleteAppCachesForOrigin(kOrigin, &deletion_callback_); 213 service_->DeleteAppCachesForOrigin(kOrigin, deletion_callback_);
212 EXPECT_EQ(0, delete_completion_count_); 214 EXPECT_EQ(0, delete_completion_count_);
213 MessageLoop::current()->RunAllPending(); 215 MessageLoop::current()->RunAllPending();
214 EXPECT_EQ(1, delete_completion_count_); 216 EXPECT_EQ(1, delete_completion_count_);
215 EXPECT_EQ(net::OK, delete_result_); 217 EXPECT_EQ(net::OK, delete_result_);
216 delete_completion_count_ = 0; 218 delete_completion_count_ = 0;
217 219
218 // Should fail if storage fails to delete. 220 // Should fail if storage fails to delete.
219 info->infos_by_origin[kOrigin] = info_vector; 221 info->infos_by_origin[kOrigin] = info_vector;
220 mock_storage()->SimulateGetAllInfo(info); 222 mock_storage()->SimulateGetAllInfo(info);
221 mock_storage()->SimulateMakeGroupObsoleteFailure(); 223 mock_storage()->SimulateMakeGroupObsoleteFailure();
222 service_->DeleteAppCachesForOrigin(kOrigin, &deletion_callback_); 224 service_->DeleteAppCachesForOrigin(kOrigin, deletion_callback_);
223 EXPECT_EQ(0, delete_completion_count_); 225 EXPECT_EQ(0, delete_completion_count_);
224 MessageLoop::current()->RunAllPending(); 226 MessageLoop::current()->RunAllPending();
225 EXPECT_EQ(1, delete_completion_count_); 227 EXPECT_EQ(1, delete_completion_count_);
226 EXPECT_EQ(net::ERR_FAILED, delete_result_); 228 EXPECT_EQ(net::ERR_FAILED, delete_result_);
227 delete_completion_count_ = 0; 229 delete_completion_count_ = 0;
228 230
229 // Should complete with abort error if the service is deleted 231 // Should complete with abort error if the service is deleted
230 // prior to a delete completion. 232 // prior to a delete completion.
231 service_->DeleteAppCachesForOrigin(kOrigin, &deletion_callback_); 233 service_->DeleteAppCachesForOrigin(kOrigin, deletion_callback_);
232 EXPECT_EQ(0, delete_completion_count_); 234 EXPECT_EQ(0, delete_completion_count_);
233 service_.reset(); // kill it 235 service_.reset(); // kill it
234 EXPECT_EQ(1, delete_completion_count_); 236 EXPECT_EQ(1, delete_completion_count_);
235 EXPECT_EQ(net::ERR_ABORTED, delete_result_); 237 EXPECT_EQ(net::ERR_ABORTED, delete_result_);
236 delete_completion_count_ = 0; 238 delete_completion_count_ = 0;
237 239
238 // Let any tasks lingering from the sudden deletion run and verify 240 // Let any tasks lingering from the sudden deletion run and verify
239 // no other completion calls occur. 241 // no other completion calls occur.
240 MessageLoop::current()->RunAllPending(); 242 MessageLoop::current()->RunAllPending();
241 EXPECT_EQ(0, delete_completion_count_); 243 EXPECT_EQ(0, delete_completion_count_);
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 MessageLoop::current()->RunAllPending(); 308 MessageLoop::current()->RunAllPending();
307 EXPECT_EQ(0, CountPendingHelpers()); 309 EXPECT_EQ(0, CountPendingHelpers());
308 EXPECT_FALSE(IsGroupStored(kManifestUrl)); 310 EXPECT_FALSE(IsGroupStored(kManifestUrl));
309 ResetStorage(); 311 ResetStorage();
310 312
311 service_.reset(); // Clean up. 313 service_.reset(); // Clean up.
312 MessageLoop::current()->RunAllPending(); 314 MessageLoop::current()->RunAllPending();
313 } 315 }
314 316
315 } // namespace appcache 317 } // namespace appcache
OLDNEW
« no previous file with comments | « webkit/appcache/appcache_service.cc ('k') | webkit/appcache/mock_appcache_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698