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

Side by Side Diff: chrome/browser/content_settings/tab_specific_content_settings_unittest.cc

Issue 678023002: TabSpecificContentSettings no longer knows about MediaStreamDeviceController (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix Win complilation error C4800 Created 6 years, 1 month 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
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 "base/strings/string16.h" 5 #include "base/strings/string16.h"
6 #include "base/strings/utf_string_conversions.h" 6 #include "base/strings/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 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 67
68 // Set a cookie, block access to images, block mediastream access and block a 68 // Set a cookie, block access to images, block mediastream access and block a
69 // popup. 69 // popup.
70 content_settings->OnCookieChanged(GURL("http://google.com"), 70 content_settings->OnCookieChanged(GURL("http://google.com"),
71 GURL("http://google.com"), 71 GURL("http://google.com"),
72 "A=B", 72 "A=B",
73 options, 73 options,
74 false); 74 false);
75 content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES); 75 content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES);
76 content_settings->SetPopupsBlocked(true); 76 content_settings->SetPopupsBlocked(true);
77 MediaStreamDevicesController::MediaStreamTypeSettingsMap request_permissions; 77 TabSpecificContentSettings::MicrophoneCameraState
78 request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = 78 blocked_microphone_camera_state =
79 MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; 79 TabSpecificContentSettings::MICROPHONE_ACCESSED |
80 request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission = 80 TabSpecificContentSettings::MICROPHONE_BLOCKED |
81 MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; 81 TabSpecificContentSettings::CAMERA_ACCESSED |
82 TabSpecificContentSettings::CAMERA_BLOCKED;
82 content_settings->OnMediaStreamPermissionSet(GURL("http://google.com"), 83 content_settings->OnMediaStreamPermissionSet(GURL("http://google.com"),
83 request_permissions); 84 blocked_microphone_camera_state,
85 std::string(),
86 std::string(),
87 std::string(),
88 std::string());
84 89
85 // Check that only the respective content types are affected. 90 // Check that only the respective content types are affected.
86 EXPECT_TRUE(content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)); 91 EXPECT_TRUE(content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES));
87 EXPECT_FALSE( 92 EXPECT_FALSE(
88 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); 93 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT));
89 EXPECT_FALSE( 94 EXPECT_FALSE(
90 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS)); 95 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS));
91 EXPECT_FALSE( 96 EXPECT_FALSE(
92 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); 97 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES));
93 EXPECT_TRUE(content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS)); 98 EXPECT_TRUE(content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS));
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 GURL("http://google.com"), 197 GURL("http://google.com"),
193 "C=D", 198 "C=D",
194 options, 199 options,
195 true); 200 true);
196 ASSERT_TRUE( 201 ASSERT_TRUE(
197 content_settings->IsContentAllowed(CONTENT_SETTINGS_TYPE_COOKIES)); 202 content_settings->IsContentAllowed(CONTENT_SETTINGS_TYPE_COOKIES));
198 ASSERT_TRUE( 203 ASSERT_TRUE(
199 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); 204 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES));
200 } 205 }
201 206
202 TEST_F(TabSpecificContentSettingsTest, AllowedBlockedMediaContent) {
203 TabSpecificContentSettings* content_settings =
204 TabSpecificContentSettings::FromWebContents(web_contents());
205
206 ASSERT_EQ(TabSpecificContentSettings::MICROPHONE_CAMERA_NOT_ACCESSED,
207 content_settings->GetMicrophoneCameraState());
208
209 // Request and allow microphone access.
210 GURL security_origin("http://google.com");
211 MediaStreamDevicesController::MediaStreamTypeSettingsMap
212 request_permissions;
213 request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission =
214 MediaStreamDevicesController::MEDIA_ALLOWED;
215 content_settings->OnMediaStreamPermissionSet(security_origin,
216 request_permissions);
217 ASSERT_TRUE(content_settings->IsContentAllowed(
218 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
219 ASSERT_FALSE(content_settings->IsContentBlocked(
220 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
221 ASSERT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED,
222 content_settings->GetMicrophoneCameraState());
223
224 // Request and allow camera access.
225 request_permissions.clear();
226 request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission =
227 MediaStreamDevicesController::MEDIA_ALLOWED;
228 content_settings->OnMediaStreamPermissionSet(security_origin,
229 request_permissions);
230 ASSERT_TRUE(content_settings->IsContentAllowed(
231 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
232 ASSERT_FALSE(content_settings->IsContentBlocked(
233 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
234 // cam request should not affect previous mic settings.
235 ASSERT_TRUE(content_settings->IsContentAllowed(
236 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
237 ASSERT_FALSE(content_settings->IsContentBlocked(
238 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
239 ASSERT_EQ(TabSpecificContentSettings::CAMERA_ACCESSED,
240 content_settings->GetMicrophoneCameraState());
241
242 // Request and block microphone access.
243 request_permissions.clear();
244 request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission =
245 MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER;
246 content_settings->OnMediaStreamPermissionSet(security_origin,
247 request_permissions);
248 ASSERT_FALSE(content_settings->IsContentAllowed(
249 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
250 ASSERT_TRUE(content_settings->IsContentBlocked(
251 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
252 // mic request should not affect previous cam settings.
253 ASSERT_TRUE(content_settings->IsContentAllowed(
254 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
255 ASSERT_FALSE(content_settings->IsContentBlocked(
256 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
257 ASSERT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED |
258 TabSpecificContentSettings::MICROPHONE_BLOCKED,
259 content_settings->GetMicrophoneCameraState());
260
261 // Request and block camera access.
262 request_permissions.clear();
263 request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission =
264 MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER;
265 content_settings->OnMediaStreamPermissionSet(security_origin,
266 request_permissions);
267 ASSERT_FALSE(content_settings->IsContentAllowed(
268 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
269 ASSERT_TRUE(content_settings->IsContentBlocked(
270 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
271 // cam request should not affect previous mic settings.
272 ASSERT_FALSE(content_settings->IsContentAllowed(
273 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
274 ASSERT_TRUE(content_settings->IsContentBlocked(
275 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
276 ASSERT_EQ(TabSpecificContentSettings::CAMERA_ACCESSED |
277 TabSpecificContentSettings::CAMERA_BLOCKED,
278 content_settings->GetMicrophoneCameraState());
279
280 // Request and allow microphone and camera access.
281 request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission =
282 MediaStreamDevicesController::MEDIA_ALLOWED;
283 request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission =
284 MediaStreamDevicesController::MEDIA_ALLOWED;
285 content_settings->OnMediaStreamPermissionSet(security_origin,
286 request_permissions);
287 ASSERT_TRUE(content_settings->IsContentAllowed(
288 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
289 ASSERT_FALSE(content_settings->IsContentBlocked(
290 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
291 ASSERT_TRUE(content_settings->IsContentAllowed(
292 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
293 ASSERT_FALSE(content_settings->IsContentBlocked(
294 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
295 ASSERT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED |
296 TabSpecificContentSettings::CAMERA_ACCESSED,
297 content_settings->GetMicrophoneCameraState());
298
299 // Request and block microphone and camera access.
300 request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission =
301 MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER;
302 request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission =
303 MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER;
304 content_settings->OnMediaStreamPermissionSet(security_origin,
305 request_permissions);
306 ASSERT_FALSE(content_settings->IsContentAllowed(
307 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
308 ASSERT_TRUE(content_settings->IsContentBlocked(
309 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
310 ASSERT_FALSE(content_settings->IsContentAllowed(
311 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
312 ASSERT_TRUE(content_settings->IsContentBlocked(
313 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
314 ASSERT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED |
315 TabSpecificContentSettings::MICROPHONE_BLOCKED |
316 TabSpecificContentSettings::CAMERA_ACCESSED |
317 TabSpecificContentSettings::CAMERA_BLOCKED,
318 content_settings->GetMicrophoneCameraState());
319
320 // Request microphone and camera access. Allow microphone, block camera.
321 request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission =
322 MediaStreamDevicesController::MEDIA_ALLOWED;
323 content_settings->OnMediaStreamPermissionSet(security_origin,
324 request_permissions);
325 ASSERT_TRUE(content_settings->IsContentAllowed(
326 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
327 ASSERT_FALSE(content_settings->IsContentBlocked(
328 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
329 ASSERT_FALSE(content_settings->IsContentAllowed(
330 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
331 ASSERT_TRUE(content_settings->IsContentBlocked(
332 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
333 ASSERT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED |
334 TabSpecificContentSettings::CAMERA_ACCESSED |
335 TabSpecificContentSettings::CAMERA_BLOCKED,
336 content_settings->GetMicrophoneCameraState());
337
338 // Request microphone and camera access. Block microphone, allow camera.
339 request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission =
340 MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER;
341 request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission =
342 MediaStreamDevicesController::MEDIA_ALLOWED;
343 content_settings->OnMediaStreamPermissionSet(security_origin,
344 request_permissions);
345 ASSERT_FALSE(content_settings->IsContentAllowed(
346 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
347 ASSERT_TRUE(content_settings->IsContentBlocked(
348 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
349 ASSERT_TRUE(content_settings->IsContentAllowed(
350 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
351 ASSERT_FALSE(content_settings->IsContentBlocked(
352 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
353 ASSERT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED |
354 TabSpecificContentSettings::MICROPHONE_BLOCKED |
355 TabSpecificContentSettings::CAMERA_ACCESSED,
356 content_settings->GetMicrophoneCameraState());
357 }
358
359 TEST_F(TabSpecificContentSettingsTest, EmptyCookieList) { 207 TEST_F(TabSpecificContentSettingsTest, EmptyCookieList) {
360 TabSpecificContentSettings* content_settings = 208 TabSpecificContentSettings* content_settings =
361 TabSpecificContentSettings::FromWebContents(web_contents()); 209 TabSpecificContentSettings::FromWebContents(web_contents());
362 210
363 ASSERT_FALSE( 211 ASSERT_FALSE(
364 content_settings->IsContentAllowed(CONTENT_SETTINGS_TYPE_COOKIES)); 212 content_settings->IsContentAllowed(CONTENT_SETTINGS_TYPE_COOKIES));
365 ASSERT_FALSE( 213 ASSERT_FALSE(
366 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); 214 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES));
367 content_settings->OnCookiesRead(GURL("http://google.com"), 215 content_settings->OnCookiesRead(GURL("http://google.com"),
368 GURL("http://google.com"), 216 GURL("http://google.com"),
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 base::UTF8ToUTF16("text"), 251 base::UTF8ToUTF16("text"),
404 blocked_by_policy); 252 blocked_by_policy);
405 content_settings->OnLocalStorageAccessed(GURL("http://google.com"), 253 content_settings->OnLocalStorageAccessed(GURL("http://google.com"),
406 true, 254 true,
407 blocked_by_policy); 255 blocked_by_policy);
408 content_settings->OnWebDatabaseAccessed(GURL("http://google.com"), 256 content_settings->OnWebDatabaseAccessed(GURL("http://google.com"),
409 base::UTF8ToUTF16("name"), 257 base::UTF8ToUTF16("name"),
410 base::UTF8ToUTF16("display_name"), 258 base::UTF8ToUTF16("display_name"),
411 blocked_by_policy); 259 blocked_by_policy);
412 } 260 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698