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

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

Issue 2123653006: Rename PermissionBubbleRequest to PermissionRequest (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@permission_manager_rename
Patch Set: Fix missed file Created 4 years, 5 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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
11 #include "base/test/histogram_tester.h" 11 #include "base/test/histogram_tester.h"
12 #include "chrome/browser/permissions/mock_permission_request.h"
13 #include "chrome/browser/permissions/permission_request.h"
12 #include "chrome/browser/permissions/permission_request_manager.h" 14 #include "chrome/browser/permissions/permission_request_manager.h"
13 #include "chrome/browser/permissions/permission_uma_util.h" 15 #include "chrome/browser/permissions/permission_uma_util.h"
14 #include "chrome/browser/ui/website_settings/mock_permission_bubble_factory.h" 16 #include "chrome/browser/ui/website_settings/mock_permission_bubble_factory.h"
15 #include "chrome/browser/ui/website_settings/mock_permission_bubble_request.h"
16 #include "chrome/browser/ui/website_settings/permission_bubble_request.h"
17 #include "chrome/common/chrome_switches.h" 17 #include "chrome/common/chrome_switches.h"
18 #include "chrome/test/base/chrome_render_view_host_test_harness.h" 18 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
19 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
20 20
21 class PermissionRequestManagerTest : public ChromeRenderViewHostTestHarness { 21 class PermissionRequestManagerTest : public ChromeRenderViewHostTestHarness {
22 public: 22 public:
23 PermissionRequestManagerTest() 23 PermissionRequestManagerTest()
24 : ChromeRenderViewHostTestHarness(), 24 : ChromeRenderViewHostTestHarness(),
25 request1_("test1", PermissionBubbleType::QUOTA), 25 request1_("test1", PermissionRequestType::QUOTA),
26 request2_("test2", PermissionBubbleType::DOWNLOAD), 26 request2_("test2", PermissionRequestType::DOWNLOAD),
27 iframe_request_same_domain_("iframe", 27 iframe_request_same_domain_("iframe",
28 GURL("http://www.google.com/some/url")), 28 GURL("http://www.google.com/some/url")),
29 iframe_request_other_domain_("iframe", 29 iframe_request_other_domain_("iframe",
30 GURL("http://www.youtube.com")) {} 30 GURL("http://www.youtube.com")) {}
31 ~PermissionRequestManagerTest() override {} 31 ~PermissionRequestManagerTest() override {}
32 32
33 void SetUp() override { 33 void SetUp() override {
34 ChromeRenderViewHostTestHarness::SetUp(); 34 ChromeRenderViewHostTestHarness::SetUp();
35 SetContents(CreateTestWebContents()); 35 SetContents(CreateTestWebContents());
36 NavigateAndCommit(GURL("http://www.google.com")); 36 NavigateAndCommit(GURL("http://www.google.com"));
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 void MockTabSwitchAway() { manager_->HideBubble(); } 75 void MockTabSwitchAway() { manager_->HideBubble(); }
76 76
77 void MockTabSwitchBack() { manager_->DisplayPendingRequests(); } 77 void MockTabSwitchBack() { manager_->DisplayPendingRequests(); }
78 78
79 virtual void NavigationEntryCommitted( 79 virtual void NavigationEntryCommitted(
80 const content::LoadCommittedDetails& details) { 80 const content::LoadCommittedDetails& details) {
81 manager_->NavigationEntryCommitted(details); 81 manager_->NavigationEntryCommitted(details);
82 } 82 }
83 83
84 protected: 84 protected:
85 MockPermissionBubbleRequest request1_; 85 MockPermissionRequest request1_;
86 MockPermissionBubbleRequest request2_; 86 MockPermissionRequest request2_;
87 MockPermissionBubbleRequest iframe_request_same_domain_; 87 MockPermissionRequest iframe_request_same_domain_;
88 MockPermissionBubbleRequest iframe_request_other_domain_; 88 MockPermissionRequest iframe_request_other_domain_;
89 std::unique_ptr<PermissionRequestManager> manager_; 89 std::unique_ptr<PermissionRequestManager> manager_;
90 std::unique_ptr<MockPermissionBubbleFactory> view_factory_; 90 std::unique_ptr<MockPermissionBubbleFactory> view_factory_;
91 }; 91 };
92 92
93 TEST_F(PermissionRequestManagerTest, SingleRequest) { 93 TEST_F(PermissionRequestManagerTest, SingleRequest) {
94 manager_->AddRequest(&request1_); 94 manager_->AddRequest(&request1_);
95 manager_->DisplayPendingRequests(); 95 manager_->DisplayPendingRequests();
96 WaitForCoalescing(); 96 WaitForCoalescing();
97 97
98 EXPECT_TRUE(view_factory_->is_visible()); 98 EXPECT_TRUE(view_factory_->is_visible());
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 EXPECT_FALSE(request1_.finished()); 245 EXPECT_FALSE(request1_.finished());
246 246
247 WaitForCoalescing(); 247 WaitForCoalescing();
248 EXPECT_TRUE(view_factory_->is_visible()); 248 EXPECT_TRUE(view_factory_->is_visible());
249 ASSERT_EQ(view_factory_->request_count(), 1); 249 ASSERT_EQ(view_factory_->request_count(), 1);
250 } 250 }
251 251
252 TEST_F(PermissionRequestManagerTest, DuplicateRequestCancelled) { 252 TEST_F(PermissionRequestManagerTest, DuplicateRequestCancelled) {
253 manager_->DisplayPendingRequests(); 253 manager_->DisplayPendingRequests();
254 manager_->AddRequest(&request1_); 254 manager_->AddRequest(&request1_);
255 MockPermissionBubbleRequest dupe_request("test1"); 255 MockPermissionRequest dupe_request("test1");
256 manager_->AddRequest(&dupe_request); 256 manager_->AddRequest(&dupe_request);
257 EXPECT_FALSE(dupe_request.finished()); 257 EXPECT_FALSE(dupe_request.finished());
258 EXPECT_FALSE(request1_.finished()); 258 EXPECT_FALSE(request1_.finished());
259 manager_->CancelRequest(&request1_); 259 manager_->CancelRequest(&request1_);
260 EXPECT_TRUE(dupe_request.finished()); 260 EXPECT_TRUE(dupe_request.finished());
261 EXPECT_TRUE(request1_.finished()); 261 EXPECT_TRUE(request1_.finished());
262 } 262 }
263 263
264 TEST_F(PermissionRequestManagerTest, DuplicateQueuedRequest) { 264 TEST_F(PermissionRequestManagerTest, DuplicateQueuedRequest) {
265 manager_->DisplayPendingRequests(); 265 manager_->DisplayPendingRequests();
266 manager_->AddRequest(&request1_); 266 manager_->AddRequest(&request1_);
267 WaitForCoalescing(); 267 WaitForCoalescing();
268 manager_->AddRequest(&request2_); 268 manager_->AddRequest(&request2_);
269 269
270 MockPermissionBubbleRequest dupe_request("test1"); 270 MockPermissionRequest dupe_request("test1");
271 manager_->AddRequest(&dupe_request); 271 manager_->AddRequest(&dupe_request);
272 EXPECT_FALSE(dupe_request.finished()); 272 EXPECT_FALSE(dupe_request.finished());
273 EXPECT_FALSE(request1_.finished()); 273 EXPECT_FALSE(request1_.finished());
274 274
275 MockPermissionBubbleRequest dupe_request2("test2"); 275 MockPermissionRequest dupe_request2("test2");
276 manager_->AddRequest(&dupe_request2); 276 manager_->AddRequest(&dupe_request2);
277 EXPECT_FALSE(dupe_request2.finished()); 277 EXPECT_FALSE(dupe_request2.finished());
278 EXPECT_FALSE(request2_.finished()); 278 EXPECT_FALSE(request2_.finished());
279 279
280 manager_->CancelRequest(&request1_); 280 manager_->CancelRequest(&request1_);
281 EXPECT_TRUE(dupe_request.finished()); 281 EXPECT_TRUE(dupe_request.finished());
282 EXPECT_TRUE(request1_.finished()); 282 EXPECT_TRUE(request1_.finished());
283 283
284 manager_->CancelRequest(&request2_); 284 manager_->CancelRequest(&request2_);
285 EXPECT_TRUE(dupe_request2.finished()); 285 EXPECT_TRUE(dupe_request2.finished());
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 } 455 }
456 456
457 TEST_F(PermissionRequestManagerTest, UMAForSimpleAcceptedBubble) { 457 TEST_F(PermissionRequestManagerTest, UMAForSimpleAcceptedBubble) {
458 base::HistogramTester histograms; 458 base::HistogramTester histograms;
459 459
460 manager_->AddRequest(&request1_); 460 manager_->AddRequest(&request1_);
461 manager_->DisplayPendingRequests(); 461 manager_->DisplayPendingRequests();
462 WaitForCoalescing(); 462 WaitForCoalescing();
463 histograms.ExpectUniqueSample( 463 histograms.ExpectUniqueSample(
464 PermissionUmaUtil::kPermissionsPromptShown, 464 PermissionUmaUtil::kPermissionsPromptShown,
465 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 465 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA),
466 1); 466 1);
467 histograms.ExpectUniqueSample( 467 histograms.ExpectUniqueSample(
468 PermissionUmaUtil::kPermissionsPromptRequestsPerPrompt, 1, 1); 468 PermissionUmaUtil::kPermissionsPromptRequestsPerPrompt, 1, 1);
469 469
470 ToggleAccept(0, true); 470 ToggleAccept(0, true);
471 Accept(); 471 Accept();
472 histograms.ExpectUniqueSample( 472 histograms.ExpectUniqueSample(
473 PermissionUmaUtil::kPermissionsPromptAccepted, 473 PermissionUmaUtil::kPermissionsPromptAccepted,
474 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 1); 474 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA),
475 1);
475 } 476 }
476 477
477 TEST_F(PermissionRequestManagerTest, UMAForSimpleDeniedBubble) { 478 TEST_F(PermissionRequestManagerTest, UMAForSimpleDeniedBubble) {
478 base::HistogramTester histograms; 479 base::HistogramTester histograms;
479 480
480 manager_->AddRequest(&request1_); 481 manager_->AddRequest(&request1_);
481 manager_->DisplayPendingRequests(); 482 manager_->DisplayPendingRequests();
482 WaitForCoalescing(); 483 WaitForCoalescing();
483 // No need to test UMA for showing prompts again, they were tested in 484 // No need to test UMA for showing prompts again, they were tested in
484 // UMAForSimpleAcceptedBubble. 485 // UMAForSimpleAcceptedBubble.
485 486
486 Deny(); 487 Deny();
487 histograms.ExpectUniqueSample( 488 histograms.ExpectUniqueSample(
488 PermissionUmaUtil::kPermissionsPromptDenied, 489 PermissionUmaUtil::kPermissionsPromptDenied,
489 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 1); 490 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA),
491 1);
490 } 492 }
491 493
492 // This code path (calling Accept on a non-merged bubble, with no accepted 494 // This code path (calling Accept on a non-merged bubble, with no accepted
493 // permission) would never be used in actual Chrome, but its still tested for 495 // permission) would never be used in actual Chrome, but its still tested for
494 // completeness. 496 // completeness.
495 TEST_F(PermissionRequestManagerTest, UMAForSimpleDeniedBubbleAlternatePath) { 497 TEST_F(PermissionRequestManagerTest, UMAForSimpleDeniedBubbleAlternatePath) {
496 base::HistogramTester histograms; 498 base::HistogramTester histograms;
497 499
498 manager_->AddRequest(&request1_); 500 manager_->AddRequest(&request1_);
499 manager_->DisplayPendingRequests(); 501 manager_->DisplayPendingRequests();
500 WaitForCoalescing(); 502 WaitForCoalescing();
501 // No need to test UMA for showing prompts again, they were tested in 503 // No need to test UMA for showing prompts again, they were tested in
502 // UMAForSimpleAcceptedBubble. 504 // UMAForSimpleAcceptedBubble.
503 505
504 ToggleAccept(0, false); 506 ToggleAccept(0, false);
505 Accept(); 507 Accept();
506 histograms.ExpectUniqueSample( 508 histograms.ExpectUniqueSample(
507 PermissionUmaUtil::kPermissionsPromptDenied, 509 PermissionUmaUtil::kPermissionsPromptDenied,
508 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 1); 510 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA),
511 1);
509 } 512 }
510 513
511 TEST_F(PermissionRequestManagerTest, UMAForMergedAcceptedBubble) { 514 TEST_F(PermissionRequestManagerTest, UMAForMergedAcceptedBubble) {
512 base::HistogramTester histograms; 515 base::HistogramTester histograms;
513 516
514 manager_->AddRequest(&request1_); 517 manager_->AddRequest(&request1_);
515 manager_->AddRequest(&request2_); 518 manager_->AddRequest(&request2_);
516 manager_->DisplayPendingRequests(); 519 manager_->DisplayPendingRequests();
517 WaitForCoalescing(); 520 WaitForCoalescing();
518 521
519 histograms.ExpectUniqueSample( 522 histograms.ExpectUniqueSample(
520 PermissionUmaUtil::kPermissionsPromptShown, 523 PermissionUmaUtil::kPermissionsPromptShown,
521 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::MULTIPLE), 524 static_cast<base::HistogramBase::Sample>(PermissionRequestType::MULTIPLE),
522 1); 525 1);
523 histograms.ExpectBucketCount( 526 histograms.ExpectBucketCount(
524 PermissionUmaUtil::kPermissionsPromptMergedBubbleTypes, 527 PermissionUmaUtil::kPermissionsPromptMergedBubbleTypes,
525 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 528 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA),
526 1); 529 1);
527 histograms.ExpectBucketCount( 530 histograms.ExpectBucketCount(
528 PermissionUmaUtil::kPermissionsPromptMergedBubbleTypes, 531 PermissionUmaUtil::kPermissionsPromptMergedBubbleTypes,
529 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::DOWNLOAD), 532 static_cast<base::HistogramBase::Sample>(PermissionRequestType::DOWNLOAD),
530 1); 533 1);
531 histograms.ExpectUniqueSample( 534 histograms.ExpectUniqueSample(
532 PermissionUmaUtil::kPermissionsPromptRequestsPerPrompt, 2, 1); 535 PermissionUmaUtil::kPermissionsPromptRequestsPerPrompt, 2, 1);
533 536
534 ToggleAccept(0, true); 537 ToggleAccept(0, true);
535 ToggleAccept(1, true); 538 ToggleAccept(1, true);
536 Accept(); 539 Accept();
537 540
538 histograms.ExpectUniqueSample( 541 histograms.ExpectUniqueSample(
539 PermissionUmaUtil::kPermissionsPromptAccepted, 542 PermissionUmaUtil::kPermissionsPromptAccepted,
540 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::MULTIPLE), 543 static_cast<base::HistogramBase::Sample>(PermissionRequestType::MULTIPLE),
541 1); 544 1);
542 histograms.ExpectBucketCount( 545 histograms.ExpectBucketCount(
543 PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted, 546 PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted,
544 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 547 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA),
545 1); 548 1);
546 histograms.ExpectBucketCount( 549 histograms.ExpectBucketCount(
547 PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted, 550 PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted,
548 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::DOWNLOAD), 551 static_cast<base::HistogramBase::Sample>(PermissionRequestType::DOWNLOAD),
549 1); 552 1);
550 } 553 }
551 554
552 TEST_F(PermissionRequestManagerTest, UMAForMergedMixedBubble) { 555 TEST_F(PermissionRequestManagerTest, UMAForMergedMixedBubble) {
553 base::HistogramTester histograms; 556 base::HistogramTester histograms;
554 557
555 manager_->AddRequest(&request1_); 558 manager_->AddRequest(&request1_);
556 manager_->AddRequest(&request2_); 559 manager_->AddRequest(&request2_);
557 manager_->DisplayPendingRequests(); 560 manager_->DisplayPendingRequests();
558 WaitForCoalescing(); 561 WaitForCoalescing();
559 // No need to test UMA for showing prompts again, they were tested in 562 // No need to test UMA for showing prompts again, they were tested in
560 // UMAForMergedAcceptedBubble. 563 // UMAForMergedAcceptedBubble.
561 564
562 ToggleAccept(0, true); 565 ToggleAccept(0, true);
563 ToggleAccept(1, false); 566 ToggleAccept(1, false);
564 Accept(); 567 Accept();
565 568
566 histograms.ExpectUniqueSample( 569 histograms.ExpectUniqueSample(
567 PermissionUmaUtil::kPermissionsPromptDenied, 570 PermissionUmaUtil::kPermissionsPromptDenied,
568 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::MULTIPLE), 571 static_cast<base::HistogramBase::Sample>(PermissionRequestType::MULTIPLE),
569 1); 572 1);
570 histograms.ExpectBucketCount( 573 histograms.ExpectBucketCount(
571 PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted, 574 PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted,
572 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 575 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA),
573 1); 576 1);
574 histograms.ExpectBucketCount( 577 histograms.ExpectBucketCount(
575 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied, 578 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied,
576 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::DOWNLOAD), 579 static_cast<base::HistogramBase::Sample>(PermissionRequestType::DOWNLOAD),
577 1); 580 1);
578 } 581 }
579 582
580 TEST_F(PermissionRequestManagerTest, UMAForMergedDeniedBubble) { 583 TEST_F(PermissionRequestManagerTest, UMAForMergedDeniedBubble) {
581 base::HistogramTester histograms; 584 base::HistogramTester histograms;
582 585
583 manager_->AddRequest(&request1_); 586 manager_->AddRequest(&request1_);
584 manager_->AddRequest(&request2_); 587 manager_->AddRequest(&request2_);
585 manager_->DisplayPendingRequests(); 588 manager_->DisplayPendingRequests();
586 WaitForCoalescing(); 589 WaitForCoalescing();
587 // No need to test UMA for showing prompts again, they were tested in 590 // No need to test UMA for showing prompts again, they were tested in
588 // UMAForMergedAcceptedBubble. 591 // UMAForMergedAcceptedBubble.
589 592
590 ToggleAccept(0, false); 593 ToggleAccept(0, false);
591 ToggleAccept(1, false); 594 ToggleAccept(1, false);
592 Accept(); 595 Accept();
593 596
594 histograms.ExpectUniqueSample( 597 histograms.ExpectUniqueSample(
595 PermissionUmaUtil::kPermissionsPromptDenied, 598 PermissionUmaUtil::kPermissionsPromptDenied,
596 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::MULTIPLE), 599 static_cast<base::HistogramBase::Sample>(PermissionRequestType::MULTIPLE),
597 1); 600 1);
598 histograms.ExpectBucketCount( 601 histograms.ExpectBucketCount(
599 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied, 602 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied,
600 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 603 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA),
601 1); 604 1);
602 histograms.ExpectBucketCount( 605 histograms.ExpectBucketCount(
603 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied, 606 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied,
604 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::DOWNLOAD), 607 static_cast<base::HistogramBase::Sample>(PermissionRequestType::DOWNLOAD),
605 1); 608 1);
606 } 609 }
OLDNEW
« no previous file with comments | « chrome/browser/permissions/permission_request_manager.cc ('k') | chrome/browser/permissions/permission_uma_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698