OLD | NEW |
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/strings/stringprintf.h" | 7 #include "base/strings/stringprintf.h" |
8 #include "chrome/browser/extensions/mock_extension_special_storage_policy.h" | |
9 #include "chrome/common/url_constants.h" | 8 #include "chrome/common/url_constants.h" |
10 #include "extensions/common/constants.h" | 9 #include "extensions/common/constants.h" |
11 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
12 #include "url/gurl.h" | 11 #include "url/gurl.h" |
13 #include "url/url_constants.h" | 12 #include "url/url_constants.h" |
14 | 13 |
| 14 #if defined(ENABLE_EXTENSIONS) |
| 15 #include "chrome/browser/extensions/mock_extension_special_storage_policy.h" |
| 16 #endif |
| 17 |
15 namespace { | 18 namespace { |
16 | 19 |
17 const char kTestOrigin1[] = "http://host1:1/"; | 20 const char kTestOrigin1[] = "http://host1:1/"; |
18 const char kTestOrigin2[] = "http://host2:1/"; | 21 const char kTestOrigin2[] = "http://host2:1/"; |
19 const char kTestOrigin3[] = "http://host3:1/"; | 22 const char kTestOrigin3[] = "http://host3:1/"; |
20 const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/"; | 23 const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/"; |
21 const char kTestOriginDevTools[] = "chrome-devtools://abcdefghijklmnopqrstuvw/"; | 24 const char kTestOriginDevTools[] = "chrome-devtools://abcdefghijklmnopqrstuvw/"; |
22 | 25 |
23 const GURL kOrigin1(kTestOrigin1); | 26 const GURL kOrigin1(kTestOrigin1); |
24 const GURL kOrigin2(kTestOrigin2); | 27 const GURL kOrigin2(kTestOrigin2); |
(...skipping 17 matching lines...) Expand all Loading... |
42 } | 45 } |
43 | 46 |
44 bool IsExtensionScheme(const std::string& scheme) { | 47 bool IsExtensionScheme(const std::string& scheme) { |
45 GURL test(scheme + "://example.com"); | 48 GURL test(scheme + "://example.com"); |
46 return (BrowsingDataHelper::HasExtensionScheme(test) && | 49 return (BrowsingDataHelper::HasExtensionScheme(test) && |
47 BrowsingDataHelper::IsExtensionScheme(scheme)); | 50 BrowsingDataHelper::IsExtensionScheme(scheme)); |
48 } | 51 } |
49 | 52 |
50 bool Match(const GURL& origin, | 53 bool Match(const GURL& origin, |
51 int mask, | 54 int mask, |
52 ExtensionSpecialStoragePolicy* policy) { | 55 quota::SpecialStoragePolicy* policy) { |
53 return BrowsingDataHelper::DoesOriginMatchMask(origin, mask, policy); | 56 return BrowsingDataHelper::DoesOriginMatchMask(origin, mask, policy); |
54 } | 57 } |
55 | 58 |
56 private: | 59 private: |
57 DISALLOW_COPY_AND_ASSIGN(BrowsingDataHelperTest); | 60 DISALLOW_COPY_AND_ASSIGN(BrowsingDataHelperTest); |
58 }; | 61 }; |
59 | 62 |
60 TEST_F(BrowsingDataHelperTest, WebSafeSchemesAreWebSafe) { | 63 TEST_F(BrowsingDataHelperTest, WebSafeSchemesAreWebSafe) { |
61 EXPECT_TRUE(IsWebScheme(url::kHttpScheme)); | 64 EXPECT_TRUE(IsWebScheme(url::kHttpScheme)); |
62 EXPECT_TRUE(IsWebScheme(url::kHttpsScheme)); | 65 EXPECT_TRUE(IsWebScheme(url::kHttpsScheme)); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 EXPECT_FALSE(IsExtensionScheme(url::kAboutScheme)); | 100 EXPECT_FALSE(IsExtensionScheme(url::kAboutScheme)); |
98 EXPECT_FALSE(IsExtensionScheme(content::kChromeDevToolsScheme)); | 101 EXPECT_FALSE(IsExtensionScheme(content::kChromeDevToolsScheme)); |
99 EXPECT_FALSE(IsExtensionScheme(content::kChromeUIScheme)); | 102 EXPECT_FALSE(IsExtensionScheme(content::kChromeUIScheme)); |
100 EXPECT_FALSE(IsExtensionScheme(url::kJavaScriptScheme)); | 103 EXPECT_FALSE(IsExtensionScheme(url::kJavaScriptScheme)); |
101 EXPECT_FALSE(IsExtensionScheme(url::kMailToScheme)); | 104 EXPECT_FALSE(IsExtensionScheme(url::kMailToScheme)); |
102 EXPECT_FALSE(IsExtensionScheme(content::kMetadataScheme)); | 105 EXPECT_FALSE(IsExtensionScheme(content::kMetadataScheme)); |
103 EXPECT_FALSE(IsExtensionScheme(content::kSwappedOutScheme)); | 106 EXPECT_FALSE(IsExtensionScheme(content::kSwappedOutScheme)); |
104 EXPECT_FALSE(IsExtensionScheme(content::kViewSourceScheme)); | 107 EXPECT_FALSE(IsExtensionScheme(content::kViewSourceScheme)); |
105 } | 108 } |
106 | 109 |
| 110 #if defined(ENABLE_EXTENSIONS) |
107 TEST_F(BrowsingDataHelperTest, TestMatches) { | 111 TEST_F(BrowsingDataHelperTest, TestMatches) { |
108 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = | 112 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
109 new MockExtensionSpecialStoragePolicy; | 113 new MockExtensionSpecialStoragePolicy; |
110 // Protect kOrigin1. | 114 // Protect kOrigin1. |
111 mock_policy->AddProtected(kOrigin1.GetOrigin()); | 115 mock_policy->AddProtected(kOrigin1.GetOrigin()); |
112 | 116 |
113 EXPECT_FALSE(Match(kOrigin1, kUnprotected, mock_policy.get())); | 117 EXPECT_FALSE(Match(kOrigin1, kUnprotected, mock_policy.get())); |
114 EXPECT_TRUE(Match(kOrigin2, kUnprotected, mock_policy.get())); | 118 EXPECT_TRUE(Match(kOrigin2, kUnprotected, mock_policy.get())); |
115 EXPECT_FALSE(Match(kOriginExt, kUnprotected, mock_policy.get())); | 119 EXPECT_FALSE(Match(kOriginExt, kUnprotected, mock_policy.get())); |
116 EXPECT_FALSE(Match(kOriginDevTools, kUnprotected, mock_policy.get())); | 120 EXPECT_FALSE(Match(kOriginDevTools, kUnprotected, mock_policy.get())); |
(...skipping 29 matching lines...) Expand all Loading... |
146 EXPECT_TRUE(Match( | 150 EXPECT_TRUE(Match( |
147 kOrigin1, kUnprotected | kProtected | kExtension, mock_policy.get())); | 151 kOrigin1, kUnprotected | kProtected | kExtension, mock_policy.get())); |
148 EXPECT_TRUE(Match( | 152 EXPECT_TRUE(Match( |
149 kOrigin2, kUnprotected | kProtected | kExtension, mock_policy.get())); | 153 kOrigin2, kUnprotected | kProtected | kExtension, mock_policy.get())); |
150 EXPECT_TRUE(Match( | 154 EXPECT_TRUE(Match( |
151 kOriginExt, kUnprotected | kProtected | kExtension, mock_policy.get())); | 155 kOriginExt, kUnprotected | kProtected | kExtension, mock_policy.get())); |
152 EXPECT_FALSE(Match(kOriginDevTools, | 156 EXPECT_FALSE(Match(kOriginDevTools, |
153 kUnprotected | kProtected | kExtension, | 157 kUnprotected | kProtected | kExtension, |
154 mock_policy.get())); | 158 mock_policy.get())); |
155 } | 159 } |
| 160 #endif |
156 | 161 |
157 // If extensions are disabled, there is no policy. | 162 // If extensions are disabled, there is no policy. |
158 TEST_F(BrowsingDataHelperTest, TestNoPolicyMatches) { | 163 TEST_F(BrowsingDataHelperTest, TestNoPolicyMatches) { |
159 EXPECT_FALSE(Match(kOrigin1, kExtension, NULL)); | 164 EXPECT_FALSE(Match(kOrigin1, kExtension, NULL)); |
160 EXPECT_TRUE(Match(kOrigin1, kUnprotected, NULL)); | 165 EXPECT_TRUE(Match(kOrigin1, kUnprotected, NULL)); |
161 EXPECT_FALSE(Match(kOrigin1, kProtected, NULL)); | 166 EXPECT_FALSE(Match(kOrigin1, kProtected, NULL)); |
162 | 167 |
163 EXPECT_TRUE(Match(kOriginExt, kExtension, NULL)); | 168 EXPECT_TRUE(Match(kOriginExt, kExtension, NULL)); |
164 EXPECT_FALSE(Match(kOriginExt, kUnprotected, NULL)); | 169 EXPECT_FALSE(Match(kOriginExt, kUnprotected, NULL)); |
165 EXPECT_FALSE(Match(kOriginExt, kProtected, NULL)); | 170 EXPECT_FALSE(Match(kOriginExt, kProtected, NULL)); |
166 | 171 |
167 EXPECT_FALSE(Match(kOriginDevTools, kExtension, NULL)); | 172 EXPECT_FALSE(Match(kOriginDevTools, kExtension, NULL)); |
168 EXPECT_FALSE(Match(kOriginDevTools, kUnprotected, NULL)); | 173 EXPECT_FALSE(Match(kOriginDevTools, kUnprotected, NULL)); |
169 EXPECT_FALSE(Match(kOriginDevTools, kProtected, NULL)); | 174 EXPECT_FALSE(Match(kOriginDevTools, kProtected, NULL)); |
170 } | 175 } |
171 | 176 |
172 } // namespace | 177 } // namespace |
OLD | NEW |