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