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

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

Issue 10413072: Teaching BrowsingDataRemover how to delete application data. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: How's this direction? Created 8 years, 6 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
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_helper.h" 5 #include "chrome/browser/browsing_data_helper.h"
6 6
7 #include "base/stringprintf.h" 7 #include "base/stringprintf.h"
8 #include "chrome/browser/extensions/mock_extension_special_storage_policy.h"
8 #include "chrome/common/url_constants.h" 9 #include "chrome/common/url_constants.h"
9 #include "content/public/common/url_constants.h" 10 #include "content/public/common/url_constants.h"
11 #include "googleurl/src/gurl.h"
10 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
11 #include "googleurl/src/gurl.h"
12 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h" 13 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
13 14
14 namespace { 15 namespace {
15 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
16 class BrowsingDataHelperTest : public testing::Test { 33 class BrowsingDataHelperTest : public testing::Test {
17 public: 34 public:
18 BrowsingDataHelperTest() {} 35 BrowsingDataHelperTest() {}
19 virtual ~BrowsingDataHelperTest() {} 36 virtual ~BrowsingDataHelperTest() {}
20 37
21 bool IsValidScheme(const std::string& scheme) { 38 bool IsValidScheme(const std::string& scheme) {
22 GURL test(scheme + "://example.com"); 39 GURL test(scheme + "://example.com");
23 return (BrowsingDataHelper::HasValidScheme(test) && 40 return (BrowsingDataHelper::HasValidScheme(test) &&
24 BrowsingDataHelper::IsValidScheme(scheme) && 41 BrowsingDataHelper::IsValidScheme(scheme) &&
25 BrowsingDataHelper::IsValidScheme( 42 BrowsingDataHelper::IsValidScheme(
26 WebKit::WebString::fromUTF8(scheme))); 43 WebKit::WebString::fromUTF8(scheme)));
27 } 44 }
28 45
46 bool Match(const GURL& origin,
47 int mask,
48 ExtensionSpecialStoragePolicy* policy) {
49 return BrowsingDataHelper::DoesOriginMatchMask(origin, mask, policy);
50 }
51
29 private: 52 private:
30 DISALLOW_COPY_AND_ASSIGN(BrowsingDataHelperTest); 53 DISALLOW_COPY_AND_ASSIGN(BrowsingDataHelperTest);
31 }; 54 };
32 55
33 TEST_F(BrowsingDataHelperTest, WebSafeSchemesAreValid) { 56 TEST_F(BrowsingDataHelperTest, WebSafeSchemesAreValid) {
34 EXPECT_TRUE(IsValidScheme(chrome::kHttpScheme)); 57 EXPECT_TRUE(IsValidScheme(chrome::kHttpScheme));
35 EXPECT_TRUE(IsValidScheme(chrome::kHttpsScheme)); 58 EXPECT_TRUE(IsValidScheme(chrome::kHttpsScheme));
36 EXPECT_TRUE(IsValidScheme(chrome::kFtpScheme)); 59 EXPECT_TRUE(IsValidScheme(chrome::kFtpScheme));
37 EXPECT_TRUE(IsValidScheme(chrome::kDataScheme)); 60 EXPECT_TRUE(IsValidScheme(chrome::kDataScheme));
38 EXPECT_TRUE(IsValidScheme("feed")); 61 EXPECT_TRUE(IsValidScheme("feed"));
39 EXPECT_TRUE(IsValidScheme(chrome::kBlobScheme)); 62 EXPECT_TRUE(IsValidScheme(chrome::kBlobScheme));
40 EXPECT_TRUE(IsValidScheme(chrome::kFileSystemScheme)); 63 EXPECT_TRUE(IsValidScheme(chrome::kFileSystemScheme));
41 64
42 EXPECT_FALSE(IsValidScheme("invalid-scheme-i-just-made-up")); 65 EXPECT_FALSE(IsValidScheme("invalid-scheme-i-just-made-up"));
43 } 66 }
44 67
45 TEST_F(BrowsingDataHelperTest, ChromeSchemesAreInvalid) { 68 TEST_F(BrowsingDataHelperTest, ChromeSchemesAreInvalid) {
46 EXPECT_FALSE(IsValidScheme(chrome::kExtensionScheme)); 69 EXPECT_FALSE(IsValidScheme(chrome::kExtensionScheme));
47 EXPECT_FALSE(IsValidScheme(chrome::kAboutScheme)); 70 EXPECT_FALSE(IsValidScheme(chrome::kAboutScheme));
48 EXPECT_FALSE(IsValidScheme(chrome::kChromeDevToolsScheme)); 71 EXPECT_FALSE(IsValidScheme(chrome::kChromeDevToolsScheme));
49 EXPECT_FALSE(IsValidScheme(chrome::kChromeInternalScheme)); 72 EXPECT_FALSE(IsValidScheme(chrome::kChromeInternalScheme));
50 EXPECT_FALSE(IsValidScheme(chrome::kChromeUIScheme)); 73 EXPECT_FALSE(IsValidScheme(chrome::kChromeUIScheme));
51 EXPECT_FALSE(IsValidScheme(chrome::kJavaScriptScheme)); 74 EXPECT_FALSE(IsValidScheme(chrome::kJavaScriptScheme));
52 EXPECT_FALSE(IsValidScheme(chrome::kMailToScheme)); 75 EXPECT_FALSE(IsValidScheme(chrome::kMailToScheme));
53 EXPECT_FALSE(IsValidScheme(chrome::kMetadataScheme)); 76 EXPECT_FALSE(IsValidScheme(chrome::kMetadataScheme));
54 EXPECT_FALSE(IsValidScheme(chrome::kSwappedOutScheme)); 77 EXPECT_FALSE(IsValidScheme(chrome::kSwappedOutScheme));
55 EXPECT_FALSE(IsValidScheme(chrome::kViewSourceScheme)); 78 EXPECT_FALSE(IsValidScheme(chrome::kViewSourceScheme));
56 } 79 }
57 80
81 TEST_F(BrowsingDataHelperTest, TestMatches) {
82 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
83 new MockExtensionSpecialStoragePolicy;
84 // Protect kOrigin1.
85 mock_policy->AddProtected(kOrigin1.GetOrigin());
86
87 EXPECT_FALSE(Match(kOrigin1, kUnprotected, mock_policy));
Bernhard Bauer 2012/05/31 15:57:31 You might be able to make this a bit easier to tes
Mike West 2012/06/01 13:35:17 Extensions are both protected and extensions. Book
Bernhard Bauer 2012/06/01 13:59:35 We're defining extension as "everything with a chr
Mike West 2012/06/01 14:11:53 No, you're right. Again, I successfully confused m
Bernhard Bauer 2012/06/04 09:06:43 In that case I feel obligated to point out that yo
88 EXPECT_TRUE(Match(kOrigin2, kUnprotected, mock_policy));
89 EXPECT_FALSE(Match(kOriginExt, kUnprotected, mock_policy));
90 EXPECT_FALSE(Match(kOriginDevTools, kUnprotected, mock_policy));
91
92 EXPECT_TRUE(Match(kOrigin1, kProtected, mock_policy));
93 EXPECT_FALSE(Match(kOrigin2, kProtected, mock_policy));
94 EXPECT_FALSE(Match(kOriginExt, kProtected, mock_policy));
95 EXPECT_FALSE(Match(kOriginDevTools, kProtected, mock_policy));
96
97 EXPECT_FALSE(Match(kOrigin1, kExtension, mock_policy));
98 EXPECT_FALSE(Match(kOrigin2, kExtension, mock_policy));
99 EXPECT_TRUE(Match(kOriginExt, kExtension, mock_policy));
100 EXPECT_TRUE(Match(kOriginDevTools, kExtension, mock_policy));
101
102 EXPECT_TRUE(Match(kOrigin1, kUnprotected | kProtected, mock_policy));
103 EXPECT_TRUE(Match(kOrigin2, kUnprotected | kProtected, mock_policy));
104 EXPECT_FALSE(Match(kOriginExt, kUnprotected | kProtected, mock_policy));
105 EXPECT_FALSE(Match(kOriginDevTools, kUnprotected | kProtected, mock_policy));
106
107 EXPECT_TRUE(Match(kOrigin1, kProtected | kExtension, mock_policy));
108 EXPECT_FALSE(Match(kOrigin2, kProtected | kExtension, mock_policy));
109 EXPECT_TRUE(Match(kOriginExt, kProtected | kExtension, mock_policy));
110 EXPECT_TRUE(Match(kOriginDevTools, kProtected | kExtension, mock_policy));
111
112 EXPECT_TRUE(Match(kOrigin1, kUnprotected | kProtected | kExtension,
113 mock_policy));
114 EXPECT_TRUE(Match(kOrigin2, kUnprotected | kProtected | kExtension,
115 mock_policy));
116 EXPECT_TRUE(Match(kOriginExt, kUnprotected | kProtected | kExtension,
117 mock_policy));
118 EXPECT_TRUE(Match(kOriginDevTools, kUnprotected | kProtected | kExtension,
119 mock_policy));
120 }
121
58 } // namespace 122 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698