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 "base/command_line.h" | 5 #include "base/command_line.h" |
6 #include "base/message_loop/message_loop.h" | 6 #include "base/message_loop/message_loop.h" |
7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
8 #include "chrome/browser/ui/website_settings/mock_permission_bubble_request.h" | 8 #include "chrome/browser/ui/website_settings/mock_permission_bubble_request.h" |
9 #include "chrome/browser/ui/website_settings/permission_bubble_manager.h" | 9 #include "chrome/browser/ui/website_settings/permission_bubble_manager.h" |
10 #include "chrome/browser/ui/website_settings/permission_bubble_request.h" | 10 #include "chrome/browser/ui/website_settings/permission_bubble_request.h" |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
57 std::vector<bool> permission_states_; | 57 std::vector<bool> permission_states_; |
58 }; | 58 }; |
59 | 59 |
60 } // namespace | 60 } // namespace |
61 | 61 |
62 class PermissionBubbleManagerTest : public ChromeRenderViewHostTestHarness { | 62 class PermissionBubbleManagerTest : public ChromeRenderViewHostTestHarness { |
63 public: | 63 public: |
64 PermissionBubbleManagerTest() | 64 PermissionBubbleManagerTest() |
65 : ChromeRenderViewHostTestHarness(), | 65 : ChromeRenderViewHostTestHarness(), |
66 request1_("test1"), | 66 request1_("test1"), |
67 request2_("test2") {} | 67 request2_("test2"), |
68 iframe_request_("iframe", GURL("http://www.youtube.com")) {} | |
68 virtual ~PermissionBubbleManagerTest() {} | 69 virtual ~PermissionBubbleManagerTest() {} |
69 | 70 |
70 virtual void SetUp() OVERRIDE { | 71 virtual void SetUp() OVERRIDE { |
71 ChromeRenderViewHostTestHarness::SetUp(); | 72 ChromeRenderViewHostTestHarness::SetUp(); |
72 SetContents(CreateTestWebContents()); | 73 SetContents(CreateTestWebContents()); |
74 NavigateAndCommit(GURL("http://www.google.com")); | |
73 | 75 |
74 manager_.reset(new PermissionBubbleManager(web_contents())); | 76 manager_.reset(new PermissionBubbleManager(web_contents())); |
75 } | 77 } |
76 | 78 |
77 virtual void TearDown() OVERRIDE { | 79 virtual void TearDown() OVERRIDE { |
78 manager_.reset(); | 80 manager_.reset(); |
79 ChromeRenderViewHostTestHarness::TearDown(); | 81 ChromeRenderViewHostTestHarness::TearDown(); |
80 } | 82 } |
81 | 83 |
82 void ToggleAccept(int index, bool value) { | 84 void ToggleAccept(int index, bool value) { |
83 manager_->ToggleAccept(index, value); | 85 manager_->ToggleAccept(index, value); |
84 } | 86 } |
85 | 87 |
86 void Accept() { | 88 void Accept() { |
87 manager_->Accept(); | 89 manager_->Accept(); |
88 } | 90 } |
89 | 91 |
90 void Closing() { | 92 void Closing() { |
91 manager_->Closing(); | 93 manager_->Closing(); |
92 } | 94 } |
93 | 95 |
96 void WaitForFrameLoad() { | |
97 manager_->DocumentLoadedInFrame(0, NULL); | |
98 base::MessageLoop::current()->RunUntilIdle(); | |
99 } | |
100 | |
94 void WaitForCoalescing() { | 101 void WaitForCoalescing() { |
95 manager_->DocumentOnLoadCompletedInMainFrame(); | 102 manager_->DocumentOnLoadCompletedInMainFrame(); |
96 base::MessageLoop::current()->RunUntilIdle(); | 103 base::MessageLoop::current()->RunUntilIdle(); |
97 } | 104 } |
98 | 105 |
99 virtual void NavigationEntryCommitted( | 106 virtual void NavigationEntryCommitted( |
100 const content::LoadCommittedDetails& details) { | 107 const content::LoadCommittedDetails& details) { |
101 manager_->NavigationEntryCommitted(details); | 108 manager_->NavigationEntryCommitted(details); |
102 } | 109 } |
103 | 110 |
104 protected: | 111 protected: |
105 MockPermissionBubbleRequest request1_; | 112 MockPermissionBubbleRequest request1_; |
106 MockPermissionBubbleRequest request2_; | 113 MockPermissionBubbleRequest request2_; |
114 MockPermissionBubbleRequest iframe_request_; | |
107 MockView view_; | 115 MockView view_; |
108 scoped_ptr<PermissionBubbleManager> manager_; | 116 scoped_ptr<PermissionBubbleManager> manager_; |
109 }; | 117 }; |
110 | 118 |
111 TEST_F(PermissionBubbleManagerTest, TestFlag) { | 119 TEST_F(PermissionBubbleManagerTest, TestFlag) { |
112 EXPECT_FALSE(PermissionBubbleManager::Enabled()); | 120 EXPECT_FALSE(PermissionBubbleManager::Enabled()); |
113 CommandLine::ForCurrentProcess()->AppendSwitch( | 121 CommandLine::ForCurrentProcess()->AppendSwitch( |
114 switches::kEnablePermissionsBubbles); | 122 switches::kEnablePermissionsBubbles); |
115 EXPECT_TRUE(PermissionBubbleManager::Enabled()); | 123 EXPECT_TRUE(PermissionBubbleManager::Enabled()); |
116 } | 124 } |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
314 EXPECT_TRUE(dupe_request.finished()); | 322 EXPECT_TRUE(dupe_request.finished()); |
315 EXPECT_FALSE(request1_.finished()); | 323 EXPECT_FALSE(request1_.finished()); |
316 | 324 |
317 MockPermissionBubbleRequest dupe_request2("test1"); | 325 MockPermissionBubbleRequest dupe_request2("test1"); |
318 manager_->AddRequest(&dupe_request2); | 326 manager_->AddRequest(&dupe_request2); |
319 EXPECT_TRUE(dupe_request2.finished()); | 327 EXPECT_TRUE(dupe_request2.finished()); |
320 EXPECT_FALSE(request2_.finished()); | 328 EXPECT_FALSE(request2_.finished()); |
321 } | 329 } |
322 | 330 |
323 TEST_F(PermissionBubbleManagerTest, ForgetRequestsOnPageNavigation) { | 331 TEST_F(PermissionBubbleManagerTest, ForgetRequestsOnPageNavigation) { |
324 NavigateAndCommit(GURL("http://www.google.com/")); | |
325 manager_->SetView(&view_); | 332 manager_->SetView(&view_); |
326 manager_->AddRequest(&request1_); | 333 manager_->AddRequest(&request1_); |
327 WaitForCoalescing(); | 334 WaitForCoalescing(); |
328 manager_->AddRequest(&request2_); | 335 manager_->AddRequest(&request2_); |
329 | 336 |
330 EXPECT_TRUE(view_.shown_); | 337 EXPECT_TRUE(view_.shown_); |
331 ASSERT_EQ(1u, view_.permission_requests_.size()); | 338 ASSERT_EQ(1u, view_.permission_requests_.size()); |
332 | 339 |
333 NavigateAndCommit(GURL("http://www2.google.com/")); | 340 NavigateAndCommit(GURL("http://www2.google.com/")); |
334 WaitForCoalescing(); | 341 WaitForCoalescing(); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
384 | 391 |
385 EXPECT_TRUE(view_.shown_); | 392 EXPECT_TRUE(view_.shown_); |
386 EXPECT_EQ(1u, view_.permission_requests_.size()); | 393 EXPECT_EQ(1u, view_.permission_requests_.size()); |
387 manager_->CancelRequest(&request2_); | 394 manager_->CancelRequest(&request2_); |
388 | 395 |
389 EXPECT_TRUE(view_.shown_); | 396 EXPECT_TRUE(view_.shown_); |
390 EXPECT_FALSE(request1_.finished()); | 397 EXPECT_FALSE(request1_.finished()); |
391 EXPECT_TRUE(request2_.finished()); | 398 EXPECT_TRUE(request2_.finished()); |
392 } | 399 } |
393 | 400 |
401 TEST_F(PermissionBubbleManagerTest, MainFrameNoRequestIFrameRequest) { | |
402 manager_->SetView(&view_); | |
403 manager_->AddRequest(&iframe_request_); | |
404 WaitForCoalescing(); | |
405 WaitForFrameLoad(); | |
406 | |
407 EXPECT_TRUE(view_.shown_); | |
408 } | |
409 | |
410 TEST_F(PermissionBubbleManagerTest, MainFrameAndIFrameRequests) { | |
411 manager_->SetView(&view_); | |
412 manager_->AddRequest(&request1_); | |
413 manager_->AddRequest(&iframe_request_); | |
414 WaitForFrameLoad(); | |
415 WaitForCoalescing(); | |
Greg Billock
2014/05/21 17:09:19
Maybe try a request with a url like www.google.com
leng
2014/05/22 00:08:47
I assumed you meant the url to be the iframe url..
| |
416 } | |
OLD | NEW |