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

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

Issue 2364253002: [Offline Pages] Adds new policy bits and reverse lookup. (Closed)
Patch Set: Construction order. Created 4 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 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/client_policy_controller.h" 5 #include "components/offline_pages/client_policy_controller.h"
6 6
7 #include <algorithm>
8
7 #include "base/bind.h" 9 #include "base/bind.h"
8 #include "base/time/time.h" 10 #include "base/time/time.h"
9 #include "components/offline_pages/client_namespace_constants.h" 11 #include "components/offline_pages/client_namespace_constants.h"
10 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
11 13
12 using LifetimeType = offline_pages::LifetimePolicy::LifetimeType; 14 using LifetimeType = offline_pages::LifetimePolicy::LifetimeType;
13 15
14 namespace offline_pages { 16 namespace offline_pages {
15 17
16 namespace { 18 namespace {
17 const char kUndefinedNamespace[] = "undefined"; 19 const char kUndefinedNamespace[] = "undefined";
18 20
19 bool isTemporary(const OfflinePageClientPolicy& policy) { 21 bool isTemporary(const OfflinePageClientPolicy& policy) {
20 return policy.lifetime_policy.lifetime_type == LifetimeType::TEMPORARY; 22 return policy.lifetime_policy.lifetime_type == LifetimeType::TEMPORARY;
21 } 23 }
22 } // namespace 24 } // namespace
23 25
24 class ClientPolicyControllerTest : public testing::Test { 26 class ClientPolicyControllerTest : public testing::Test {
25 public: 27 public:
26 ClientPolicyController* controller() { return controller_.get(); } 28 ClientPolicyController* controller() { return controller_.get(); }
27 29
28 // testing::Test 30 // testing::Test
29 void SetUp() override; 31 void SetUp() override;
30 void TearDown() override; 32 void TearDown() override;
31 33
34 protected:
35 void ExpectDownloadSupport(std::string name_space, bool expectation);
36 void ExpectRecentTab(std::string name_space, bool expectation);
37 void ExpectOnlyOriginalTab(std::string name_space, bool expectation);
38
32 private: 39 private:
33 std::unique_ptr<ClientPolicyController> controller_; 40 std::unique_ptr<ClientPolicyController> controller_;
34 }; 41 };
35 42
36 void ClientPolicyControllerTest::SetUp() { 43 void ClientPolicyControllerTest::SetUp() {
37 controller_.reset(new ClientPolicyController()); 44 controller_.reset(new ClientPolicyController());
38 } 45 }
39 46
40 void ClientPolicyControllerTest::TearDown() { 47 void ClientPolicyControllerTest::TearDown() {
41 controller_.reset(); 48 controller_.reset();
42 } 49 }
43 50
51 void ClientPolicyControllerTest::ExpectDownloadSupport(std::string name_space,
52 bool expectation) {
53 std::vector<std::string> cache =
54 controller()->GetNamespacesWithDownloadSupport();
55 auto result = std::find(cache.begin(), cache.end(), name_space);
56 EXPECT_EQ(expectation, result != cache.end());
57 EXPECT_EQ(expectation, controller()->IsSupportedByDownload(name_space));
58 }
59
60 void ClientPolicyControllerTest::ExpectRecentTab(std::string name_space,
61 bool expectation) {
62 std::vector<std::string> cache = controller()->GetNamespacesForRecentTabs();
63 auto result = std::find(cache.begin(), cache.end(), name_space);
64 EXPECT_EQ(expectation, result != cache.end());
65 EXPECT_EQ(expectation, controller()->IsRecentTab(name_space));
66 }
67
68 void ClientPolicyControllerTest::ExpectOnlyOriginalTab(std::string name_space,
69 bool expectation) {
70 std::vector<std::string> cache =
71 controller()->GetNamespacesToShowInOriginalTab();
72 auto result = std::find(cache.begin(), cache.end(), name_space);
73 EXPECT_EQ(expectation, result != cache.end());
74 EXPECT_EQ(expectation,
75 controller()->ShouldOnlyBeShownInOriginalTab(name_space));
76 }
77
44 TEST_F(ClientPolicyControllerTest, FallbackTest) { 78 TEST_F(ClientPolicyControllerTest, FallbackTest) {
45 OfflinePageClientPolicy policy = controller()->GetPolicy(kUndefinedNamespace); 79 OfflinePageClientPolicy policy = controller()->GetPolicy(kUndefinedNamespace);
46 EXPECT_EQ(policy.name_space, kDefaultNamespace); 80 EXPECT_EQ(policy.name_space, kDefaultNamespace);
47 EXPECT_TRUE(isTemporary(policy)); 81 EXPECT_TRUE(isTemporary(policy));
48 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kUndefinedNamespace)); 82 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kUndefinedNamespace));
49 EXPECT_FALSE(controller()->IsSupportedByDownload(kUndefinedNamespace)); 83 ExpectDownloadSupport(kUndefinedNamespace, false);
84 ExpectRecentTab(kUndefinedNamespace, false);
85 ExpectOnlyOriginalTab(kUndefinedNamespace, false);
50 } 86 }
51 87
52 TEST_F(ClientPolicyControllerTest, CheckBookmarkDefined) { 88 TEST_F(ClientPolicyControllerTest, CheckBookmarkDefined) {
53 OfflinePageClientPolicy policy = controller()->GetPolicy(kBookmarkNamespace); 89 OfflinePageClientPolicy policy = controller()->GetPolicy(kBookmarkNamespace);
54 EXPECT_EQ(policy.name_space, kBookmarkNamespace); 90 EXPECT_EQ(policy.name_space, kBookmarkNamespace);
55 EXPECT_TRUE(isTemporary(policy)); 91 EXPECT_TRUE(isTemporary(policy));
56 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kBookmarkNamespace)); 92 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kBookmarkNamespace));
57 EXPECT_FALSE(controller()->IsSupportedByDownload(kBookmarkNamespace)); 93 ExpectDownloadSupport(kBookmarkNamespace, false);
94 ExpectRecentTab(kBookmarkNamespace, false);
95 ExpectOnlyOriginalTab(kBookmarkNamespace, false);
58 } 96 }
59 97
60 TEST_F(ClientPolicyControllerTest, CheckLastNDefined) { 98 TEST_F(ClientPolicyControllerTest, CheckLastNDefined) {
61 OfflinePageClientPolicy policy = controller()->GetPolicy(kLastNNamespace); 99 OfflinePageClientPolicy policy = controller()->GetPolicy(kLastNNamespace);
62 EXPECT_EQ(policy.name_space, kLastNNamespace); 100 EXPECT_EQ(policy.name_space, kLastNNamespace);
63 EXPECT_TRUE(isTemporary(policy)); 101 EXPECT_TRUE(isTemporary(policy));
64 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kLastNNamespace)); 102 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kLastNNamespace));
65 EXPECT_FALSE(controller()->IsSupportedByDownload(kLastNNamespace)); 103 ExpectDownloadSupport(kLastNNamespace, false);
104 ExpectRecentTab(kLastNNamespace, true);
105 ExpectOnlyOriginalTab(kLastNNamespace, true);
66 } 106 }
67 107
68 TEST_F(ClientPolicyControllerTest, CheckAsyncDefined) { 108 TEST_F(ClientPolicyControllerTest, CheckAsyncDefined) {
69 OfflinePageClientPolicy policy = controller()->GetPolicy(kAsyncNamespace); 109 OfflinePageClientPolicy policy = controller()->GetPolicy(kAsyncNamespace);
70 EXPECT_EQ(policy.name_space, kAsyncNamespace); 110 EXPECT_EQ(policy.name_space, kAsyncNamespace);
71 EXPECT_FALSE(isTemporary(policy)); 111 EXPECT_FALSE(isTemporary(policy));
72 EXPECT_FALSE(controller()->IsRemovedOnCacheReset(kAsyncNamespace)); 112 EXPECT_FALSE(controller()->IsRemovedOnCacheReset(kAsyncNamespace));
73 EXPECT_TRUE(controller()->IsSupportedByDownload(kAsyncNamespace)); 113 ExpectDownloadSupport(kAsyncNamespace, true);
114 ExpectRecentTab(kAsyncNamespace, false);
115 ExpectOnlyOriginalTab(kAsyncNamespace, false);
74 } 116 }
75 117
76 TEST_F(ClientPolicyControllerTest, CheckCCTDefined) { 118 TEST_F(ClientPolicyControllerTest, CheckCCTDefined) {
77 OfflinePageClientPolicy policy = controller()->GetPolicy(kCCTNamespace); 119 OfflinePageClientPolicy policy = controller()->GetPolicy(kCCTNamespace);
78 EXPECT_EQ(policy.name_space, kCCTNamespace); 120 EXPECT_EQ(policy.name_space, kCCTNamespace);
79 EXPECT_TRUE(isTemporary(policy)); 121 EXPECT_TRUE(isTemporary(policy));
80 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kCCTNamespace)); 122 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kCCTNamespace));
81 EXPECT_FALSE(controller()->IsSupportedByDownload(kCCTNamespace)); 123 ExpectDownloadSupport(kCCTNamespace, false);
124 ExpectRecentTab(kCCTNamespace, false);
125 ExpectOnlyOriginalTab(kCCTNamespace, false);
82 } 126 }
83 127
84 TEST_F(ClientPolicyControllerTest, CheckDownloadDefined) { 128 TEST_F(ClientPolicyControllerTest, CheckDownloadDefined) {
85 OfflinePageClientPolicy policy = controller()->GetPolicy(kDownloadNamespace); 129 OfflinePageClientPolicy policy = controller()->GetPolicy(kDownloadNamespace);
86 EXPECT_EQ(policy.name_space, kDownloadNamespace); 130 EXPECT_EQ(policy.name_space, kDownloadNamespace);
87 EXPECT_FALSE(isTemporary(policy)); 131 EXPECT_FALSE(isTemporary(policy));
88 EXPECT_FALSE(controller()->IsRemovedOnCacheReset(kDownloadNamespace)); 132 EXPECT_FALSE(controller()->IsRemovedOnCacheReset(kDownloadNamespace));
89 EXPECT_TRUE(controller()->IsSupportedByDownload(kDownloadNamespace)); 133 ExpectDownloadSupport(kDownloadNamespace, true);
134 ExpectRecentTab(kDownloadNamespace, false);
135 ExpectOnlyOriginalTab(kDownloadNamespace, false);
90 } 136 }
91 137
92 TEST_F(ClientPolicyControllerTest, CheckNTPSuggestionsDefined) { 138 TEST_F(ClientPolicyControllerTest, CheckNTPSuggestionsDefined) {
93 OfflinePageClientPolicy policy = 139 OfflinePageClientPolicy policy =
94 controller()->GetPolicy(kNTPSuggestionsNamespace); 140 controller()->GetPolicy(kNTPSuggestionsNamespace);
95 EXPECT_EQ(policy.name_space, kNTPSuggestionsNamespace); 141 EXPECT_EQ(policy.name_space, kNTPSuggestionsNamespace);
96 EXPECT_FALSE(isTemporary(policy)); 142 EXPECT_FALSE(isTemporary(policy));
97 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kNTPSuggestionsNamespace)); 143 EXPECT_TRUE(controller()->IsRemovedOnCacheReset(kNTPSuggestionsNamespace));
98 EXPECT_FALSE(controller()->IsSupportedByDownload(kNTPSuggestionsNamespace)); 144 ExpectDownloadSupport(kNTPSuggestionsNamespace, false);
145 ExpectRecentTab(kNTPSuggestionsNamespace, false);
146 ExpectOnlyOriginalTab(kNTPSuggestionsNamespace, false);
99 } 147 }
100 148
101 } // namespace offline_pages 149 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698