| Index: chrome/browser/ui/website_settings/permission_bubble_manager_unittest.cc
|
| diff --git a/chrome/browser/ui/website_settings/permission_bubble_manager_unittest.cc b/chrome/browser/ui/website_settings/permission_bubble_manager_unittest.cc
|
| index 0f43c4f528ee8793003b813e3425a9d0b0176248..e4527b96e34255220c3bdf04fbe81381cfd402f6 100644
|
| --- a/chrome/browser/ui/website_settings/permission_bubble_manager_unittest.cc
|
| +++ b/chrome/browser/ui/website_settings/permission_bubble_manager_unittest.cc
|
| @@ -64,12 +64,17 @@ class PermissionBubbleManagerTest : public ChromeRenderViewHostTestHarness {
|
| PermissionBubbleManagerTest()
|
| : ChromeRenderViewHostTestHarness(),
|
| request1_("test1"),
|
| - request2_("test2") {}
|
| + request2_("test2"),
|
| + iframe_request_same_domain_("iframe",
|
| + GURL("http://www.google.com/some/url")),
|
| + iframe_request_other_domain_("iframe",
|
| + GURL("http://www.youtube.com")) {}
|
| virtual ~PermissionBubbleManagerTest() {}
|
|
|
| virtual void SetUp() OVERRIDE {
|
| ChromeRenderViewHostTestHarness::SetUp();
|
| SetContents(CreateTestWebContents());
|
| + NavigateAndCommit(GURL("http://www.google.com"));
|
|
|
| manager_.reset(new PermissionBubbleManager(web_contents()));
|
| }
|
| @@ -91,6 +96,11 @@ class PermissionBubbleManagerTest : public ChromeRenderViewHostTestHarness {
|
| manager_->Closing();
|
| }
|
|
|
| + void WaitForFrameLoad() {
|
| + manager_->DocumentLoadedInFrame(0, NULL);
|
| + base::MessageLoop::current()->RunUntilIdle();
|
| + }
|
| +
|
| void WaitForCoalescing() {
|
| manager_->DocumentOnLoadCompletedInMainFrame();
|
| base::MessageLoop::current()->RunUntilIdle();
|
| @@ -104,6 +114,8 @@ class PermissionBubbleManagerTest : public ChromeRenderViewHostTestHarness {
|
| protected:
|
| MockPermissionBubbleRequest request1_;
|
| MockPermissionBubbleRequest request2_;
|
| + MockPermissionBubbleRequest iframe_request_same_domain_;
|
| + MockPermissionBubbleRequest iframe_request_other_domain_;
|
| MockView view_;
|
| scoped_ptr<PermissionBubbleManager> manager_;
|
| };
|
| @@ -321,7 +333,6 @@ TEST_F(PermissionBubbleManagerTest, DuplicateQueuedRequest) {
|
| }
|
|
|
| TEST_F(PermissionBubbleManagerTest, ForgetRequestsOnPageNavigation) {
|
| - NavigateAndCommit(GURL("http://www.google.com/"));
|
| manager_->SetView(&view_);
|
| manager_->AddRequest(&request1_);
|
| WaitForCoalescing();
|
| @@ -391,3 +402,123 @@ TEST_F(PermissionBubbleManagerTest, TestCancelPendingRequest) {
|
| EXPECT_TRUE(request2_.finished());
|
| }
|
|
|
| +TEST_F(PermissionBubbleManagerTest, MainFrameNoRequestIFrameRequest) {
|
| + manager_->SetView(&view_);
|
| + manager_->AddRequest(&iframe_request_same_domain_);
|
| + WaitForCoalescing();
|
| + WaitForFrameLoad();
|
| +
|
| + EXPECT_TRUE(view_.shown_);
|
| + Closing();
|
| + EXPECT_TRUE(iframe_request_same_domain_.finished());
|
| +}
|
| +
|
| +TEST_F(PermissionBubbleManagerTest, MainFrameAndIFrameRequestSameDomain) {
|
| + manager_->SetView(&view_);
|
| + manager_->AddRequest(&request1_);
|
| + manager_->AddRequest(&iframe_request_same_domain_);
|
| + WaitForFrameLoad();
|
| + WaitForCoalescing();
|
| +
|
| + EXPECT_TRUE(view_.shown_);
|
| + EXPECT_EQ(2u, view_.permission_requests_.size());
|
| + Closing();
|
| + EXPECT_TRUE(request1_.finished());
|
| + EXPECT_TRUE(iframe_request_same_domain_.finished());
|
| + EXPECT_FALSE(view_.shown_);
|
| +}
|
| +
|
| +TEST_F(PermissionBubbleManagerTest, MainFrameAndIFrameRequestOtherDomain) {
|
| + manager_->SetView(&view_);
|
| + manager_->AddRequest(&request1_);
|
| + manager_->AddRequest(&iframe_request_other_domain_);
|
| + WaitForFrameLoad();
|
| + WaitForCoalescing();
|
| +
|
| + EXPECT_TRUE(view_.shown_);
|
| + Closing();
|
| + EXPECT_TRUE(request1_.finished());
|
| + EXPECT_FALSE(iframe_request_other_domain_.finished());
|
| + EXPECT_TRUE(view_.shown_);
|
| + Closing();
|
| + EXPECT_TRUE(iframe_request_other_domain_.finished());
|
| +}
|
| +
|
| +TEST_F(PermissionBubbleManagerTest, IFrameRequestWhenMainRequestVisible) {
|
| + manager_->SetView(&view_);
|
| + manager_->AddRequest(&request1_);
|
| + WaitForCoalescing();
|
| + EXPECT_TRUE(view_.shown_);
|
| +
|
| + manager_->AddRequest(&iframe_request_same_domain_);
|
| + WaitForFrameLoad();
|
| + EXPECT_EQ(1u, view_.permission_requests_.size());
|
| + Closing();
|
| + EXPECT_TRUE(request1_.finished());
|
| + EXPECT_FALSE(iframe_request_same_domain_.finished());
|
| + EXPECT_TRUE(view_.shown_);
|
| + EXPECT_EQ(1u, view_.permission_requests_.size());
|
| + Closing();
|
| + EXPECT_TRUE(iframe_request_same_domain_.finished());
|
| +}
|
| +
|
| +TEST_F(PermissionBubbleManagerTest,
|
| + IFrameRequestOtherDomainWhenMainRequestVisible) {
|
| + manager_->SetView(&view_);
|
| + manager_->AddRequest(&request1_);
|
| + WaitForCoalescing();
|
| + EXPECT_TRUE(view_.shown_);
|
| +
|
| + manager_->AddRequest(&iframe_request_other_domain_);
|
| + WaitForFrameLoad();
|
| + Closing();
|
| + EXPECT_TRUE(request1_.finished());
|
| + EXPECT_FALSE(iframe_request_other_domain_.finished());
|
| + EXPECT_TRUE(view_.shown_);
|
| + Closing();
|
| + EXPECT_TRUE(iframe_request_other_domain_.finished());
|
| +}
|
| +
|
| +TEST_F(PermissionBubbleManagerTest, IFrameUserGestureRequest) {
|
| + iframe_request_other_domain_.SetHasUserGesture();
|
| + manager_->SetView(&view_);
|
| + manager_->AddRequest(&request1_);
|
| + manager_->AddRequest(&iframe_request_other_domain_);
|
| + WaitForFrameLoad();
|
| + WaitForCoalescing();
|
| + manager_->AddRequest(&request2_);
|
| +
|
| + EXPECT_TRUE(view_.shown_);
|
| + Closing();
|
| + EXPECT_TRUE(request1_.finished());
|
| + EXPECT_FALSE(iframe_request_other_domain_.finished());
|
| + EXPECT_FALSE(request2_.finished());
|
| + EXPECT_TRUE(view_.shown_);
|
| + Closing();
|
| + EXPECT_TRUE(iframe_request_other_domain_.finished());
|
| + EXPECT_FALSE(request2_.finished());
|
| +}
|
| +
|
| +TEST_F(PermissionBubbleManagerTest, AllUserGestureRequests) {
|
| + iframe_request_other_domain_.SetHasUserGesture();
|
| + request2_.SetHasUserGesture();
|
| + manager_->SetView(&view_);
|
| + manager_->AddRequest(&request1_);
|
| + manager_->AddRequest(&iframe_request_other_domain_);
|
| + WaitForCoalescing();
|
| + WaitForFrameLoad();
|
| + manager_->AddRequest(&request2_);
|
| +
|
| + EXPECT_TRUE(view_.shown_);
|
| + Closing();
|
| + EXPECT_TRUE(request1_.finished());
|
| + EXPECT_FALSE(request2_.finished());
|
| + EXPECT_FALSE(iframe_request_other_domain_.finished());
|
| + EXPECT_TRUE(view_.shown_);
|
| + Closing();
|
| + EXPECT_TRUE(request2_.finished());
|
| + EXPECT_FALSE(iframe_request_other_domain_.finished());
|
| + Closing();
|
| + EXPECT_TRUE(iframe_request_other_domain_.finished());
|
| + EXPECT_FALSE(view_.shown_);
|
| +}
|
|
|