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

Unified Diff: components/offline_pages/offline_page_model_unittest.cc

Issue 1947323002: [Offline Pages] Implement OfflinePageStorageManager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix rebasing Created 4 years, 7 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
Index: components/offline_pages/offline_page_model_unittest.cc
diff --git a/components/offline_pages/offline_page_model_unittest.cc b/components/offline_pages/offline_page_model_unittest.cc
index ef5ad7f9f89fd491f1dfa1df1504fc79c5dc03d3..fa1b6f6976da8c921a580f962e155d1418a3872c 100644
--- a/components/offline_pages/offline_page_model_unittest.cc
+++ b/components/offline_pages/offline_page_model_unittest.cc
@@ -21,8 +21,11 @@
#include "base/test/test_mock_time_task_runner.h"
#include "base/thread_task_runner_handle.h"
#include "base/time/time.h"
+#include "components/offline_pages/client_policy_controller.h"
+#include "components/offline_pages/offline_page_client_policy.h"
#include "components/offline_pages/offline_page_feature.h"
#include "components/offline_pages/offline_page_item.h"
+#include "components/offline_pages/offline_page_storage_manager.h"
#include "components/offline_pages/offline_page_test_archiver.h"
#include "components/offline_pages/offline_page_test_store.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -94,6 +97,7 @@ class OfflinePageModelTest
void OnGetMultipleOfflinePageItemsResult(
MultipleOfflinePageItemResult* storage,
const MultipleOfflinePageItemResult& result);
+ void OnClearPageByStorageManager(int pages_cleared, DeletePageResult result);
// OfflinePageMetadataStore callbacks.
void OnStoreUpdateDone(bool /* success */);
@@ -162,6 +166,12 @@ class OfflinePageModelTest
const base::FilePath& last_archiver_path() { return last_archiver_path_; }
+ int last_cleared_pages_count() const { return last_cleared_pages_count_; }
+
+ DeletePageResult last_clear_page_result() const {
+ return last_clear_page_result_;
+ }
+
private:
scoped_refptr<base::TestMockTimeTaskRunner> task_runner_;
base::ThreadTaskRunnerHandle task_runner_handle_;
@@ -176,6 +186,8 @@ class OfflinePageModelTest
ClientId last_deleted_client_id_;
bool last_has_pages_result_;
CheckPagesExistOfflineResult last_pages_exist_result_;
+ int last_cleared_pages_count_;
+ DeletePageResult last_clear_page_result_;
};
OfflinePageModelTest::OfflinePageModelTest()
@@ -289,6 +301,7 @@ void OfflinePageModelTest::ResetResults() {
last_delete_result_ = DeletePageResult::CANCELLED;
last_archiver_path_.clear();
last_pages_exist_result_.clear();
+ last_cleared_pages_count_ = 0;
}
OfflinePageTestStore* OfflinePageModelTest::GetStore() {
@@ -381,6 +394,13 @@ void OfflinePageModelTest::OnGetMultipleOfflinePageItemsResult(
*storage = result;
}
+void OfflinePageModelTest::OnClearPageByStorageManager(
+ int pages_cleared,
+ DeletePageResult result) {
+ last_cleared_pages_count_ = pages_cleared;
+ last_clear_page_result_ = result;
+}
+
base::Optional<OfflinePageItem> OfflinePageModelTest::GetPagesByOnlineURL(
const GURL& online_url) {
MultipleOfflinePageItemResult result;
@@ -929,6 +949,40 @@ TEST_F(OfflinePageModelTest, SaveRetrieveMultipleClientIds) {
EXPECT_TRUE(id_set.find(offline2) != id_set.end());
}
+TEST_F(OfflinePageModelTest, ClearPagesFromOneSource) {
+ base::Time now = base::Time::Now();
+ base::TimeDelta expiration_period = model()
+ ->GetPolicyController()
+ ->GetPolicy(kTestClientNamespace)
+ .lifetime_policy.expiration_period;
+
+ SavePage(kTestUrl, kTestClientId1);
+ GetStore()->UpdateLastAccessTime(
+ last_save_offline_id(),
+ now - base::TimeDelta::FromDays(10) - expiration_period);
+ SavePage(kTestUrl2, kTestClientId2);
+ GetStore()->UpdateLastAccessTime(
+ last_save_offline_id(),
+ now - base::TimeDelta::FromDays(1) - expiration_period);
+ SavePage(kTestUrl3, kTestClientId3);
+ GetStore()->UpdateLastAccessTime(last_save_offline_id(), now);
+
+ ResetModel();
+
+ // Only first two pages are expired.
+ model()->GetStorageManager()->ClearPagesIfNeeded(base::Bind(
+ &OfflinePageModelTest::OnClearPageByStorageManager, AsWeakPtr()));
+
+ PumpLoop();
+
+ std::vector<OfflinePageItem> offline_pages = GetAllPages();
+
+ EXPECT_EQ(1UL, offline_pages.size());
+ EXPECT_EQ(1UL, GetStore()->GetAllPages().size());
+ EXPECT_EQ(2, last_cleared_pages_count());
+ EXPECT_EQ(DeletePageResult::SUCCESS, last_clear_page_result());
+}
+
TEST(CommandLineFlagsTest, OfflineBookmarks) {
// Disabled by default.
EXPECT_FALSE(offline_pages::IsOfflineBookmarksEnabled());
« no previous file with comments | « components/offline_pages/offline_page_model.cc ('k') | components/offline_pages/offline_page_storage_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698