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

Unified Diff: components/offline_pages/background/request_queue_store_unittest.cc

Issue 2093623003: [Offline pages] Hooking up SQL store to Offline RequestQueue (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adding a test for SQL store actually persisting requests across resets Created 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/common/chrome_constants.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/offline_pages/background/request_queue_store_unittest.cc
diff --git a/components/offline_pages/background/request_queue_store_unittest.cc b/components/offline_pages/background/request_queue_store_unittest.cc
index f5606698b2d8fdc4be5b505d7dca7f1ea3e6a544..32c6ab649fd4df6c7335d12614b8305a7425cc09 100644
--- a/components/offline_pages/background/request_queue_store_unittest.cc
+++ b/components/offline_pages/background/request_queue_store_unittest.cc
@@ -311,4 +311,32 @@ TYPED_TEST(RequestQueueStoreTest, ResetStore) {
ASSERT_TRUE(this->last_requests().empty());
}
+class RequestQueueStoreSQLTest
+ : public RequestQueueStoreTest<RequestQueueStoreSQLFactory> {};
+
+// Makes sure that persistent DB is actually persisting requests across store
+// restarts.
+TEST_F(RequestQueueStoreSQLTest, SaveCloseReopenRead) {
+ std::unique_ptr<RequestQueueStore> store(BuildStore());
+ base::Time creation_time = base::Time::Now();
+ SavePageRequest original_request(kRequestId, kUrl, kClientId, creation_time);
+ store->AddOrUpdateRequest(
+ original_request, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone,
+ base::Unretained(this)));
+ PumpLoop();
+ ClearResults();
+
+ // Resets the store, using the same temp directory. The contents should be
+ // intact. First reset is done separately to release DB lock.
+ store.reset();
+ store = BuildStore();
+ store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone,
+ base::Unretained(this)));
+ ASSERT_EQ(LastResult::kNone, this->last_result());
+ this->PumpLoop();
+ ASSERT_EQ(LastResult::kTrue, this->last_result());
+ ASSERT_EQ(1ul, this->last_requests().size());
+ ASSERT_TRUE(original_request == this->last_requests()[0]);
+}
+
} // offline_pages
« no previous file with comments | « chrome/common/chrome_constants.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698