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 "base/string16.h" | 5 #include "base/string16.h" |
6 #include "base/utf_string_conversions.h" | 6 #include "base/utf_string_conversions.h" |
7 #include "chrome/browser/content_settings/tab_specific_content_settings.h" | 7 #include "chrome/browser/content_settings/tab_specific_content_settings.h" |
8 #include "chrome/test/base/chrome_render_view_host_test_harness.h" | 8 #include "chrome/test/base/chrome_render_view_host_test_harness.h" |
9 #include "chrome/test/base/testing_profile.h" | 9 #include "chrome/test/base/testing_profile.h" |
10 #include "content/public/test/test_browser_thread.h" | 10 #include "content/public/test/test_browser_thread.h" |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 EXPECT_FALSE( | 61 EXPECT_FALSE( |
62 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)); | 62 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)); |
63 EXPECT_FALSE( | 63 EXPECT_FALSE( |
64 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); | 64 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); |
65 EXPECT_FALSE( | 65 EXPECT_FALSE( |
66 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS)); | 66 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS)); |
67 EXPECT_FALSE( | 67 EXPECT_FALSE( |
68 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 68 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
69 EXPECT_FALSE( | 69 EXPECT_FALSE( |
70 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS)); | 70 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS)); |
71 EXPECT_FALSE( | |
72 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_MEDIASTREAM)); | |
73 | 71 |
74 // Set a cookie, block access to images, block mediastream access and block a | 72 // Set a cookie, block access to images, block a popup. |
75 // popup. | |
76 content_settings->OnCookieChanged(GURL("http://google.com"), | 73 content_settings->OnCookieChanged(GURL("http://google.com"), |
77 GURL("http://google.com"), | 74 GURL("http://google.com"), |
78 "A=B", | 75 "A=B", |
79 options, | 76 options, |
80 false); | 77 false); |
81 content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES, | 78 content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES, |
82 std::string()); | 79 std::string()); |
83 content_settings->SetPopupsBlocked(true); | 80 content_settings->SetPopupsBlocked(true); |
84 content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_MEDIASTREAM, | |
85 std::string()); | |
86 | 81 |
87 // Check that only the respective content types are affected. | 82 // Check that only the respective content types are affected. |
88 EXPECT_TRUE(content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)); | 83 EXPECT_TRUE(content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)); |
89 EXPECT_FALSE( | 84 EXPECT_FALSE( |
90 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); | 85 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); |
91 EXPECT_FALSE( | 86 EXPECT_FALSE( |
92 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS)); | 87 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS)); |
93 EXPECT_FALSE( | 88 EXPECT_FALSE( |
94 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 89 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
95 EXPECT_TRUE(content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS)); | 90 EXPECT_TRUE(content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS)); |
96 EXPECT_TRUE( | |
97 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_MEDIASTREAM)); | |
98 content_settings->OnCookieChanged(GURL("http://google.com"), | 91 content_settings->OnCookieChanged(GURL("http://google.com"), |
99 GURL("http://google.com"), | 92 GURL("http://google.com"), |
100 "A=B", | 93 "A=B", |
101 options, | 94 options, |
102 false); | 95 false); |
103 | 96 |
104 // Block a cookie. | 97 // Block a cookie. |
105 content_settings->OnCookieChanged(GURL("http://google.com"), | 98 content_settings->OnCookieChanged(GURL("http://google.com"), |
106 GURL("http://google.com"), | 99 GURL("http://google.com"), |
107 "C=D", | 100 "C=D", |
108 options, | 101 options, |
109 true); | 102 true); |
110 EXPECT_TRUE( | 103 EXPECT_TRUE( |
111 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 104 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
112 | 105 |
113 // Reset blocked content settings. | 106 // Reset blocked content settings. |
114 content_settings->ClearBlockedContentSettingsExceptForCookies(); | 107 content_settings->ClearBlockedContentSettingsExceptForCookies(); |
115 EXPECT_FALSE( | 108 EXPECT_FALSE( |
116 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)); | 109 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)); |
117 EXPECT_FALSE( | 110 EXPECT_FALSE( |
118 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); | 111 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); |
119 EXPECT_FALSE( | 112 EXPECT_FALSE( |
120 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS)); | 113 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS)); |
121 EXPECT_TRUE( | 114 EXPECT_TRUE( |
122 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 115 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
123 EXPECT_FALSE( | 116 EXPECT_FALSE( |
124 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS)); | 117 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS)); |
125 EXPECT_FALSE( | |
126 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_MEDIASTREAM)); | |
127 | 118 |
128 content_settings->ClearCookieSpecificContentSettings(); | 119 content_settings->ClearCookieSpecificContentSettings(); |
129 EXPECT_FALSE( | 120 EXPECT_FALSE( |
130 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)); | 121 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)); |
131 EXPECT_FALSE( | 122 EXPECT_FALSE( |
132 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); | 123 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); |
133 EXPECT_FALSE( | 124 EXPECT_FALSE( |
134 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS)); | 125 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS)); |
135 EXPECT_FALSE( | 126 EXPECT_FALSE( |
136 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 127 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
137 EXPECT_FALSE( | 128 EXPECT_FALSE( |
138 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS)); | 129 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS)); |
139 EXPECT_FALSE( | |
140 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_MEDIASTREAM)); | |
141 } | 130 } |
142 | 131 |
143 TEST_F(TabSpecificContentSettingsTest, BlockedFileSystems) { | 132 TEST_F(TabSpecificContentSettingsTest, BlockedFileSystems) { |
144 TabSpecificContentSettings* content_settings = | 133 TabSpecificContentSettings* content_settings = |
145 TabSpecificContentSettings::FromWebContents(web_contents()); | 134 TabSpecificContentSettings::FromWebContents(web_contents()); |
146 | 135 |
147 // Access a file system. | 136 // Access a file system. |
148 content_settings->OnFileSystemAccessed(GURL("http://google.com"), false); | 137 content_settings->OnFileSystemAccessed(GURL("http://google.com"), false); |
149 EXPECT_FALSE( | 138 EXPECT_FALSE( |
150 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 139 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
151 | 140 |
152 // Block access to a file system. | 141 // Block access to a file system. |
153 content_settings->OnFileSystemAccessed(GURL("http://google.com"), true); | 142 content_settings->OnFileSystemAccessed(GURL("http://google.com"), true); |
154 EXPECT_TRUE( | 143 EXPECT_TRUE( |
155 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 144 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
156 } | 145 } |
157 | 146 |
158 TEST_F(TabSpecificContentSettingsTest, AllowedContent) { | 147 TEST_F(TabSpecificContentSettingsTest, AllowedContent) { |
159 TabSpecificContentSettings* content_settings = | 148 TabSpecificContentSettings* content_settings = |
160 TabSpecificContentSettings::FromWebContents(web_contents()); | 149 TabSpecificContentSettings::FromWebContents(web_contents()); |
161 net::CookieOptions options; | 150 net::CookieOptions options; |
162 | 151 |
163 // Test default settings. | |
164 ASSERT_FALSE( | 152 ASSERT_FALSE( |
165 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_IMAGES)); | 153 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_IMAGES)); |
166 ASSERT_FALSE( | 154 ASSERT_FALSE( |
167 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_COOKIES)); | 155 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_COOKIES)); |
168 ASSERT_FALSE( | 156 ASSERT_FALSE( |
169 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 157 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
170 ASSERT_FALSE( | |
171 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_MEDIASTREAM)); | |
172 | |
173 // Record a cookie. | |
174 content_settings->OnCookieChanged(GURL("http://google.com"), | 158 content_settings->OnCookieChanged(GURL("http://google.com"), |
175 GURL("http://google.com"), | 159 GURL("http://google.com"), |
176 "A=B", | 160 "A=B", |
177 options, | 161 options, |
178 false); | 162 false); |
179 ASSERT_TRUE( | 163 ASSERT_TRUE( |
180 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_COOKIES)); | 164 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_COOKIES)); |
181 ASSERT_FALSE( | 165 ASSERT_FALSE( |
182 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 166 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
183 | |
184 // Record a blocked cookie. | |
185 content_settings->OnCookieChanged(GURL("http://google.com"), | 167 content_settings->OnCookieChanged(GURL("http://google.com"), |
186 GURL("http://google.com"), | 168 GURL("http://google.com"), |
187 "C=D", | 169 "C=D", |
188 options, | 170 options, |
189 true); | 171 true); |
190 ASSERT_TRUE( | 172 ASSERT_TRUE( |
191 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_COOKIES)); | 173 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_COOKIES)); |
192 ASSERT_TRUE( | 174 ASSERT_TRUE( |
193 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 175 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
194 | |
195 // Record mediastream access. | |
196 content_settings->OnMediaStreamAccessed(); | |
197 ASSERT_TRUE( | |
198 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_MEDIASTREAM)); | |
199 ASSERT_FALSE( | |
200 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_MEDIASTREAM)); | |
201 | |
202 // Record a blocked mediastream access request. | |
203 content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_MEDIASTREAM, | |
204 std::string()); | |
205 ASSERT_TRUE( | |
206 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_MEDIASTREAM)); | |
207 ASSERT_TRUE( | |
208 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_MEDIASTREAM)); | |
209 } | 176 } |
210 | 177 |
211 TEST_F(TabSpecificContentSettingsTest, EmptyCookieList) { | 178 TEST_F(TabSpecificContentSettingsTest, EmptyCookieList) { |
212 TabSpecificContentSettings* content_settings = | 179 TabSpecificContentSettings* content_settings = |
213 TabSpecificContentSettings::FromWebContents(web_contents()); | 180 TabSpecificContentSettings::FromWebContents(web_contents()); |
214 | 181 |
215 ASSERT_FALSE( | 182 ASSERT_FALSE( |
216 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_COOKIES)); | 183 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_COOKIES)); |
217 ASSERT_FALSE( | 184 ASSERT_FALSE( |
218 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 185 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 UTF8ToUTF16("text"), | 222 UTF8ToUTF16("text"), |
256 blocked_by_policy); | 223 blocked_by_policy); |
257 content_settings->OnLocalStorageAccessed(GURL("http://google.com"), | 224 content_settings->OnLocalStorageAccessed(GURL("http://google.com"), |
258 true, | 225 true, |
259 blocked_by_policy); | 226 blocked_by_policy); |
260 content_settings->OnWebDatabaseAccessed(GURL("http://google.com"), | 227 content_settings->OnWebDatabaseAccessed(GURL("http://google.com"), |
261 UTF8ToUTF16("name"), | 228 UTF8ToUTF16("name"), |
262 UTF8ToUTF16("display_name"), | 229 UTF8ToUTF16("display_name"), |
263 blocked_by_policy); | 230 blocked_by_policy); |
264 } | 231 } |
OLD | NEW |