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

Side by Side Diff: components/offline_pages/core/client_policy_controller_unittest.cc

Issue 2858803002: [Offline Pages] Adding support for removed-on-cache-reset pages to query. (Closed)
Patch Set: reset offline_page_model.h Created 3 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
« no previous file with comments | « no previous file | components/offline_pages/core/offline_page_model_query.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 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/core/client_policy_controller.h" 5 #include "components/offline_pages/core/client_policy_controller.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h"
10 #include "base/time/time.h"
11 #include "components/offline_pages/core/client_namespace_constants.h" 9 #include "components/offline_pages/core/client_namespace_constants.h"
12 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
13 11
14 using LifetimeType = offline_pages::LifetimePolicy::LifetimeType; 12 using LifetimeType = offline_pages::LifetimePolicy::LifetimeType;
15 13
16 namespace offline_pages { 14 namespace offline_pages {
17 15
18 namespace { 16 namespace {
19 const char kUndefinedNamespace[] = "undefined"; 17 const char kUndefinedNamespace[] = "undefined";
20 18
21 bool isTemporary(const OfflinePageClientPolicy& policy) { 19 bool isTemporary(const OfflinePageClientPolicy& policy) {
22 return policy.lifetime_policy.lifetime_type == LifetimeType::TEMPORARY; 20 return policy.lifetime_policy.lifetime_type == LifetimeType::TEMPORARY;
23 } 21 }
24 } // namespace 22 } // namespace
25 23
26 class ClientPolicyControllerTest : public testing::Test { 24 class ClientPolicyControllerTest : public testing::Test {
27 public: 25 public:
28 ClientPolicyController* controller() { return controller_.get(); } 26 ClientPolicyController* controller() { return controller_.get(); }
29 27
30 // testing::Test 28 // testing::Test
31 void SetUp() override; 29 void SetUp() override;
32 void TearDown() override; 30 void TearDown() override;
33 31
34 protected: 32 protected:
33 void ExpectRemovedOnCacheReset(std::string name_space, bool expectation);
35 void ExpectDownloadSupport(std::string name_space, bool expectation); 34 void ExpectDownloadSupport(std::string name_space, bool expectation);
36 void ExpectRecentTab(std::string name_space, bool expectation); 35 void ExpectRecentTab(std::string name_space, bool expectation);
37 void ExpectOnlyOriginalTab(std::string name_space, bool expectation); 36 void ExpectOnlyOriginalTab(std::string name_space, bool expectation);
38 void ExpectDisabledWhenPrefetchDisabled(std::string name_space, 37 void ExpectDisabledWhenPrefetchDisabled(std::string name_space,
39 bool expectation); 38 bool expectation);
40 39
41 private: 40 private:
42 std::unique_ptr<ClientPolicyController> controller_; 41 std::unique_ptr<ClientPolicyController> controller_;
43 }; 42 };
44 43
45 void ClientPolicyControllerTest::SetUp() { 44 void ClientPolicyControllerTest::SetUp() {
46 controller_.reset(new ClientPolicyController()); 45 controller_.reset(new ClientPolicyController());
47 } 46 }
48 47
49 void ClientPolicyControllerTest::TearDown() { 48 void ClientPolicyControllerTest::TearDown() {
50 controller_.reset(); 49 controller_.reset();
51 } 50 }
52 51
52 void ClientPolicyControllerTest::ExpectRemovedOnCacheReset(
53 std::string name_space,
54 bool expectation) {
55 EXPECT_EQ(expectation, controller()->IsRemovedOnCacheReset(name_space))
56 << "Namespace " << name_space
57 << " had incorrect removed_on_cache_reset setting when directly checking"
58 " is removed-on-cache-reset.";
59 }
60
53 void ClientPolicyControllerTest::ExpectDownloadSupport(std::string name_space, 61 void ClientPolicyControllerTest::ExpectDownloadSupport(std::string name_space,
54 bool expectation) { 62 bool expectation) {
55 std::vector<std::string> cache = 63 std::vector<std::string> cache =
56 controller()->GetNamespacesSupportedByDownload(); 64 controller()->GetNamespacesSupportedByDownload();
57 auto result = std::find(cache.begin(), cache.end(), name_space); 65 auto result = std::find(cache.begin(), cache.end(), name_space);
58 EXPECT_EQ(expectation, result != cache.end()) 66 EXPECT_EQ(expectation, result != cache.end())
59 << "Namespace " << name_space 67 << "Namespace " << name_space
60 << " had incorrect download support when getting namespaces supported by " 68 << " had incorrect download support when getting namespaces supported by"
61 "download."; 69 " download.";
62 EXPECT_EQ(expectation, controller()->IsSupportedByDownload(name_space)) 70 EXPECT_EQ(expectation, controller()->IsSupportedByDownload(name_space))
63 << "Namespace " << name_space 71 << "Namespace " << name_space
64 << " had incorrect download support when directly checking if supported " 72 << " had incorrect download support when directly checking if supported"
65 "by download."; 73 " by download.";
66 } 74 }
67 75
68 void ClientPolicyControllerTest::ExpectRecentTab(std::string name_space, 76 void ClientPolicyControllerTest::ExpectRecentTab(std::string name_space,
69 bool expectation) { 77 bool expectation) {
70 std::vector<std::string> cache = 78 std::vector<std::string> cache =
71 controller()->GetNamespacesShownAsRecentlyVisitedSite(); 79 controller()->GetNamespacesShownAsRecentlyVisitedSite();
72 auto result = std::find(cache.begin(), cache.end(), name_space); 80 auto result = std::find(cache.begin(), cache.end(), name_space);
73 EXPECT_EQ(expectation, result != cache.end()) 81 EXPECT_EQ(expectation, result != cache.end())
74 << "Namespace " << name_space 82 << "Namespace " << name_space
75 << " had incorrect recent tab support when getting namespaces shown as a" 83 << " had incorrect recent tab support when getting namespaces shown as a"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 << "Namespace " << name_space 118 << "Namespace " << name_space
111 << " had incorrect download support when directly checking if disabled" 119 << " had incorrect download support when directly checking if disabled"
112 " when prefetch settings are disabled."; 120 " when prefetch settings are disabled.";
113 } 121 }
114 122
115 TEST_F(ClientPolicyControllerTest, FallbackTest) { 123 TEST_F(ClientPolicyControllerTest, FallbackTest) {
116 OfflinePageClientPolicy policy = controller()->GetPolicy(kUndefinedNamespace); 124 OfflinePageClientPolicy policy = controller()->GetPolicy(kUndefinedNamespace);
117 EXPECT_EQ(policy.name_space, kDefaultNamespace); 125 EXPECT_EQ(policy.name_space, kDefaultNamespace);
118 EXPECT_TRUE(isTemporary(policy)); 126 EXPECT_TRUE(isTemporary(policy));
119 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kUndefinedNamespace)); 127 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kUndefinedNamespace));
128 ExpectRemovedOnCacheReset(kUndefinedNamespace, true);
120 ExpectDownloadSupport(kUndefinedNamespace, false); 129 ExpectDownloadSupport(kUndefinedNamespace, false);
121 ExpectRecentTab(kUndefinedNamespace, false); 130 ExpectRecentTab(kUndefinedNamespace, false);
122 ExpectOnlyOriginalTab(kUndefinedNamespace, false); 131 ExpectOnlyOriginalTab(kUndefinedNamespace, false);
123 ExpectDisabledWhenPrefetchDisabled(kUndefinedNamespace, false); 132 ExpectDisabledWhenPrefetchDisabled(kUndefinedNamespace, false);
124 } 133 }
125 134
126 TEST_F(ClientPolicyControllerTest, CheckBookmarkDefined) { 135 TEST_F(ClientPolicyControllerTest, CheckBookmarkDefined) {
127 OfflinePageClientPolicy policy = controller()->GetPolicy(kBookmarkNamespace); 136 OfflinePageClientPolicy policy = controller()->GetPolicy(kBookmarkNamespace);
128 EXPECT_EQ(policy.name_space, kBookmarkNamespace); 137 EXPECT_EQ(policy.name_space, kBookmarkNamespace);
129 EXPECT_TRUE(isTemporary(policy)); 138 EXPECT_TRUE(isTemporary(policy));
130 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kBookmarkNamespace)); 139 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kBookmarkNamespace));
140 ExpectRemovedOnCacheReset(kBookmarkNamespace, true);
131 ExpectDownloadSupport(kBookmarkNamespace, false); 141 ExpectDownloadSupport(kBookmarkNamespace, false);
132 ExpectRecentTab(kBookmarkNamespace, false); 142 ExpectRecentTab(kBookmarkNamespace, false);
133 ExpectOnlyOriginalTab(kBookmarkNamespace, false); 143 ExpectOnlyOriginalTab(kBookmarkNamespace, false);
134 ExpectDisabledWhenPrefetchDisabled(kBookmarkNamespace, false); 144 ExpectDisabledWhenPrefetchDisabled(kBookmarkNamespace, false);
135 } 145 }
136 146
137 TEST_F(ClientPolicyControllerTest, CheckLastNDefined) { 147 TEST_F(ClientPolicyControllerTest, CheckLastNDefined) {
138 OfflinePageClientPolicy policy = controller()->GetPolicy(kLastNNamespace); 148 OfflinePageClientPolicy policy = controller()->GetPolicy(kLastNNamespace);
139 EXPECT_EQ(policy.name_space, kLastNNamespace); 149 EXPECT_EQ(policy.name_space, kLastNNamespace);
140 EXPECT_TRUE(isTemporary(policy)); 150 EXPECT_TRUE(isTemporary(policy));
141 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kLastNNamespace)); 151 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kLastNNamespace));
152 ExpectRemovedOnCacheReset(kLastNNamespace, true);
142 ExpectDownloadSupport(kLastNNamespace, false); 153 ExpectDownloadSupport(kLastNNamespace, false);
143 ExpectRecentTab(kLastNNamespace, true); 154 ExpectRecentTab(kLastNNamespace, true);
144 ExpectOnlyOriginalTab(kLastNNamespace, true); 155 ExpectOnlyOriginalTab(kLastNNamespace, true);
145 ExpectDisabledWhenPrefetchDisabled(kLastNNamespace, false); 156 ExpectDisabledWhenPrefetchDisabled(kLastNNamespace, false);
146 } 157 }
147 158
148 TEST_F(ClientPolicyControllerTest, CheckAsyncDefined) { 159 TEST_F(ClientPolicyControllerTest, CheckAsyncDefined) {
149 OfflinePageClientPolicy policy = controller()->GetPolicy(kAsyncNamespace); 160 OfflinePageClientPolicy policy = controller()->GetPolicy(kAsyncNamespace);
150 EXPECT_EQ(policy.name_space, kAsyncNamespace); 161 EXPECT_EQ(policy.name_space, kAsyncNamespace);
151 EXPECT_FALSE(isTemporary(policy)); 162 EXPECT_FALSE(isTemporary(policy));
152 EXPECT_FALSE(controller()->IsRemovedOnCacheReset(kAsyncNamespace)); 163 EXPECT_FALSE(controller()->IsRemovedOnCacheReset(kAsyncNamespace));
164 ExpectRemovedOnCacheReset(kAsyncNamespace, false);
153 ExpectDownloadSupport(kAsyncNamespace, true); 165 ExpectDownloadSupport(kAsyncNamespace, true);
154 ExpectRecentTab(kAsyncNamespace, false); 166 ExpectRecentTab(kAsyncNamespace, false);
155 ExpectOnlyOriginalTab(kAsyncNamespace, false); 167 ExpectOnlyOriginalTab(kAsyncNamespace, false);
156 ExpectDisabledWhenPrefetchDisabled(kAsyncNamespace, false); 168 ExpectDisabledWhenPrefetchDisabled(kAsyncNamespace, false);
157 } 169 }
158 170
159 TEST_F(ClientPolicyControllerTest, CheckCCTDefined) { 171 TEST_F(ClientPolicyControllerTest, CheckCCTDefined) {
160 OfflinePageClientPolicy policy = controller()->GetPolicy(kCCTNamespace); 172 OfflinePageClientPolicy policy = controller()->GetPolicy(kCCTNamespace);
161 EXPECT_EQ(policy.name_space, kCCTNamespace); 173 EXPECT_EQ(policy.name_space, kCCTNamespace);
162 EXPECT_TRUE(isTemporary(policy)); 174 EXPECT_TRUE(isTemporary(policy));
163 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kCCTNamespace)); 175 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kCCTNamespace));
176 ExpectRemovedOnCacheReset(kCCTNamespace, true);
164 ExpectDownloadSupport(kCCTNamespace, false); 177 ExpectDownloadSupport(kCCTNamespace, false);
165 ExpectRecentTab(kCCTNamespace, false); 178 ExpectRecentTab(kCCTNamespace, false);
166 ExpectOnlyOriginalTab(kCCTNamespace, false); 179 ExpectOnlyOriginalTab(kCCTNamespace, false);
167 ExpectDisabledWhenPrefetchDisabled(kCCTNamespace, true); 180 ExpectDisabledWhenPrefetchDisabled(kCCTNamespace, true);
168 } 181 }
169 182
170 TEST_F(ClientPolicyControllerTest, CheckDownloadDefined) { 183 TEST_F(ClientPolicyControllerTest, CheckDownloadDefined) {
171 OfflinePageClientPolicy policy = controller()->GetPolicy(kDownloadNamespace); 184 OfflinePageClientPolicy policy = controller()->GetPolicy(kDownloadNamespace);
172 EXPECT_EQ(policy.name_space, kDownloadNamespace); 185 EXPECT_EQ(policy.name_space, kDownloadNamespace);
173 EXPECT_FALSE(isTemporary(policy)); 186 EXPECT_FALSE(isTemporary(policy));
174 EXPECT_FALSE(controller()->IsRemovedOnCacheReset(kDownloadNamespace)); 187 EXPECT_FALSE(controller()->IsRemovedOnCacheReset(kDownloadNamespace));
188 ExpectRemovedOnCacheReset(kDownloadNamespace, false);
175 ExpectDownloadSupport(kDownloadNamespace, true); 189 ExpectDownloadSupport(kDownloadNamespace, true);
176 ExpectRecentTab(kDownloadNamespace, false); 190 ExpectRecentTab(kDownloadNamespace, false);
177 ExpectOnlyOriginalTab(kDownloadNamespace, false); 191 ExpectOnlyOriginalTab(kDownloadNamespace, false);
178 ExpectDisabledWhenPrefetchDisabled(kDownloadNamespace, false); 192 ExpectDisabledWhenPrefetchDisabled(kDownloadNamespace, false);
179 } 193 }
180 194
181 TEST_F(ClientPolicyControllerTest, CheckNTPSuggestionsDefined) { 195 TEST_F(ClientPolicyControllerTest, CheckNTPSuggestionsDefined) {
182 OfflinePageClientPolicy policy = 196 OfflinePageClientPolicy policy =
183 controller()->GetPolicy(kNTPSuggestionsNamespace); 197 controller()->GetPolicy(kNTPSuggestionsNamespace);
184 EXPECT_EQ(policy.name_space, kNTPSuggestionsNamespace); 198 EXPECT_EQ(policy.name_space, kNTPSuggestionsNamespace);
185 EXPECT_FALSE(isTemporary(policy)); 199 EXPECT_FALSE(isTemporary(policy));
186 EXPECT_FALSE(controller()->IsRemovedOnCacheReset(kNTPSuggestionsNamespace)); 200 EXPECT_FALSE(controller()->IsRemovedOnCacheReset(kNTPSuggestionsNamespace));
201 ExpectRemovedOnCacheReset(kNTPSuggestionsNamespace, false);
187 ExpectDownloadSupport(kNTPSuggestionsNamespace, true); 202 ExpectDownloadSupport(kNTPSuggestionsNamespace, true);
188 ExpectRecentTab(kNTPSuggestionsNamespace, false); 203 ExpectRecentTab(kNTPSuggestionsNamespace, false);
189 ExpectOnlyOriginalTab(kNTPSuggestionsNamespace, false); 204 ExpectOnlyOriginalTab(kNTPSuggestionsNamespace, false);
190 ExpectDisabledWhenPrefetchDisabled(kNTPSuggestionsNamespace, false); 205 ExpectDisabledWhenPrefetchDisabled(kNTPSuggestionsNamespace, false);
191 } 206 }
192 207
193 TEST_F(ClientPolicyControllerTest, CheckSuggestedArticlesDefined) { 208 TEST_F(ClientPolicyControllerTest, CheckSuggestedArticlesDefined) {
194 OfflinePageClientPolicy policy = 209 OfflinePageClientPolicy policy =
195 controller()->GetPolicy(kSuggestedArticlesNamespace); 210 controller()->GetPolicy(kSuggestedArticlesNamespace);
196 EXPECT_EQ(policy.name_space, kSuggestedArticlesNamespace); 211 EXPECT_EQ(policy.name_space, kSuggestedArticlesNamespace);
197 EXPECT_TRUE(isTemporary(policy)); 212 EXPECT_TRUE(isTemporary(policy));
198 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kSuggestedArticlesNamespace)); 213 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kSuggestedArticlesNamespace));
214 ExpectRemovedOnCacheReset(kSuggestedArticlesNamespace, true);
199 ExpectDownloadSupport(kSuggestedArticlesNamespace, false); 215 ExpectDownloadSupport(kSuggestedArticlesNamespace, false);
200 ExpectRecentTab(kSuggestedArticlesNamespace, false); 216 ExpectRecentTab(kSuggestedArticlesNamespace, false);
201 ExpectOnlyOriginalTab(kSuggestedArticlesNamespace, false); 217 ExpectOnlyOriginalTab(kSuggestedArticlesNamespace, false);
202 ExpectDisabledWhenPrefetchDisabled(kSuggestedArticlesNamespace, true); 218 ExpectDisabledWhenPrefetchDisabled(kSuggestedArticlesNamespace, true);
203 } 219 }
204 220
205 } // namespace offline_pages 221 } // namespace offline_pages
OLDNEW
« no previous file with comments | « no previous file | components/offline_pages/core/offline_page_model_query.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698