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

Side by Side Diff: chrome/browser/browsing_data/browsing_data_helper_unittest.cc

Issue 2733393003: Split browsing data masks between content and embedder (Closed)
Patch Set: Rebase (merged automatically) Created 3 years, 9 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/browsing_data/browsing_data_helper.h" 5 #include "chrome/browser/browsing_data/browsing_data_helper.h"
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "chrome/common/url_constants.h" 8 #include "chrome/common/url_constants.h"
9 #include "extensions/common/constants.h" 9 #include "extensions/common/constants.h"
10 #include "extensions/features/features.h" 10 #include "extensions/features/features.h"
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 #include "url/gurl.h" 12 #include "url/gurl.h"
13 #include "url/url_constants.h" 13 #include "url/url_constants.h"
14 14
15 #if BUILDFLAG(ENABLE_EXTENSIONS)
16 #include "chrome/browser/extensions/mock_extension_special_storage_policy.h"
17 #endif
18
19 namespace { 15 namespace {
20 16
21 const char kTestOrigin1[] = "http://host1:1/"; 17 const char kTestOrigin1[] = "http://host1:1/";
22 const char kTestOrigin2[] = "http://host2:1/"; 18 const char kTestOrigin2[] = "http://host2:1/";
23 const char kTestOrigin3[] = "http://host3:1/"; 19 const char kTestOrigin3[] = "http://host3:1/";
24 const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/"; 20 const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/";
25 const char kTestOriginDevTools[] = "chrome-devtools://abcdefghijklmnopqrstuvw/"; 21 const char kTestOriginDevTools[] = "chrome-devtools://abcdefghijklmnopqrstuvw/";
26 22
27 const GURL kOrigin1(kTestOrigin1); 23 const GURL kOrigin1(kTestOrigin1);
28 const GURL kOrigin2(kTestOrigin2); 24 const GURL kOrigin2(kTestOrigin2);
29 const GURL kOrigin3(kTestOrigin3); 25 const GURL kOrigin3(kTestOrigin3);
30 const GURL kOriginExt(kTestOriginExt); 26 const GURL kOriginExt(kTestOriginExt);
31 const GURL kOriginDevTools(kTestOriginDevTools); 27 const GURL kOriginDevTools(kTestOriginDevTools);
32 28
33 const int kExtension = BrowsingDataHelper::EXTENSION;
34 const int kProtected = BrowsingDataHelper::PROTECTED_WEB;
35 const int kUnprotected = BrowsingDataHelper::UNPROTECTED_WEB;
36
37 class BrowsingDataHelperTest : public testing::Test { 29 class BrowsingDataHelperTest : public testing::Test {
38 public: 30 public:
39 BrowsingDataHelperTest() {} 31 BrowsingDataHelperTest() {}
40 ~BrowsingDataHelperTest() override {} 32 ~BrowsingDataHelperTest() override {}
41 33
42 bool IsWebScheme(const std::string& scheme) { 34 bool IsWebScheme(const std::string& scheme) {
43 GURL test(scheme + "://example.com"); 35 GURL test(scheme + "://example.com");
44 return (BrowsingDataHelper::HasWebScheme(test) && 36 return (BrowsingDataHelper::HasWebScheme(test) &&
45 BrowsingDataHelper::IsWebScheme(scheme)); 37 BrowsingDataHelper::IsWebScheme(scheme));
46 } 38 }
47 39
48 bool IsExtensionScheme(const std::string& scheme) { 40 bool IsExtensionScheme(const std::string& scheme) {
49 GURL test(scheme + "://example.com"); 41 GURL test(scheme + "://example.com");
50 return (BrowsingDataHelper::HasExtensionScheme(test) && 42 return (BrowsingDataHelper::HasExtensionScheme(test) &&
51 BrowsingDataHelper::IsExtensionScheme(scheme)); 43 BrowsingDataHelper::IsExtensionScheme(scheme));
52 } 44 }
53 45
54 bool Match(const GURL& origin,
55 int mask,
56 storage::SpecialStoragePolicy* policy) {
57 return BrowsingDataHelper::DoesOriginMatchMask(origin, mask, policy);
58 }
59
60 private: 46 private:
61 DISALLOW_COPY_AND_ASSIGN(BrowsingDataHelperTest); 47 DISALLOW_COPY_AND_ASSIGN(BrowsingDataHelperTest);
62 }; 48 };
63 49
64 TEST_F(BrowsingDataHelperTest, WebStorageSchemesAreWebSchemes) { 50 TEST_F(BrowsingDataHelperTest, WebStorageSchemesAreWebSchemes) {
65 EXPECT_TRUE(IsWebScheme(url::kHttpScheme)); 51 EXPECT_TRUE(IsWebScheme(url::kHttpScheme));
66 EXPECT_TRUE(IsWebScheme(url::kHttpsScheme)); 52 EXPECT_TRUE(IsWebScheme(url::kHttpsScheme));
67 EXPECT_TRUE(IsWebScheme(url::kFileScheme)); 53 EXPECT_TRUE(IsWebScheme(url::kFileScheme));
68 EXPECT_TRUE(IsWebScheme(url::kFtpScheme)); 54 EXPECT_TRUE(IsWebScheme(url::kFtpScheme));
69 EXPECT_TRUE(IsWebScheme(url::kWsScheme)); 55 EXPECT_TRUE(IsWebScheme(url::kWsScheme));
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 EXPECT_FALSE(IsWebScheme(url::kBlobScheme)); 96 EXPECT_FALSE(IsWebScheme(url::kBlobScheme));
111 EXPECT_FALSE(IsExtensionScheme(url::kBlobScheme)); 97 EXPECT_FALSE(IsExtensionScheme(url::kBlobScheme));
112 98
113 EXPECT_FALSE(IsWebScheme(url::kFileSystemScheme)); 99 EXPECT_FALSE(IsWebScheme(url::kFileSystemScheme));
114 EXPECT_FALSE(IsExtensionScheme(url::kFileSystemScheme)); 100 EXPECT_FALSE(IsExtensionScheme(url::kFileSystemScheme));
115 101
116 EXPECT_FALSE(IsWebScheme("invalid-scheme-i-just-made-up")); 102 EXPECT_FALSE(IsWebScheme("invalid-scheme-i-just-made-up"));
117 EXPECT_FALSE(IsExtensionScheme("invalid-scheme-i-just-made-up")); 103 EXPECT_FALSE(IsExtensionScheme("invalid-scheme-i-just-made-up"));
118 } 104 }
119 105
120 #if BUILDFLAG(ENABLE_EXTENSIONS)
121 TEST_F(BrowsingDataHelperTest, TestMatches) {
122 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
123 new MockExtensionSpecialStoragePolicy;
124 // Protect kOrigin1.
125 mock_policy->AddProtected(kOrigin1.GetOrigin());
126
127 EXPECT_FALSE(Match(kOrigin1, kUnprotected, mock_policy.get()));
128 EXPECT_TRUE(Match(kOrigin2, kUnprotected, mock_policy.get()));
129 EXPECT_FALSE(Match(kOriginExt, kUnprotected, mock_policy.get()));
130 EXPECT_FALSE(Match(kOriginDevTools, kUnprotected, mock_policy.get()));
131
132 EXPECT_TRUE(Match(kOrigin1, kProtected, mock_policy.get()));
133 EXPECT_FALSE(Match(kOrigin2, kProtected, mock_policy.get()));
134 EXPECT_FALSE(Match(kOriginExt, kProtected, mock_policy.get()));
135 EXPECT_FALSE(Match(kOriginDevTools, kProtected, mock_policy.get()));
136
137 EXPECT_FALSE(Match(kOrigin1, kExtension, mock_policy.get()));
138 EXPECT_FALSE(Match(kOrigin2, kExtension, mock_policy.get()));
139 EXPECT_TRUE(Match(kOriginExt, kExtension, mock_policy.get()));
140 EXPECT_FALSE(Match(kOriginDevTools, kExtension, mock_policy.get()));
141
142 EXPECT_TRUE(Match(kOrigin1, kUnprotected | kProtected, mock_policy.get()));
143 EXPECT_TRUE(Match(kOrigin2, kUnprotected | kProtected, mock_policy.get()));
144 EXPECT_FALSE(Match(kOriginExt, kUnprotected | kProtected, mock_policy.get()));
145 EXPECT_FALSE(
146 Match(kOriginDevTools, kUnprotected | kProtected, mock_policy.get()));
147
148 EXPECT_FALSE(Match(kOrigin1, kUnprotected | kExtension, mock_policy.get()));
149 EXPECT_TRUE(Match(kOrigin2, kUnprotected | kExtension, mock_policy.get()));
150 EXPECT_TRUE(Match(kOriginExt, kUnprotected | kExtension, mock_policy.get()));
151 EXPECT_FALSE(
152 Match(kOriginDevTools, kUnprotected | kExtension, mock_policy.get()));
153
154 EXPECT_TRUE(Match(kOrigin1, kProtected | kExtension, mock_policy.get()));
155 EXPECT_FALSE(Match(kOrigin2, kProtected | kExtension, mock_policy.get()));
156 EXPECT_TRUE(Match(kOriginExt, kProtected | kExtension, mock_policy.get()));
157 EXPECT_FALSE(
158 Match(kOriginDevTools, kProtected | kExtension, mock_policy.get()));
159
160 EXPECT_TRUE(Match(
161 kOrigin1, kUnprotected | kProtected | kExtension, mock_policy.get()));
162 EXPECT_TRUE(Match(
163 kOrigin2, kUnprotected | kProtected | kExtension, mock_policy.get()));
164 EXPECT_TRUE(Match(
165 kOriginExt, kUnprotected | kProtected | kExtension, mock_policy.get()));
166 EXPECT_FALSE(Match(kOriginDevTools,
167 kUnprotected | kProtected | kExtension,
168 mock_policy.get()));
169 }
170 #endif
171
172 // If extensions are disabled, there is no policy.
173 TEST_F(BrowsingDataHelperTest, TestNoPolicyMatches) {
174 EXPECT_FALSE(Match(kOrigin1, kExtension, nullptr));
175 EXPECT_TRUE(Match(kOrigin1, kUnprotected, nullptr));
176 EXPECT_FALSE(Match(kOrigin1, kProtected, nullptr));
177
178 EXPECT_TRUE(Match(kOriginExt, kExtension, nullptr));
179 EXPECT_FALSE(Match(kOriginExt, kUnprotected, nullptr));
180 EXPECT_FALSE(Match(kOriginExt, kProtected, nullptr));
181
182 EXPECT_FALSE(Match(kOriginDevTools, kExtension, nullptr));
183 EXPECT_FALSE(Match(kOriginDevTools, kUnprotected, nullptr));
184 EXPECT_FALSE(Match(kOriginDevTools, kProtected, nullptr));
185 }
186
187 } // namespace 106 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/browsing_data/browsing_data_helper.cc ('k') | chrome/browser/browsing_data/browsing_data_remover.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698