OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/permissions/permission_context_base.h" | 5 #include "chrome/browser/permissions/permission_context_base.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 // Simulates non-valid requesting URL. | 335 // Simulates non-valid requesting URL. |
336 // The permission should be denied but not saved for future use. | 336 // The permission should be denied but not saved for future use. |
337 TEST_F(PermissionContextBaseTests, TestNonValidRequestingUrl) { | 337 TEST_F(PermissionContextBaseTests, TestNonValidRequestingUrl) { |
338 TestRequestPermissionInvalidUrl(content::PermissionType::GEOLOCATION, | 338 TestRequestPermissionInvalidUrl(content::PermissionType::GEOLOCATION, |
339 CONTENT_SETTINGS_TYPE_GEOLOCATION); | 339 CONTENT_SETTINGS_TYPE_GEOLOCATION); |
340 TestRequestPermissionInvalidUrl(content::PermissionType::NOTIFICATIONS, | 340 TestRequestPermissionInvalidUrl(content::PermissionType::NOTIFICATIONS, |
341 CONTENT_SETTINGS_TYPE_NOTIFICATIONS); | 341 CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
342 TestRequestPermissionInvalidUrl(content::PermissionType::MIDI_SYSEX, | 342 TestRequestPermissionInvalidUrl(content::PermissionType::MIDI_SYSEX, |
343 CONTENT_SETTINGS_TYPE_MIDI_SYSEX); | 343 CONTENT_SETTINGS_TYPE_MIDI_SYSEX); |
344 TestRequestPermissionInvalidUrl(content::PermissionType::PUSH_MESSAGING, | 344 TestRequestPermissionInvalidUrl(content::PermissionType::PUSH_MESSAGING, |
345 CONTENT_SETTINGS_TYPE_PUSH_MESSAGING); | 345 CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
346 #if defined(OS_ANDROID) || defined(OS_CHROMEOS) | 346 #if defined(OS_ANDROID) || defined(OS_CHROMEOS) |
347 TestRequestPermissionInvalidUrl( | 347 TestRequestPermissionInvalidUrl( |
348 content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, | 348 content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, |
349 CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER); | 349 CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER); |
350 #endif | 350 #endif |
351 } | 351 } |
352 | 352 |
353 #if defined(OS_ANDROID) | 353 #if defined(OS_ANDROID) |
354 // This test is specific to Android because other platforms use bubbles. | 354 // This test is specific to Android because other platforms use bubbles. |
355 TEST_F(PermissionContextBaseTests, TestGrantAndRevokeWithInfobars) { | 355 TEST_F(PermissionContextBaseTests, TestGrantAndRevokeWithInfobars) { |
356 TestGrantAndRevoke_TestContent(content::PermissionType::GEOLOCATION, | 356 TestGrantAndRevoke_TestContent(content::PermissionType::GEOLOCATION, |
357 CONTENT_SETTINGS_TYPE_GEOLOCATION, | 357 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
358 CONTENT_SETTING_ASK); | 358 CONTENT_SETTING_ASK); |
359 TestGrantAndRevoke_TestContent(content::PermissionType::MIDI_SYSEX, | 359 TestGrantAndRevoke_TestContent(content::PermissionType::MIDI_SYSEX, |
360 CONTENT_SETTINGS_TYPE_MIDI_SYSEX, | 360 CONTENT_SETTINGS_TYPE_MIDI_SYSEX, |
361 CONTENT_SETTING_ASK); | 361 CONTENT_SETTING_ASK); |
362 TestGrantAndRevoke_TestContent( | 362 TestGrantAndRevoke_TestContent( |
363 content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, | 363 content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, |
364 CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, CONTENT_SETTING_ASK); | 364 CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, CONTENT_SETTING_ASK); |
365 // TODO(timvolodine): currently no test for | 365 // TODO(timvolodine): currently no test for |
366 // CONTENT_SETTINGS_TYPE_NOTIFICATIONS because notification permissions work | 366 // CONTENT_SETTINGS_TYPE_NOTIFICATIONS because notification permissions work |
367 // differently with infobars as compared to bubbles (crbug.com/453784). | 367 // differently with infobars as compared to bubbles (crbug.com/453784). |
368 // TODO(timvolodine): currently no test for | |
369 // CONTENT_SETTINGS_TYPE_PUSH_MESSAGING because infobars do not implement push | |
370 // messaging permissions (crbug.com/453788). | |
371 } | 368 } |
372 #endif | 369 #endif |
373 | 370 |
374 #if !defined(OS_ANDROID) | 371 #if !defined(OS_ANDROID) |
375 // Simulates granting and revoking of permissions using permission bubbles. | 372 // Simulates granting and revoking of permissions using permission bubbles. |
376 // This test shouldn't run on mobile because mobile platforms use infobars. | 373 // This test shouldn't run on mobile because mobile platforms use infobars. |
377 TEST_F(PermissionContextBaseTests, TestGrantAndRevokeWithBubbles) { | 374 TEST_F(PermissionContextBaseTests, TestGrantAndRevokeWithBubbles) { |
378 TestGrantAndRevoke_TestContent(content::PermissionType::GEOLOCATION, | 375 TestGrantAndRevoke_TestContent(content::PermissionType::GEOLOCATION, |
379 CONTENT_SETTINGS_TYPE_GEOLOCATION, | 376 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
380 CONTENT_SETTING_ASK); | 377 CONTENT_SETTING_ASK); |
381 #if defined(ENABLE_NOTIFICATIONS) | 378 #if defined(ENABLE_NOTIFICATIONS) |
382 TestGrantAndRevoke_TestContent(content::PermissionType::NOTIFICATIONS, | 379 TestGrantAndRevoke_TestContent(content::PermissionType::NOTIFICATIONS, |
383 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, | 380 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
384 CONTENT_SETTING_ASK); | 381 CONTENT_SETTING_ASK); |
385 #endif | 382 #endif |
386 TestGrantAndRevoke_TestContent(content::PermissionType::MIDI_SYSEX, | 383 TestGrantAndRevoke_TestContent(content::PermissionType::MIDI_SYSEX, |
387 CONTENT_SETTINGS_TYPE_MIDI_SYSEX, | 384 CONTENT_SETTINGS_TYPE_MIDI_SYSEX, |
388 CONTENT_SETTING_ASK); | 385 CONTENT_SETTING_ASK); |
389 TestGrantAndRevoke_TestContent(content::PermissionType::PUSH_MESSAGING, | 386 TestGrantAndRevoke_TestContent(content::PermissionType::PUSH_MESSAGING, |
390 CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, | 387 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
391 CONTENT_SETTING_ASK); | 388 CONTENT_SETTING_ASK); |
392 } | 389 } |
393 #endif | 390 #endif |
394 | 391 |
395 // Tests the global kill switch by enabling/disabling the Field Trials. | 392 // Tests the global kill switch by enabling/disabling the Field Trials. |
396 TEST_F(PermissionContextBaseTests, TestGlobalKillSwitch) { | 393 TEST_F(PermissionContextBaseTests, TestGlobalKillSwitch) { |
397 TestGlobalPermissionsKillSwitch(content::PermissionType::GEOLOCATION, | 394 TestGlobalPermissionsKillSwitch(content::PermissionType::GEOLOCATION, |
398 CONTENT_SETTINGS_TYPE_GEOLOCATION); | 395 CONTENT_SETTINGS_TYPE_GEOLOCATION); |
399 TestGlobalPermissionsKillSwitch(content::PermissionType::NOTIFICATIONS, | 396 TestGlobalPermissionsKillSwitch(content::PermissionType::NOTIFICATIONS, |
400 CONTENT_SETTINGS_TYPE_NOTIFICATIONS); | 397 CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
401 TestGlobalPermissionsKillSwitch(content::PermissionType::MIDI_SYSEX, | 398 TestGlobalPermissionsKillSwitch(content::PermissionType::MIDI_SYSEX, |
402 CONTENT_SETTINGS_TYPE_MIDI_SYSEX); | 399 CONTENT_SETTINGS_TYPE_MIDI_SYSEX); |
403 TestGlobalPermissionsKillSwitch(content::PermissionType::PUSH_MESSAGING, | 400 TestGlobalPermissionsKillSwitch(content::PermissionType::PUSH_MESSAGING, |
404 CONTENT_SETTINGS_TYPE_PUSH_MESSAGING); | 401 CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
405 TestGlobalPermissionsKillSwitch(content::PermissionType::DURABLE_STORAGE, | 402 TestGlobalPermissionsKillSwitch(content::PermissionType::DURABLE_STORAGE, |
406 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE); | 403 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE); |
407 #if defined(OS_ANDROID) || defined(OS_CHROMEOS) | 404 #if defined(OS_ANDROID) || defined(OS_CHROMEOS) |
408 TestGlobalPermissionsKillSwitch( | 405 TestGlobalPermissionsKillSwitch( |
409 content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, | 406 content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, |
410 CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER); | 407 CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER); |
411 #endif | 408 #endif |
412 TestGlobalPermissionsKillSwitch(content::PermissionType::AUDIO_CAPTURE, | 409 TestGlobalPermissionsKillSwitch(content::PermissionType::AUDIO_CAPTURE, |
413 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC); | 410 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC); |
414 TestGlobalPermissionsKillSwitch(content::PermissionType::VIDEO_CAPTURE, | 411 TestGlobalPermissionsKillSwitch(content::PermissionType::VIDEO_CAPTURE, |
415 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA); | 412 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA); |
416 } | 413 } |
417 | 414 |
418 TEST_F(PermissionContextBaseTests, TestParallelRequestsAllowed) { | 415 TEST_F(PermissionContextBaseTests, TestParallelRequestsAllowed) { |
419 TestParallelRequests(CONTENT_SETTING_ALLOW); | 416 TestParallelRequests(CONTENT_SETTING_ALLOW); |
420 } | 417 } |
421 | 418 |
422 TEST_F(PermissionContextBaseTests, TestParallelRequestsBlocked) { | 419 TEST_F(PermissionContextBaseTests, TestParallelRequestsBlocked) { |
423 TestParallelRequests(CONTENT_SETTING_BLOCK); | 420 TestParallelRequests(CONTENT_SETTING_BLOCK); |
424 } | 421 } |
425 | 422 |
426 TEST_F(PermissionContextBaseTests, TestParallelRequestsDismissed) { | 423 TEST_F(PermissionContextBaseTests, TestParallelRequestsDismissed) { |
427 TestParallelRequests(CONTENT_SETTING_ASK); | 424 TestParallelRequests(CONTENT_SETTING_ASK); |
428 } | 425 } |
OLD | NEW |