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

Side by Side Diff: components/offline_pages/offline_page_metadata_store_impl_unittest.cc

Issue 1345043002: Update access info when an offline page is being visited (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Some more fixes Created 5 years, 3 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "components/offline_pages/offline_page_metadata_store_impl.h" 5 #include "components/offline_pages/offline_page_metadata_store_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/files/scoped_temp_dir.h" 9 #include "base/files/scoped_temp_dir.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 EXPECT_EQ(0U, offline_pages_.size()); 115 EXPECT_EQ(0U, offline_pages_.size());
116 } 116 }
117 117
118 // Adds metadata of an offline page into a store and then loads from the 118 // Adds metadata of an offline page into a store and then loads from the
119 // store to make sure the metadata is preserved. 119 // store to make sure the metadata is preserved.
120 TEST_F(OfflinePageMetadataStoreImplTest, AddOfflinePageThenLoad) { 120 TEST_F(OfflinePageMetadataStoreImplTest, AddOfflinePageThenLoad) {
121 scoped_ptr<OfflinePageMetadataStoreImpl> store(BuildStore()); 121 scoped_ptr<OfflinePageMetadataStoreImpl> store(BuildStore());
122 122
123 OfflinePageItem offline_page(GURL(kTestURL), kTestBookmarkId, 123 OfflinePageItem offline_page(GURL(kTestURL), kTestBookmarkId,
124 base::FilePath(kFilePath), kFileSize); 124 base::FilePath(kFilePath), kFileSize);
125 store->AddOfflinePage( 125 store->AddOrUpdateOfflinePage(
126 offline_page, 126 offline_page,
127 base::Bind(&OfflinePageMetadataStoreImplTest::UpdateCallback, 127 base::Bind(&OfflinePageMetadataStoreImplTest::UpdateCallback,
128 base::Unretained(this), ADD)); 128 base::Unretained(this), ADD));
129 PumpLoop(); 129 PumpLoop();
130 EXPECT_EQ(ADD, last_called_callback_); 130 EXPECT_EQ(ADD, last_called_callback_);
131 EXPECT_EQ(STATUS_TRUE, last_status_); 131 EXPECT_EQ(STATUS_TRUE, last_status_);
132 132
133 ClearResults(); 133 ClearResults();
134 store->Load(base::Bind(&OfflinePageMetadataStoreImplTest::LoadCallback, 134 store->Load(base::Bind(&OfflinePageMetadataStoreImplTest::LoadCallback,
135 base::Unretained(this))); 135 base::Unretained(this)));
(...skipping 11 matching lines...) Expand all
147 EXPECT_EQ(offline_page.last_access_time, offline_pages_[0].last_access_time); 147 EXPECT_EQ(offline_page.last_access_time, offline_pages_[0].last_access_time);
148 } 148 }
149 149
150 // Adds metadata of an offline page into a store and then opens the store 150 // Adds metadata of an offline page into a store and then opens the store
151 // again to make sure that stored metadata survives store restarts. 151 // again to make sure that stored metadata survives store restarts.
152 TEST_F(OfflinePageMetadataStoreImplTest, AddOfflinePageRestartLoad) { 152 TEST_F(OfflinePageMetadataStoreImplTest, AddOfflinePageRestartLoad) {
153 scoped_ptr<OfflinePageMetadataStoreImpl> store(BuildStore()); 153 scoped_ptr<OfflinePageMetadataStoreImpl> store(BuildStore());
154 154
155 OfflinePageItem offline_page(GURL(kTestURL), kTestBookmarkId, 155 OfflinePageItem offline_page(GURL(kTestURL), kTestBookmarkId,
156 base::FilePath(kFilePath), kFileSize); 156 base::FilePath(kFilePath), kFileSize);
157 store->AddOfflinePage( 157 store->AddOrUpdateOfflinePage(
158 offline_page, 158 offline_page,
159 base::Bind(&OfflinePageMetadataStoreImplTest::UpdateCallback, 159 base::Bind(&OfflinePageMetadataStoreImplTest::UpdateCallback,
160 base::Unretained(this), ADD)); 160 base::Unretained(this), ADD));
161 PumpLoop(); 161 PumpLoop();
162 EXPECT_EQ(ADD, last_called_callback_); 162 EXPECT_EQ(ADD, last_called_callback_);
163 EXPECT_EQ(STATUS_TRUE, last_status_); 163 EXPECT_EQ(STATUS_TRUE, last_status_);
164 164
165 // Reset the store first to ensure file lock is removed. 165 // Reset the store first to ensure file lock is removed.
166 store.reset(); 166 store.reset();
167 store = BuildStore().Pass(); 167 store = BuildStore().Pass();
168 ClearResults(); 168 ClearResults();
169 store->Load(base::Bind(&OfflinePageMetadataStoreImplTest::LoadCallback, 169 store->Load(base::Bind(&OfflinePageMetadataStoreImplTest::LoadCallback,
170 base::Unretained(this))); 170 base::Unretained(this)));
171 PumpLoop(); 171 PumpLoop();
172 172
173 EXPECT_EQ(LOAD, last_called_callback_); 173 EXPECT_EQ(LOAD, last_called_callback_);
174 EXPECT_EQ(STATUS_TRUE, last_status_); 174 EXPECT_EQ(STATUS_TRUE, last_status_);
175 EXPECT_EQ(1U, offline_pages_.size()); 175 EXPECT_EQ(1U, offline_pages_.size());
176 EXPECT_EQ(offline_page.url, offline_pages_[0].url); 176 EXPECT_EQ(offline_page.url, offline_pages_[0].url);
177 EXPECT_EQ(offline_page.bookmark_id, offline_pages_[0].bookmark_id); 177 EXPECT_EQ(offline_page.bookmark_id, offline_pages_[0].bookmark_id);
178 EXPECT_EQ(offline_page.version, offline_pages_[0].version); 178 EXPECT_EQ(offline_page.version, offline_pages_[0].version);
179 EXPECT_EQ(offline_page.file_path, offline_pages_[0].file_path); 179 EXPECT_EQ(offline_page.file_path, offline_pages_[0].file_path);
180 EXPECT_EQ(offline_page.file_size, offline_pages_[0].file_size); 180 EXPECT_EQ(offline_page.file_size, offline_pages_[0].file_size);
181 EXPECT_EQ(offline_page.creation_time, offline_pages_[0].creation_time); 181 EXPECT_EQ(offline_page.creation_time, offline_pages_[0].creation_time);
182 EXPECT_EQ(offline_page.last_access_time, offline_pages_[0].last_access_time); 182 EXPECT_EQ(offline_page.last_access_time, offline_pages_[0].last_access_time);
183 EXPECT_EQ(offline_page.access_count, offline_pages_[0].access_count);
183 } 184 }
184 185
185 // Tests removing offline page metadata from the store, for which it first adds 186 // Tests removing offline page metadata from the store, for which it first adds
186 // metadata of an offline page. 187 // metadata of an offline page.
187 TEST_F(OfflinePageMetadataStoreImplTest, RemoveOfflinePage) { 188 TEST_F(OfflinePageMetadataStoreImplTest, RemoveOfflinePage) {
188 scoped_ptr<OfflinePageMetadataStoreImpl> store(BuildStore()); 189 scoped_ptr<OfflinePageMetadataStoreImpl> store(BuildStore());
189 190
190 OfflinePageItem offline_page(GURL(kTestURL), kTestBookmarkId, 191 OfflinePageItem offline_page(GURL(kTestURL), kTestBookmarkId,
191 base::FilePath(kFilePath), kFileSize); 192 base::FilePath(kFilePath), kFileSize);
192 store->AddOfflinePage( 193 store->AddOrUpdateOfflinePage(
193 offline_page, 194 offline_page,
194 base::Bind(&OfflinePageMetadataStoreImplTest::UpdateCallback, 195 base::Bind(&OfflinePageMetadataStoreImplTest::UpdateCallback,
195 base::Unretained(this), ADD)); 196 base::Unretained(this), ADD));
196 store->Load(base::Bind(&OfflinePageMetadataStoreImplTest::LoadCallback, 197 store->Load(base::Bind(&OfflinePageMetadataStoreImplTest::LoadCallback,
197 base::Unretained(this))); 198 base::Unretained(this)));
198 std::vector<int64> ids_to_remove; 199 std::vector<int64> ids_to_remove;
199 ids_to_remove.push_back(offline_page.bookmark_id); 200 ids_to_remove.push_back(offline_page.bookmark_id);
200 store->RemoveOfflinePages( 201 store->RemoveOfflinePages(
201 ids_to_remove, 202 ids_to_remove,
202 base::Bind(&OfflinePageMetadataStoreImplTest::UpdateCallback, 203 base::Bind(&OfflinePageMetadataStoreImplTest::UpdateCallback,
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 // Adds metadata of multiple offline pages into a store and removes some. 246 // Adds metadata of multiple offline pages into a store and removes some.
246 TEST_F(OfflinePageMetadataStoreImplTest, AddRemoveMultipleOfflinePages) { 247 TEST_F(OfflinePageMetadataStoreImplTest, AddRemoveMultipleOfflinePages) {
247 scoped_ptr<OfflinePageMetadataStoreImpl> store(BuildStore()); 248 scoped_ptr<OfflinePageMetadataStoreImpl> store(BuildStore());
248 249
249 OfflinePageItem offline_page_1(GURL(kTestURL), kTestBookmarkId, 250 OfflinePageItem offline_page_1(GURL(kTestURL), kTestBookmarkId,
250 base::FilePath(kFilePath), kFileSize); 251 base::FilePath(kFilePath), kFileSize);
251 base::FilePath file_path_2 = 252 base::FilePath file_path_2 =
252 base::FilePath(FILE_PATH_LITERAL("//other.page.com.mhtml")); 253 base::FilePath(FILE_PATH_LITERAL("//other.page.com.mhtml"));
253 OfflinePageItem offline_page_2(GURL("https://other.page.com"), 5678LL, 254 OfflinePageItem offline_page_2(GURL("https://other.page.com"), 5678LL,
254 file_path_2, 12345, base::Time::Now()); 255 file_path_2, 12345, base::Time::Now());
255 store->AddOfflinePage( 256 store->AddOrUpdateOfflinePage(
256 offline_page_1, 257 offline_page_1,
257 base::Bind(&OfflinePageMetadataStoreImplTest::UpdateCallback, 258 base::Bind(&OfflinePageMetadataStoreImplTest::UpdateCallback,
258 base::Unretained(this), ADD)); 259 base::Unretained(this), ADD));
259 PumpLoop(); 260 PumpLoop();
260 EXPECT_EQ(ADD, last_called_callback_); 261 EXPECT_EQ(ADD, last_called_callback_);
261 EXPECT_EQ(STATUS_TRUE, last_status_); 262 EXPECT_EQ(STATUS_TRUE, last_status_);
262 263
263 ClearResults(); 264 ClearResults();
264 store->AddOfflinePage( 265 store->AddOrUpdateOfflinePage(
265 offline_page_2, 266 offline_page_2,
266 base::Bind(&OfflinePageMetadataStoreImplTest::UpdateCallback, 267 base::Bind(&OfflinePageMetadataStoreImplTest::UpdateCallback,
267 base::Unretained(this), ADD)); 268 base::Unretained(this), ADD));
268 PumpLoop(); 269 PumpLoop();
269 EXPECT_EQ(ADD, last_called_callback_); 270 EXPECT_EQ(ADD, last_called_callback_);
270 EXPECT_EQ(STATUS_TRUE, last_status_); 271 EXPECT_EQ(STATUS_TRUE, last_status_);
271 272
272 ClearResults(); 273 ClearResults();
273 store->Load(base::Bind(&OfflinePageMetadataStoreImplTest::LoadCallback, 274 store->Load(base::Bind(&OfflinePageMetadataStoreImplTest::LoadCallback,
274 base::Unretained(this))); 275 base::Unretained(this)));
(...skipping 24 matching lines...) Expand all
299 EXPECT_EQ(STATUS_TRUE, last_status_); 300 EXPECT_EQ(STATUS_TRUE, last_status_);
300 EXPECT_EQ(1U, offline_pages_.size()); 301 EXPECT_EQ(1U, offline_pages_.size());
301 EXPECT_EQ(offline_page_2.url, offline_pages_[0].url); 302 EXPECT_EQ(offline_page_2.url, offline_pages_[0].url);
302 EXPECT_EQ(offline_page_2.bookmark_id, offline_pages_[0].bookmark_id); 303 EXPECT_EQ(offline_page_2.bookmark_id, offline_pages_[0].bookmark_id);
303 EXPECT_EQ(offline_page_2.version, offline_pages_[0].version); 304 EXPECT_EQ(offline_page_2.version, offline_pages_[0].version);
304 EXPECT_EQ(offline_page_2.file_path, offline_pages_[0].file_path); 305 EXPECT_EQ(offline_page_2.file_path, offline_pages_[0].file_path);
305 EXPECT_EQ(offline_page_2.file_size, offline_pages_[0].file_size); 306 EXPECT_EQ(offline_page_2.file_size, offline_pages_[0].file_size);
306 EXPECT_EQ(offline_page_2.creation_time, offline_pages_[0].creation_time); 307 EXPECT_EQ(offline_page_2.creation_time, offline_pages_[0].creation_time);
307 EXPECT_EQ(offline_page_2.last_access_time, 308 EXPECT_EQ(offline_page_2.last_access_time,
308 offline_pages_[0].last_access_time); 309 offline_pages_[0].last_access_time);
310 EXPECT_EQ(offline_page_2.access_count, offline_pages_[0].access_count);
311 }
312
313 // Tests updating offline page metadata from the store.
314 TEST_F(OfflinePageMetadataStoreImplTest, UpdateOfflinePage) {
315 scoped_ptr<OfflinePageMetadataStoreImpl> store(BuildStore());
316
317 // First, adds a fresh page.
318 OfflinePageItem offline_page(GURL(kTestURL), kTestBookmarkId,
319 base::FilePath(kFilePath), kFileSize);
320 store->AddOrUpdateOfflinePage(
321 offline_page,
322 base::Bind(&OfflinePageMetadataStoreImplTest::UpdateCallback,
323 base::Unretained(this), ADD));
324 PumpLoop();
325 EXPECT_EQ(ADD, last_called_callback_);
326 EXPECT_EQ(STATUS_TRUE, last_status_);
327
328 ClearResults();
329 store->Load(base::Bind(&OfflinePageMetadataStoreImplTest::LoadCallback,
330 base::Unretained(this)));
331 PumpLoop();
332
333 EXPECT_EQ(LOAD, last_called_callback_);
334 EXPECT_EQ(STATUS_TRUE, last_status_);
335 EXPECT_EQ(1U, offline_pages_.size());
336 EXPECT_EQ(offline_page.url, offline_pages_[0].url);
337 EXPECT_EQ(offline_page.bookmark_id, offline_pages_[0].bookmark_id);
338 EXPECT_EQ(offline_page.version, offline_pages_[0].version);
339 EXPECT_EQ(offline_page.file_path, offline_pages_[0].file_path);
340 EXPECT_EQ(offline_page.file_size, offline_pages_[0].file_size);
341 EXPECT_EQ(offline_page.creation_time, offline_pages_[0].creation_time);
342 EXPECT_EQ(offline_page.last_access_time, offline_pages_[0].last_access_time);
343 EXPECT_EQ(offline_page.access_count, offline_pages_[0].access_count);
344
345 // Then updates some data.
346 offline_page.file_size = kFileSize + 1;
347 offline_page.access_count++;
348 store->AddOrUpdateOfflinePage(
349 offline_page,
350 base::Bind(&OfflinePageMetadataStoreImplTest::UpdateCallback,
351 base::Unretained(this), ADD));
352 PumpLoop();
353 EXPECT_EQ(ADD, last_called_callback_);
354 EXPECT_EQ(STATUS_TRUE, last_status_);
355
356 ClearResults();
357 store->Load(base::Bind(&OfflinePageMetadataStoreImplTest::LoadCallback,
358 base::Unretained(this)));
359 PumpLoop();
360
361 EXPECT_EQ(LOAD, last_called_callback_);
362 EXPECT_EQ(STATUS_TRUE, last_status_);
363 EXPECT_EQ(1U, offline_pages_.size());
364 EXPECT_EQ(offline_page.url, offline_pages_[0].url);
365 EXPECT_EQ(offline_page.bookmark_id, offline_pages_[0].bookmark_id);
366 EXPECT_EQ(offline_page.version, offline_pages_[0].version);
367 EXPECT_EQ(offline_page.file_path, offline_pages_[0].file_path);
368 EXPECT_EQ(offline_page.file_size, offline_pages_[0].file_size);
369 EXPECT_EQ(offline_page.creation_time, offline_pages_[0].creation_time);
370 EXPECT_EQ(offline_page.last_access_time, offline_pages_[0].last_access_time);
371 EXPECT_EQ(offline_page.access_count, offline_pages_[0].access_count);
309 } 372 }
310 373
311 } // namespace 374 } // namespace
312 375
313 } // namespace offline_pages 376 } // namespace offline_pages
OLDNEW
« no previous file with comments | « components/offline_pages/offline_page_metadata_store_impl.cc ('k') | components/offline_pages/offline_page_model.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698