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

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

Issue 10805015: Move browsing_data_helper files into a separate directory. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix chrome_frame build Created 8 years, 5 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 | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/browser/browsing_data_helper.h"
6
7 #include "base/stringprintf.h"
8 #include "chrome/browser/extensions/mock_extension_special_storage_policy.h"
9 #include "chrome/common/url_constants.h"
10 #include "content/public/common/url_constants.h"
11 #include "googleurl/src/gurl.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
14
15 namespace {
16
17 const char kTestOrigin1[] = "http://host1:1/";
18 const char kTestOrigin2[] = "http://host2:1/";
19 const char kTestOrigin3[] = "http://host3:1/";
20 const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/";
21 const char kTestOriginDevTools[] = "chrome-devtools://abcdefghijklmnopqrstuvw/";
22
23 const GURL kOrigin1(kTestOrigin1);
24 const GURL kOrigin2(kTestOrigin2);
25 const GURL kOrigin3(kTestOrigin3);
26 const GURL kOriginExt(kTestOriginExt);
27 const GURL kOriginDevTools(kTestOriginDevTools);
28
29 const int kExtension = BrowsingDataHelper::EXTENSION;
30 const int kProtected = BrowsingDataHelper::PROTECTED_WEB;
31 const int kUnprotected = BrowsingDataHelper::UNPROTECTED_WEB;
32
33 class BrowsingDataHelperTest : public testing::Test {
34 public:
35 BrowsingDataHelperTest() {}
36 virtual ~BrowsingDataHelperTest() {}
37
38 bool IsWebScheme(const std::string& scheme) {
39 GURL test(scheme + "://example.com");
40 return (BrowsingDataHelper::HasWebScheme(test) &&
41 BrowsingDataHelper::IsWebScheme(scheme) &&
42 BrowsingDataHelper::IsWebScheme(
43 WebKit::WebString::fromUTF8(scheme)));
44 }
45
46 bool IsExtensionScheme(const std::string& scheme) {
47 GURL test(scheme + "://example.com");
48 return (BrowsingDataHelper::HasExtensionScheme(test) &&
49 BrowsingDataHelper::IsExtensionScheme(scheme) &&
50 BrowsingDataHelper::IsExtensionScheme(
51 WebKit::WebString::fromUTF8(scheme)));
52 }
53
54 bool Match(const GURL& origin,
55 int mask,
56 ExtensionSpecialStoragePolicy* policy) {
57 return BrowsingDataHelper::DoesOriginMatchMask(origin, mask, policy);
58 }
59
60 private:
61 DISALLOW_COPY_AND_ASSIGN(BrowsingDataHelperTest);
62 };
63
64 TEST_F(BrowsingDataHelperTest, WebSafeSchemesAreWebSafe) {
65 EXPECT_TRUE(IsWebScheme(chrome::kHttpScheme));
66 EXPECT_TRUE(IsWebScheme(chrome::kHttpsScheme));
67 EXPECT_TRUE(IsWebScheme(chrome::kFtpScheme));
68 EXPECT_TRUE(IsWebScheme(chrome::kDataScheme));
69 EXPECT_TRUE(IsWebScheme("feed"));
70 EXPECT_TRUE(IsWebScheme(chrome::kBlobScheme));
71 EXPECT_TRUE(IsWebScheme(chrome::kFileSystemScheme));
72 EXPECT_FALSE(IsWebScheme("invalid-scheme-i-just-made-up"));
73 }
74
75 TEST_F(BrowsingDataHelperTest, ChromeSchemesAreNotWebSafe) {
76 EXPECT_FALSE(IsWebScheme(chrome::kExtensionScheme));
77 EXPECT_FALSE(IsWebScheme(chrome::kAboutScheme));
78 EXPECT_FALSE(IsWebScheme(chrome::kChromeDevToolsScheme));
79 EXPECT_FALSE(IsWebScheme(chrome::kChromeInternalScheme));
80 EXPECT_FALSE(IsWebScheme(chrome::kChromeUIScheme));
81 EXPECT_FALSE(IsWebScheme(chrome::kJavaScriptScheme));
82 EXPECT_FALSE(IsWebScheme(chrome::kMailToScheme));
83 EXPECT_FALSE(IsWebScheme(chrome::kMetadataScheme));
84 EXPECT_FALSE(IsWebScheme(chrome::kSwappedOutScheme));
85 EXPECT_FALSE(IsWebScheme(chrome::kViewSourceScheme));
86 }
87
88 TEST_F(BrowsingDataHelperTest, WebSafeSchemesAreNotExtensions) {
89 EXPECT_FALSE(IsExtensionScheme(chrome::kHttpScheme));
90 EXPECT_FALSE(IsExtensionScheme(chrome::kHttpsScheme));
91 EXPECT_FALSE(IsExtensionScheme(chrome::kFtpScheme));
92 EXPECT_FALSE(IsExtensionScheme(chrome::kDataScheme));
93 EXPECT_FALSE(IsExtensionScheme("feed"));
94 EXPECT_FALSE(IsExtensionScheme(chrome::kBlobScheme));
95 EXPECT_FALSE(IsExtensionScheme(chrome::kFileSystemScheme));
96 EXPECT_FALSE(IsExtensionScheme("invalid-scheme-i-just-made-up"));
97 }
98
99 TEST_F(BrowsingDataHelperTest, ChromeSchemesAreNotAllExtension) {
100 EXPECT_TRUE(IsExtensionScheme(chrome::kExtensionScheme));
101
102 EXPECT_FALSE(IsExtensionScheme(chrome::kAboutScheme));
103 EXPECT_FALSE(IsExtensionScheme(chrome::kChromeDevToolsScheme));
104 EXPECT_FALSE(IsExtensionScheme(chrome::kChromeInternalScheme));
105 EXPECT_FALSE(IsExtensionScheme(chrome::kChromeUIScheme));
106 EXPECT_FALSE(IsExtensionScheme(chrome::kJavaScriptScheme));
107 EXPECT_FALSE(IsExtensionScheme(chrome::kMailToScheme));
108 EXPECT_FALSE(IsExtensionScheme(chrome::kMetadataScheme));
109 EXPECT_FALSE(IsExtensionScheme(chrome::kSwappedOutScheme));
110 EXPECT_FALSE(IsExtensionScheme(chrome::kViewSourceScheme));
111 }
112
113 TEST_F(BrowsingDataHelperTest, TestMatches) {
114 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
115 new MockExtensionSpecialStoragePolicy;
116 // Protect kOrigin1.
117 mock_policy->AddProtected(kOrigin1.GetOrigin());
118
119 EXPECT_FALSE(Match(kOrigin1, kUnprotected, mock_policy));
120 EXPECT_TRUE(Match(kOrigin2, kUnprotected, mock_policy));
121 EXPECT_FALSE(Match(kOriginExt, kUnprotected, mock_policy));
122 EXPECT_FALSE(Match(kOriginDevTools, kUnprotected, mock_policy));
123
124 EXPECT_TRUE(Match(kOrigin1, kProtected, mock_policy));
125 EXPECT_FALSE(Match(kOrigin2, kProtected, mock_policy));
126 EXPECT_FALSE(Match(kOriginExt, kProtected, mock_policy));
127 EXPECT_FALSE(Match(kOriginDevTools, kProtected, mock_policy));
128
129 EXPECT_FALSE(Match(kOrigin1, kExtension, mock_policy));
130 EXPECT_FALSE(Match(kOrigin2, kExtension, mock_policy));
131 EXPECT_TRUE(Match(kOriginExt, kExtension, mock_policy));
132 EXPECT_FALSE(Match(kOriginDevTools, kExtension, mock_policy));
133
134 EXPECT_TRUE(Match(kOrigin1, kUnprotected | kProtected, mock_policy));
135 EXPECT_TRUE(Match(kOrigin2, kUnprotected | kProtected, mock_policy));
136 EXPECT_FALSE(Match(kOriginExt, kUnprotected | kProtected, mock_policy));
137 EXPECT_FALSE(Match(kOriginDevTools, kUnprotected | kProtected, mock_policy));
138
139 EXPECT_FALSE(Match(kOrigin1, kUnprotected | kExtension, mock_policy));
140 EXPECT_TRUE(Match(kOrigin2, kUnprotected | kExtension, mock_policy));
141 EXPECT_TRUE(Match(kOriginExt, kUnprotected | kExtension, mock_policy));
142 EXPECT_FALSE(Match(kOriginDevTools, kUnprotected | kExtension, mock_policy));
143
144 EXPECT_TRUE(Match(kOrigin1, kProtected | kExtension, mock_policy));
145 EXPECT_FALSE(Match(kOrigin2, kProtected | kExtension, mock_policy));
146 EXPECT_TRUE(Match(kOriginExt, kProtected | kExtension, mock_policy));
147 EXPECT_FALSE(Match(kOriginDevTools, kProtected | kExtension, mock_policy));
148
149 EXPECT_TRUE(Match(kOrigin1, kUnprotected | kProtected | kExtension,
150 mock_policy));
151 EXPECT_TRUE(Match(kOrigin2, kUnprotected | kProtected | kExtension,
152 mock_policy));
153 EXPECT_TRUE(Match(kOriginExt, kUnprotected | kProtected | kExtension,
154 mock_policy));
155 EXPECT_FALSE(Match(kOriginDevTools, kUnprotected | kProtected | kExtension,
156 mock_policy));
157 }
158
159 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/browsing_data_helper_browsertest.h ('k') | chrome/browser/browsing_data_indexed_db_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698