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

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

Issue 1965633002: [Offline Pages] Introducing StorageManagerClient interface. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Simplifying interface per suggestion. 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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_storage_manager.h" 5 #include "components/offline_pages/offline_page_storage_manager.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
11 #include "base/time/time.h" 11 #include "base/time/time.h"
12 #include "components/offline_pages/client_policy_controller.h" 12 #include "components/offline_pages/client_policy_controller.h"
13 #include "components/offline_pages/offline_page_item.h" 13 #include "components/offline_pages/offline_page_item.h"
14 #include "components/offline_pages/offline_page_model.h" 14 #include "components/offline_pages/offline_page_storage_manager.h"
15 #include "components/offline_pages/offline_page_types.h" 15 #include "components/offline_pages/offline_page_types.h"
16 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
17 17
18 namespace offline_pages { 18 namespace offline_pages {
19 19
20 namespace { 20 namespace {
21 const char kTestClientNamespace[] = "CLIENT_NAMESPACE"; 21 const char kTestClientNamespace[] = "CLIENT_NAMESPACE";
22 const GURL kTestUrl("http://example.com"); 22 const GURL kTestUrl("http://example.com");
23 const GURL kTestUrl2("http://other.page.com"); 23 const GURL kTestUrl2("http://other.page.com");
24 const base::FilePath::CharType kFilePath[] = FILE_PATH_LITERAL("TEST_FILEPATH"); 24 const base::FilePath::CharType kFilePath[] = FILE_PATH_LITERAL("TEST_FILEPATH");
25 const ClientId kTestClientId1(kTestClientNamespace, "1234"); 25 const ClientId kTestClientId1(kTestClientNamespace, "1234");
26 const ClientId kTestClientId2(kTestClientNamespace, "5678"); 26 const ClientId kTestClientId2(kTestClientNamespace, "5678");
27 const int64_t kTestFileSize = 876543LL; 27 const int64_t kTestFileSize = 876543LL;
28 const int64_t kOfflineId = 1234LL; 28 const int64_t kOfflineId = 1234LL;
29 const int64_t kOfflineId2 = 2345LL; 29 const int64_t kOfflineId2 = 2345LL;
30 } // namespace 30 } // namespace
31 31
32 class OfflinePageTestModel : public OfflinePageModel { 32 class StorageManagerTestClient : public OfflinePageStorageManager::Client {
33 public: 33 public:
34 OfflinePageTestModel() : policy_controller_(new ClientPolicyController()) { 34 StorageManagerTestClient() {
35 // Manually adding pages for the fake model. 35 // Manually adding pages for the fake model.
36 // Only the first page is expired. 36 // Only the first page is expired.
37 pages_.clear(); 37 pages_.clear();
38 pages_.push_back(OfflinePageItem(kTestUrl, kOfflineId, kTestClientId1, 38 pages_.push_back(OfflinePageItem(kTestUrl, kOfflineId, kTestClientId1,
39 base::FilePath(kFilePath), kTestFileSize)); 39 base::FilePath(kFilePath), kTestFileSize));
40 pages_.push_back(OfflinePageItem(kTestUrl2, kOfflineId2, kTestClientId2, 40 pages_.push_back(OfflinePageItem(kTestUrl2, kOfflineId2, kTestClientId2,
41 base::FilePath(kFilePath), kTestFileSize)); 41 base::FilePath(kFilePath), kTestFileSize));
42 base::Time now = base::Time::Now(); 42 base::Time now = base::Time::Now();
43 pages_[0].last_access_time = now - base::TimeDelta::FromDays(10); 43 pages_[0].last_access_time = now - base::TimeDelta::FromDays(10);
44 pages_[1].last_access_time = now; 44 pages_[1].last_access_time = now;
45 } 45 }
46 46
47 void GetAllPages(const MultipleOfflinePageItemCallback& callback) override { 47 void GetAllPages(const MultipleOfflinePageItemCallback& callback) override {
48 callback.Run(pages_); 48 callback.Run(pages_);
49 } 49 }
50 50
51 void DeletePagesByOfflineId(const std::vector<int64_t>& offline_ids, 51 void DeletePagesByOfflineId(const std::vector<int64_t>& offline_ids,
52 const DeletePageCallback& callback) override { 52 const DeletePageCallback& callback) override {
53 callback.Run(DeletePageResult::SUCCESS); 53 callback.Run(DeletePageResult::SUCCESS);
54 } 54 }
55 55
56 ClientPolicyController* GetPolicyController() override {
57 return policy_controller_.get();
58 }
59
60 bool is_loaded() const override { return true; }
61
62 private: 56 private:
63 std::vector<OfflinePageItem> pages_; 57 std::vector<OfflinePageItem> pages_;
64 58
65 std::unique_ptr<ClientPolicyController> policy_controller_; 59 std::unique_ptr<ClientPolicyController> policy_controller_;
66 }; 60 };
67 61
68 class OfflinePageStorageManagerTest : public testing::Test { 62 class OfflinePageStorageManagerTest : public testing::Test {
69 public: 63 public:
70 OfflinePageStorageManagerTest(); 64 OfflinePageStorageManagerTest();
71 OfflinePageStorageManager* manager() { return manager_.get(); } 65 OfflinePageStorageManager* manager() { return manager_.get(); }
72 void OnPagesCleared(int pages_cleared_count, DeletePageResult result); 66 void OnPagesCleared(int pages_cleared_count, DeletePageResult result);
73 67
74 // testing::Test 68 // testing::Test
75 void SetUp() override; 69 void SetUp() override;
76 void TearDown() override; 70 void TearDown() override;
77 71
78 int last_cleared_page_count() const { return last_cleared_page_count_; } 72 int last_cleared_page_count() const { return last_cleared_page_count_; }
79 DeletePageResult last_delete_page_result() const { 73 DeletePageResult last_delete_page_result() const {
80 return last_delete_page_result_; 74 return last_delete_page_result_;
81 } 75 }
82 76
83 private: 77 private:
84 std::unique_ptr<OfflinePageStorageManager> manager_; 78 std::unique_ptr<OfflinePageStorageManager> manager_;
85 std::unique_ptr<OfflinePageModel> model_; 79 std::unique_ptr<OfflinePageStorageManager::Client> client_;
86 80
87 int last_cleared_page_count_; 81 int last_cleared_page_count_;
88 DeletePageResult last_delete_page_result_; 82 DeletePageResult last_delete_page_result_;
89 }; 83 };
90 84
91 OfflinePageStorageManagerTest::OfflinePageStorageManagerTest() 85 OfflinePageStorageManagerTest::OfflinePageStorageManagerTest()
92 : last_cleared_page_count_(0), 86 : last_cleared_page_count_(0),
93 last_delete_page_result_(DeletePageResult::SUCCESS) {} 87 last_delete_page_result_(DeletePageResult::SUCCESS) {}
94 88
95 void OfflinePageStorageManagerTest::SetUp() { 89 void OfflinePageStorageManagerTest::SetUp() {
96 model_.reset(new OfflinePageTestModel()); 90 client_.reset(new StorageManagerTestClient());
97 manager_.reset(new OfflinePageStorageManager(model_.get())); 91 manager_.reset(new OfflinePageStorageManager(client_.get(),
92 new ClientPolicyController()));
98 } 93 }
99 94
100 void OfflinePageStorageManagerTest::TearDown() { 95 void OfflinePageStorageManagerTest::TearDown() {
101 manager_.reset(); 96 manager_.reset();
102 model_.reset(); 97 client_.reset();
103 } 98 }
104 99
105 void OfflinePageStorageManagerTest::OnPagesCleared(int pages_cleared_count, 100 void OfflinePageStorageManagerTest::OnPagesCleared(int pages_cleared_count,
106 DeletePageResult result) { 101 DeletePageResult result) {
107 last_cleared_page_count_ = pages_cleared_count; 102 last_cleared_page_count_ = pages_cleared_count;
108 last_delete_page_result_ = result; 103 last_delete_page_result_ = result;
109 } 104 }
110 105
111 TEST_F(OfflinePageStorageManagerTest, TestClearPages) { 106 TEST_F(OfflinePageStorageManagerTest, TestClearPages) {
112 manager()->ClearPagesIfNeeded(base::Bind( 107 manager()->ClearPagesIfNeeded(base::Bind(
113 &OfflinePageStorageManagerTest::OnPagesCleared, base::Unretained(this))); 108 &OfflinePageStorageManagerTest::OnPagesCleared, base::Unretained(this)));
114 EXPECT_EQ(1, last_cleared_page_count()); 109 EXPECT_EQ(1, last_cleared_page_count());
115 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_page_result()); 110 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_page_result());
116 } 111 }
117 112
118 } // namespace offline_pages 113 } // namespace offline_pages
OLDNEW
« no previous file with comments | « components/offline_pages/offline_page_storage_manager.cc ('k') | components/offline_pages/offline_page_types.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698