Chromium Code Reviews| 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..343d985ba31f27e72bd9affec8fac5b8c1ffe9cb 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,14 @@ class PermissionBubbleManagerTest : public ChromeRenderViewHostTestHarness { |
| PermissionBubbleManagerTest() |
| : ChromeRenderViewHostTestHarness(), |
| request1_("test1"), |
| - request2_("test2") {} |
| + request2_("test2"), |
| + iframe_request_("iframe", GURL("http://www.google.com/some/url")) {} |
|
Greg Billock
2014/05/22 02:06:31
Shall we have an off-domain iframe request test as
leng
2014/05/22 23:57:05
I added a bunch, and made it clearer. (I hope!)
|
| virtual ~PermissionBubbleManagerTest() {} |
| virtual void SetUp() OVERRIDE { |
| ChromeRenderViewHostTestHarness::SetUp(); |
| SetContents(CreateTestWebContents()); |
| + NavigateAndCommit(GURL("http://www.google.com")); |
| manager_.reset(new PermissionBubbleManager(web_contents())); |
| } |
| @@ -91,6 +93,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 +111,7 @@ class PermissionBubbleManagerTest : public ChromeRenderViewHostTestHarness { |
| protected: |
| MockPermissionBubbleRequest request1_; |
| MockPermissionBubbleRequest request2_; |
| + MockPermissionBubbleRequest iframe_request_; |
| MockView view_; |
| scoped_ptr<PermissionBubbleManager> manager_; |
| }; |
| @@ -321,7 +329,6 @@ TEST_F(PermissionBubbleManagerTest, DuplicateQueuedRequest) { |
| } |
| TEST_F(PermissionBubbleManagerTest, ForgetRequestsOnPageNavigation) { |
| - NavigateAndCommit(GURL("http://www.google.com/")); |
| manager_->SetView(&view_); |
| manager_->AddRequest(&request1_); |
| WaitForCoalescing(); |
| @@ -391,3 +398,64 @@ TEST_F(PermissionBubbleManagerTest, TestCancelPendingRequest) { |
| EXPECT_TRUE(request2_.finished()); |
| } |
| +TEST_F(PermissionBubbleManagerTest, MainFrameNoRequestIFrameRequest) { |
| + manager_->SetView(&view_); |
| + manager_->AddRequest(&iframe_request_); |
| + WaitForCoalescing(); |
| + WaitForFrameLoad(); |
| + |
| + EXPECT_TRUE(view_.shown_); |
| + Closing(); |
| + EXPECT_TRUE(iframe_request_.finished()); |
| +} |
| + |
| +TEST_F(PermissionBubbleManagerTest, MainFrameAndIFrameRequests) { |
| + manager_->SetView(&view_); |
| + manager_->AddRequest(&request1_); |
| + manager_->AddRequest(&iframe_request_); |
| + WaitForFrameLoad(); |
| + WaitForCoalescing(); |
| + |
| + EXPECT_TRUE(view_.shown_); |
| + Closing(); |
| + EXPECT_TRUE(request1_.finished()); |
| + EXPECT_FALSE(iframe_request_.finished()); |
| + EXPECT_TRUE(view_.shown_); |
| + Closing(); |
| + EXPECT_TRUE(iframe_request_.finished()); |
| +} |
| + |
| +TEST_F(PermissionBubbleManagerTest, IFrameRequestWhenMainRequestVisible) { |
| + manager_->SetView(&view_); |
| + manager_->AddRequest(&request1_); |
| + WaitForCoalescing(); |
| + EXPECT_TRUE(view_.shown_); |
| + |
| + manager_->AddRequest(&iframe_request_); |
| + WaitForFrameLoad(); |
| + Closing(); |
| + EXPECT_TRUE(request1_.finished()); |
| + EXPECT_FALSE(iframe_request_.finished()); |
| + EXPECT_TRUE(view_.shown_); |
| + Closing(); |
| + EXPECT_TRUE(iframe_request_.finished()); |
| +} |
| + |
| +TEST_F(PermissionBubbleManagerTest, IFrameUserGestureRequest) { |
| + iframe_request_.SetHasUserGesture(); |
| + manager_->SetView(&view_); |
| + manager_->AddRequest(&request1_); |
| + manager_->AddRequest(&iframe_request_); |
| + WaitForFrameLoad(); |
| + WaitForCoalescing(); |
| + manager_->AddRequest(&request2_); |
| + |
| + EXPECT_TRUE(view_.shown_); |
| + Closing(); |
| + EXPECT_TRUE(request1_.finished()); |
| + EXPECT_FALSE(iframe_request_.finished()); |
| + EXPECT_TRUE(view_.shown_); |
| + Closing(); |
| + EXPECT_TRUE(iframe_request_.finished()); |
| + EXPECT_FALSE(request2_.finished()); |
| +} |