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

Side by Side Diff: chrome/browser/permissions/permission_context_base_unittest.cc

Issue 2686463002: Add a source to the result of PermissionContextBase::GetPermissionStatus (Closed)
Patch Set: Add a source to the result of PermissionContextBase::GetPermissionStatus Created 3 years, 10 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
OLDNEW
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 <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 i + 1); 368 i + 1);
369 } else { 369 } else {
370 histograms.ExpectBucketCount( 370 histograms.ExpectBucketCount(
371 "Permissions.AutoBlocker.EmbargoStatus", 371 "Permissions.AutoBlocker.EmbargoStatus",
372 PermissionEmbargoStatus::REPEATED_DISMISSALS, 1); 372 PermissionEmbargoStatus::REPEATED_DISMISSALS, 1);
373 } 373 }
374 374
375 ASSERT_EQ(1u, permission_context.decisions().size()); 375 ASSERT_EQ(1u, permission_context.decisions().size());
376 EXPECT_EQ(CONTENT_SETTING_ASK, permission_context.decisions()[0]); 376 EXPECT_EQ(CONTENT_SETTING_ASK, permission_context.decisions()[0]);
377 EXPECT_TRUE(permission_context.tab_context_updated()); 377 EXPECT_TRUE(permission_context.tab_context_updated());
378 EXPECT_EQ(expected, permission_context.GetPermissionStatus(url, url)); 378 PermissionResult result =
379 permission_context.GetPermissionStatus(url, url);
380 EXPECT_EQ(expected, result.content_setting);
381 EXPECT_EQ(PermissionStatusSource::UNSPECIFIED, result.source);
379 } 382 }
380 383
381 TestPermissionContext permission_context(profile(), permission_type, 384 TestPermissionContext permission_context(profile(), permission_type,
382 content_settings_type); 385 content_settings_type);
383 const PermissionRequestID id( 386 const PermissionRequestID id(
384 web_contents()->GetRenderProcessHost()->GetID(), 387 web_contents()->GetRenderProcessHost()->GetID(),
385 web_contents()->GetMainFrame()->GetRoutingID(), -1); 388 web_contents()->GetMainFrame()->GetRoutingID(), -1);
386 389
387 permission_context.SetRespondPermissionCallback( 390 permission_context.SetRespondPermissionCallback(
388 base::Bind(&PermissionContextBaseTests::RespondToPermission, 391 base::Bind(&PermissionContextBaseTests::RespondToPermission,
389 base::Unretained(this), &permission_context, id, url, false, 392 base::Unretained(this), &permission_context, id, url, false,
390 CONTENT_SETTING_ASK)); 393 CONTENT_SETTING_ASK));
391 394
392 permission_context.RequestPermission( 395 permission_context.RequestPermission(
393 web_contents(), id, url, true /* user_gesture */, 396 web_contents(), id, url, true /* user_gesture */,
394 base::Bind(&TestPermissionContext::TrackPermissionDecision, 397 base::Bind(&TestPermissionContext::TrackPermissionDecision,
395 base::Unretained(&permission_context))); 398 base::Unretained(&permission_context)));
396 399
397 EXPECT_EQ(CONTENT_SETTING_BLOCK, 400 PermissionResult result = permission_context.GetPermissionStatus(url, url);
398 permission_context.GetPermissionStatus(url, url)); 401 EXPECT_EQ(CONTENT_SETTING_BLOCK, result.content_setting);
402 EXPECT_EQ(PermissionStatusSource::UNSPECIFIED, result.source);
399 } 403 }
400 404
401 void TestBlockOnSeveralDismissals_TestContent() { 405 void TestBlockOnSeveralDismissals_TestContent() {
402 GURL url("https://www.google.com"); 406 GURL url("https://www.google.com");
403 NavigateAndCommit(url); 407 NavigateAndCommit(url);
404 base::HistogramTester histograms; 408 base::HistogramTester histograms;
405 409
406 // First, ensure that > 3 dismissals behaves correctly. 410 // First, ensure that > 3 dismissals behaves correctly.
407 for (uint32_t i = 0; i < 4; ++i) { 411 for (uint32_t i = 0; i < 4; ++i) {
408 TestPermissionContext permission_context( 412 TestPermissionContext permission_context(
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 base::Unretained(this), &permission_context, id, url, 511 base::Unretained(this), &permission_context, id, url,
508 false, CONTENT_SETTING_ASK)); 512 false, CONTENT_SETTING_ASK));
509 permission_context.RequestPermission( 513 permission_context.RequestPermission(
510 web_contents(), id, url, true /* user_gesture */, 514 web_contents(), id, url, true /* user_gesture */,
511 base::Bind(&TestPermissionContext::TrackPermissionDecision, 515 base::Bind(&TestPermissionContext::TrackPermissionDecision,
512 base::Unretained(&permission_context))); 516 base::Unretained(&permission_context)));
513 517
514 EXPECT_EQ(1u, permission_context.decisions().size()); 518 EXPECT_EQ(1u, permission_context.decisions().size());
515 ASSERT_EQ(CONTENT_SETTING_ASK, permission_context.decisions()[0]); 519 ASSERT_EQ(CONTENT_SETTING_ASK, permission_context.decisions()[0]);
516 EXPECT_TRUE(permission_context.tab_context_updated()); 520 EXPECT_TRUE(permission_context.tab_context_updated());
517 EXPECT_EQ(expected, permission_context.GetPermissionStatus(url, url)); 521 PermissionResult result =
522 permission_context.GetPermissionStatus(url, url);
523 EXPECT_EQ(expected, result.content_setting);
524 EXPECT_EQ(PermissionStatusSource::UNSPECIFIED, result.source);
518 525
519 histograms.ExpectTotalCount( 526 histograms.ExpectTotalCount(
520 "Permissions.Prompt.Dismissed.PriorDismissCount.MidiSysEx", i + 1); 527 "Permissions.Prompt.Dismissed.PriorDismissCount.MidiSysEx", i + 1);
521 histograms.ExpectBucketCount( 528 histograms.ExpectBucketCount(
522 "Permissions.Prompt.Dismissed.PriorDismissCount.MidiSysEx", i, 1); 529 "Permissions.Prompt.Dismissed.PriorDismissCount.MidiSysEx", i, 1);
523 530
524 histograms.ExpectTotalCount("Permissions.AutoBlocker.EmbargoStatus", 531 histograms.ExpectTotalCount("Permissions.AutoBlocker.EmbargoStatus",
525 i + 1); 532 i + 1);
526 if (i < 4) { 533 if (i < 4) {
527 histograms.ExpectUniqueSample("Permissions.AutoBlocker.EmbargoStatus", 534 histograms.ExpectUniqueSample("Permissions.AutoBlocker.EmbargoStatus",
528 PermissionEmbargoStatus::NOT_EMBARGOED, 535 PermissionEmbargoStatus::NOT_EMBARGOED,
529 i + 1); 536 i + 1);
530 } else { 537 } else {
531 histograms.ExpectBucketCount( 538 histograms.ExpectBucketCount(
532 "Permissions.AutoBlocker.EmbargoStatus", 539 "Permissions.AutoBlocker.EmbargoStatus",
533 PermissionEmbargoStatus::REPEATED_DISMISSALS, 1); 540 PermissionEmbargoStatus::REPEATED_DISMISSALS, 1);
534 } 541 }
535 } 542 }
536 543
537 // Ensure that we finish in the block state. 544 // Ensure that we finish in the block state.
538 TestPermissionContext permission_context( 545 TestPermissionContext permission_context(
539 profile(), content::PermissionType::MIDI_SYSEX, 546 profile(), content::PermissionType::MIDI_SYSEX,
540 CONTENT_SETTINGS_TYPE_MIDI_SYSEX); 547 CONTENT_SETTINGS_TYPE_MIDI_SYSEX);
541 EXPECT_EQ(CONTENT_SETTING_BLOCK, 548 PermissionResult result = permission_context.GetPermissionStatus(url, url);
542 permission_context.GetPermissionStatus(url, url)); 549 EXPECT_EQ(CONTENT_SETTING_BLOCK, result.content_setting);
550 EXPECT_EQ(PermissionStatusSource::UNSPECIFIED, result.source);
551
543 variations::testing::ClearAllVariationParams(); 552 variations::testing::ClearAllVariationParams();
544 } 553 }
545 554
546 void TestRequestPermissionInvalidUrl( 555 void TestRequestPermissionInvalidUrl(
547 content::PermissionType permission_type, 556 content::PermissionType permission_type,
548 ContentSettingsType content_settings_type) { 557 ContentSettingsType content_settings_type) {
549 TestPermissionContext permission_context(profile(), permission_type, 558 TestPermissionContext permission_context(profile(), permission_type,
550 content_settings_type); 559 content_settings_type);
551 GURL url; 560 GURL url;
552 ASSERT_FALSE(url.is_valid()); 561 ASSERT_FALSE(url.is_valid());
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
700 permission_context.SetRespondPermissionCallback( 709 permission_context.SetRespondPermissionCallback(
701 base::Bind(&PermissionContextBaseTests::RespondToPermission, 710 base::Bind(&PermissionContextBaseTests::RespondToPermission,
702 base::Unretained(this), &permission_context, id, url, 711 base::Unretained(this), &permission_context, id, url,
703 true /* persist */, expected_permission_status)); 712 true /* persist */, expected_permission_status));
704 } 713 }
705 714
706 permission_context.RequestPermission( 715 permission_context.RequestPermission(
707 web_contents(), id, url, true /* user_gesture */, 716 web_contents(), id, url, true /* user_gesture */,
708 base::Bind(&TestPermissionContext::TrackPermissionDecision, 717 base::Bind(&TestPermissionContext::TrackPermissionDecision,
709 base::Unretained(&permission_context))); 718 base::Unretained(&permission_context)));
710 EXPECT_EQ(expected_permission_status, 719 PermissionResult result = permission_context.GetPermissionStatus(url, url);
711 permission_context.GetPermissionStatus(url, url)); 720 EXPECT_EQ(expected_permission_status, result.content_setting);
721 EXPECT_EQ(PermissionStatusSource::UNSPECIFIED, result.source);
712 722
713 if (expected_permission_status == CONTENT_SETTING_ALLOW) { 723 if (expected_permission_status == CONTENT_SETTING_ALLOW) {
714 ASSERT_EQ(1u, permission_context.decisions().size()); 724 ASSERT_EQ(1u, permission_context.decisions().size());
715 EXPECT_EQ(expected_permission_status, permission_context.decisions()[0]); 725 EXPECT_EQ(expected_permission_status, permission_context.decisions()[0]);
716 } 726 }
717 histograms.ExpectUniqueSample("Permissions.AutoBlocker.EmbargoStatus", 727 histograms.ExpectUniqueSample("Permissions.AutoBlocker.EmbargoStatus",
718 expected_embargo_reason, 1); 728 expected_embargo_reason, 1);
719 } 729 }
720 730
721 private: 731 private:
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
893 scoped_refptr<MockSafeBrowsingDatabaseManager> db_manager = 903 scoped_refptr<MockSafeBrowsingDatabaseManager> db_manager =
894 new MockSafeBrowsingDatabaseManager(true /* perform_callback */); 904 new MockSafeBrowsingDatabaseManager(true /* perform_callback */);
895 const GURL url("https://www.example.com"); 905 const GURL url("https://www.example.com");
896 std::set<std::string> blacklisted_permissions{"GEOLOCATION"}; 906 std::set<std::string> blacklisted_permissions{"GEOLOCATION"};
897 db_manager->BlacklistUrlPermissions(url, blacklisted_permissions); 907 db_manager->BlacklistUrlPermissions(url, blacklisted_permissions);
898 TestPermissionsBlacklisting(content::PermissionType::NOTIFICATIONS, 908 TestPermissionsBlacklisting(content::PermissionType::NOTIFICATIONS,
899 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, db_manager, 909 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, db_manager,
900 url, 2000 /* timeout */, CONTENT_SETTING_ALLOW, 910 url, 2000 /* timeout */, CONTENT_SETTING_ALLOW,
901 PermissionEmbargoStatus::NOT_EMBARGOED); 911 PermissionEmbargoStatus::NOT_EMBARGOED);
902 } 912 }
OLDNEW
« no previous file with comments | « chrome/browser/permissions/permission_context_base.cc ('k') | chrome/browser/permissions/permission_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698