| 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 <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/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| 11 #include "chrome/browser/ui/website_settings/mock_permission_bubble_factory.h" | 11 #include "chrome/browser/ui/website_settings/mock_permission_bubble_factory.h" |
| 12 #include "chrome/browser/ui/website_settings/mock_permission_bubble_request.h" | 12 #include "chrome/browser/ui/website_settings/mock_permission_bubble_request.h" |
| 13 #include "chrome/browser/ui/website_settings/permission_bubble_manager.h" | |
| 14 #include "chrome/browser/ui/website_settings/permission_bubble_request.h" | 13 #include "chrome/browser/ui/website_settings/permission_bubble_request.h" |
| 15 #include "chrome/common/chrome_switches.h" | 14 #include "chrome/common/chrome_switches.h" |
| 16 #include "chrome/test/base/chrome_render_view_host_test_harness.h" | 15 #include "chrome/test/base/chrome_render_view_host_test_harness.h" |
| 17 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
| 18 | 17 |
| 19 class PermissionBubbleManagerTest : public ChromeRenderViewHostTestHarness { | 18 class PermissionRequestManagerTest : public ChromeRenderViewHostTestHarness { |
| 20 public: | 19 public: |
| 21 PermissionBubbleManagerTest() | 20 PermissionRequestManagerTest() |
| 22 : ChromeRenderViewHostTestHarness(), | 21 : ChromeRenderViewHostTestHarness(), |
| 23 request1_("test1"), | 22 request1_("test1"), |
| 24 request2_("test2"), | 23 request2_("test2"), |
| 25 iframe_request_same_domain_("iframe", | 24 iframe_request_same_domain_("iframe", |
| 26 GURL("http://www.google.com/some/url")), | 25 GURL("http://www.google.com/some/url")), |
| 27 iframe_request_other_domain_("iframe", | 26 iframe_request_other_domain_("iframe", |
| 28 GURL("http://www.youtube.com")) {} | 27 GURL("http://www.youtube.com")) {} |
| 29 ~PermissionBubbleManagerTest() override {} | 28 ~PermissionRequestManagerTest() override {} |
| 30 | 29 |
| 31 void SetUp() override { | 30 void SetUp() override { |
| 32 ChromeRenderViewHostTestHarness::SetUp(); | 31 ChromeRenderViewHostTestHarness::SetUp(); |
| 33 SetContents(CreateTestWebContents()); | 32 SetContents(CreateTestWebContents()); |
| 34 NavigateAndCommit(GURL("http://www.google.com")); | 33 NavigateAndCommit(GURL("http://www.google.com")); |
| 35 | 34 |
| 36 manager_.reset(new PermissionBubbleManager(web_contents())); | 35 manager_.reset(new PermissionRequestManager(web_contents())); |
| 37 view_factory_.reset(new MockPermissionBubbleFactory(false, manager_.get())); | 36 view_factory_.reset(new MockPermissionBubbleFactory(false, manager_.get())); |
| 38 } | 37 } |
| 39 | 38 |
| 40 void TearDown() override { | 39 void TearDown() override { |
| 41 view_factory_.reset(); | 40 view_factory_.reset(); |
| 42 manager_.reset(); | 41 manager_.reset(); |
| 43 ChromeRenderViewHostTestHarness::TearDown(); | 42 ChromeRenderViewHostTestHarness::TearDown(); |
| 44 } | 43 } |
| 45 | 44 |
| 46 void ToggleAccept(int index, bool value) { | 45 void ToggleAccept(int index, bool value) { |
| 47 manager_->ToggleAccept(index, value); | 46 manager_->ToggleAccept(index, value); |
| 48 } | 47 } |
| 49 | 48 |
| 50 void Accept() { | 49 void Accept() { |
| 51 manager_->Accept(); | 50 manager_->Accept(); |
| 52 } | 51 } |
| 53 | 52 |
| 54 void Closing() { | 53 void Closing() { |
| 55 manager_->Closing(); | 54 manager_->Closing(); |
| 56 } | 55 } |
| 57 | 56 |
| 58 void WaitForFrameLoad() { | 57 void WaitForFrameLoad() { |
| 59 // PermissionBubbleManager ignores all parameters. Yay? | 58 // PermissionRequestManager ignores all parameters. Yay? |
| 60 manager_->DocumentLoadedInFrame(NULL); | 59 manager_->DocumentLoadedInFrame(NULL); |
| 61 base::MessageLoop::current()->RunUntilIdle(); | 60 base::MessageLoop::current()->RunUntilIdle(); |
| 62 } | 61 } |
| 63 | 62 |
| 64 void WaitForCoalescing() { | 63 void WaitForCoalescing() { |
| 65 manager_->DocumentOnLoadCompletedInMainFrame(); | 64 manager_->DocumentOnLoadCompletedInMainFrame(); |
| 66 base::MessageLoop::current()->RunUntilIdle(); | 65 base::MessageLoop::current()->RunUntilIdle(); |
| 67 } | 66 } |
| 68 | 67 |
| 69 void MockTabSwitchAway() { manager_->HideBubble(); } | 68 void MockTabSwitchAway() { manager_->HideBubble(); } |
| 70 | 69 |
| 71 void MockTabSwitchBack() { manager_->DisplayPendingRequests(); } | 70 void MockTabSwitchBack() { manager_->DisplayPendingRequests(); } |
| 72 | 71 |
| 73 virtual void NavigationEntryCommitted( | 72 virtual void NavigationEntryCommitted( |
| 74 const content::LoadCommittedDetails& details) { | 73 const content::LoadCommittedDetails& details) { |
| 75 manager_->NavigationEntryCommitted(details); | 74 manager_->NavigationEntryCommitted(details); |
| 76 } | 75 } |
| 77 | 76 |
| 78 protected: | 77 protected: |
| 79 MockPermissionBubbleRequest request1_; | 78 MockPermissionBubbleRequest request1_; |
| 80 MockPermissionBubbleRequest request2_; | 79 MockPermissionBubbleRequest request2_; |
| 81 MockPermissionBubbleRequest iframe_request_same_domain_; | 80 MockPermissionBubbleRequest iframe_request_same_domain_; |
| 82 MockPermissionBubbleRequest iframe_request_other_domain_; | 81 MockPermissionBubbleRequest iframe_request_other_domain_; |
| 83 std::unique_ptr<PermissionBubbleManager> manager_; | 82 std::unique_ptr<PermissionRequestManager> manager_; |
| 84 std::unique_ptr<MockPermissionBubbleFactory> view_factory_; | 83 std::unique_ptr<MockPermissionBubbleFactory> view_factory_; |
| 85 }; | 84 }; |
| 86 | 85 |
| 87 TEST_F(PermissionBubbleManagerTest, SingleRequest) { | 86 TEST_F(PermissionRequestManagerTest, SingleRequest) { |
| 88 manager_->AddRequest(&request1_); | 87 manager_->AddRequest(&request1_); |
| 89 manager_->DisplayPendingRequests(); | 88 manager_->DisplayPendingRequests(); |
| 90 WaitForCoalescing(); | 89 WaitForCoalescing(); |
| 91 | 90 |
| 92 EXPECT_TRUE(view_factory_->is_visible()); | 91 EXPECT_TRUE(view_factory_->is_visible()); |
| 93 ASSERT_EQ(view_factory_->request_count(), 1); | 92 ASSERT_EQ(view_factory_->request_count(), 1); |
| 94 | 93 |
| 95 ToggleAccept(0, true); | 94 ToggleAccept(0, true); |
| 96 Accept(); | 95 Accept(); |
| 97 EXPECT_TRUE(request1_.granted()); | 96 EXPECT_TRUE(request1_.granted()); |
| 98 } | 97 } |
| 99 | 98 |
| 100 TEST_F(PermissionBubbleManagerTest, SingleRequestViewFirst) { | 99 TEST_F(PermissionRequestManagerTest, SingleRequestViewFirst) { |
| 101 manager_->DisplayPendingRequests(); | 100 manager_->DisplayPendingRequests(); |
| 102 manager_->AddRequest(&request1_); | 101 manager_->AddRequest(&request1_); |
| 103 WaitForCoalescing(); | 102 WaitForCoalescing(); |
| 104 | 103 |
| 105 EXPECT_TRUE(view_factory_->is_visible()); | 104 EXPECT_TRUE(view_factory_->is_visible()); |
| 106 ASSERT_EQ(view_factory_->request_count(), 1); | 105 ASSERT_EQ(view_factory_->request_count(), 1); |
| 107 | 106 |
| 108 ToggleAccept(0, true); | 107 ToggleAccept(0, true); |
| 109 Accept(); | 108 Accept(); |
| 110 EXPECT_TRUE(request1_.granted()); | 109 EXPECT_TRUE(request1_.granted()); |
| 111 } | 110 } |
| 112 | 111 |
| 113 TEST_F(PermissionBubbleManagerTest, TwoRequests) { | 112 TEST_F(PermissionRequestManagerTest, TwoRequests) { |
| 114 manager_->AddRequest(&request1_); | 113 manager_->AddRequest(&request1_); |
| 115 manager_->AddRequest(&request2_); | 114 manager_->AddRequest(&request2_); |
| 116 manager_->DisplayPendingRequests(); | 115 manager_->DisplayPendingRequests(); |
| 117 WaitForCoalescing(); | 116 WaitForCoalescing(); |
| 118 | 117 |
| 119 EXPECT_TRUE(view_factory_->is_visible()); | 118 EXPECT_TRUE(view_factory_->is_visible()); |
| 120 ASSERT_EQ(view_factory_->request_count(), 2); | 119 ASSERT_EQ(view_factory_->request_count(), 2); |
| 121 | 120 |
| 122 ToggleAccept(0, true); | 121 ToggleAccept(0, true); |
| 123 ToggleAccept(1, false); | 122 ToggleAccept(1, false); |
| 124 Accept(); | 123 Accept(); |
| 125 EXPECT_TRUE(request1_.granted()); | 124 EXPECT_TRUE(request1_.granted()); |
| 126 EXPECT_FALSE(request2_.granted()); | 125 EXPECT_FALSE(request2_.granted()); |
| 127 } | 126 } |
| 128 | 127 |
| 129 TEST_F(PermissionBubbleManagerTest, TwoRequestsTabSwitch) { | 128 TEST_F(PermissionRequestManagerTest, TwoRequestsTabSwitch) { |
| 130 manager_->AddRequest(&request1_); | 129 manager_->AddRequest(&request1_); |
| 131 manager_->AddRequest(&request2_); | 130 manager_->AddRequest(&request2_); |
| 132 manager_->DisplayPendingRequests(); | 131 manager_->DisplayPendingRequests(); |
| 133 WaitForCoalescing(); | 132 WaitForCoalescing(); |
| 134 | 133 |
| 135 EXPECT_TRUE(view_factory_->is_visible()); | 134 EXPECT_TRUE(view_factory_->is_visible()); |
| 136 ASSERT_EQ(view_factory_->request_count(), 2); | 135 ASSERT_EQ(view_factory_->request_count(), 2); |
| 137 | 136 |
| 138 ToggleAccept(0, true); | 137 ToggleAccept(0, true); |
| 139 ToggleAccept(1, false); | 138 ToggleAccept(1, false); |
| 140 | 139 |
| 141 MockTabSwitchAway(); | 140 MockTabSwitchAway(); |
| 142 EXPECT_FALSE(view_factory_->is_visible()); | 141 EXPECT_FALSE(view_factory_->is_visible()); |
| 143 | 142 |
| 144 MockTabSwitchBack(); | 143 MockTabSwitchBack(); |
| 145 WaitForCoalescing(); | 144 WaitForCoalescing(); |
| 146 EXPECT_TRUE(view_factory_->is_visible()); | 145 EXPECT_TRUE(view_factory_->is_visible()); |
| 147 ASSERT_EQ(view_factory_->request_count(), 2); | 146 ASSERT_EQ(view_factory_->request_count(), 2); |
| 148 | 147 |
| 149 Accept(); | 148 Accept(); |
| 150 EXPECT_TRUE(request1_.granted()); | 149 EXPECT_TRUE(request1_.granted()); |
| 151 EXPECT_FALSE(request2_.granted()); | 150 EXPECT_FALSE(request2_.granted()); |
| 152 } | 151 } |
| 153 | 152 |
| 154 TEST_F(PermissionBubbleManagerTest, NoRequests) { | 153 TEST_F(PermissionRequestManagerTest, NoRequests) { |
| 155 manager_->DisplayPendingRequests(); | 154 manager_->DisplayPendingRequests(); |
| 156 WaitForCoalescing(); | 155 WaitForCoalescing(); |
| 157 EXPECT_FALSE(view_factory_->is_visible()); | 156 EXPECT_FALSE(view_factory_->is_visible()); |
| 158 } | 157 } |
| 159 | 158 |
| 160 TEST_F(PermissionBubbleManagerTest, NoView) { | 159 TEST_F(PermissionRequestManagerTest, NoView) { |
| 161 manager_->AddRequest(&request1_); | 160 manager_->AddRequest(&request1_); |
| 162 // Don't display the pending requests. | 161 // Don't display the pending requests. |
| 163 WaitForCoalescing(); | 162 WaitForCoalescing(); |
| 164 EXPECT_FALSE(view_factory_->is_visible()); | 163 EXPECT_FALSE(view_factory_->is_visible()); |
| 165 } | 164 } |
| 166 | 165 |
| 167 TEST_F(PermissionBubbleManagerTest, TwoRequestsCoalesce) { | 166 TEST_F(PermissionRequestManagerTest, TwoRequestsCoalesce) { |
| 168 manager_->DisplayPendingRequests(); | 167 manager_->DisplayPendingRequests(); |
| 169 manager_->AddRequest(&request1_); | 168 manager_->AddRequest(&request1_); |
| 170 manager_->AddRequest(&request2_); | 169 manager_->AddRequest(&request2_); |
| 171 EXPECT_FALSE(view_factory_->is_visible()); | 170 EXPECT_FALSE(view_factory_->is_visible()); |
| 172 WaitForCoalescing(); | 171 WaitForCoalescing(); |
| 173 | 172 |
| 174 EXPECT_TRUE(view_factory_->is_visible()); | 173 EXPECT_TRUE(view_factory_->is_visible()); |
| 175 ASSERT_EQ(view_factory_->request_count(), 2); | 174 ASSERT_EQ(view_factory_->request_count(), 2); |
| 176 } | 175 } |
| 177 | 176 |
| 178 TEST_F(PermissionBubbleManagerTest, TwoRequestsDoNotCoalesce) { | 177 TEST_F(PermissionRequestManagerTest, TwoRequestsDoNotCoalesce) { |
| 179 manager_->DisplayPendingRequests(); | 178 manager_->DisplayPendingRequests(); |
| 180 manager_->AddRequest(&request1_); | 179 manager_->AddRequest(&request1_); |
| 181 WaitForCoalescing(); | 180 WaitForCoalescing(); |
| 182 manager_->AddRequest(&request2_); | 181 manager_->AddRequest(&request2_); |
| 183 | 182 |
| 184 EXPECT_TRUE(view_factory_->is_visible()); | 183 EXPECT_TRUE(view_factory_->is_visible()); |
| 185 ASSERT_EQ(view_factory_->request_count(), 1); | 184 ASSERT_EQ(view_factory_->request_count(), 1); |
| 186 } | 185 } |
| 187 | 186 |
| 188 TEST_F(PermissionBubbleManagerTest, TwoRequestsShownInTwoBubbles) { | 187 TEST_F(PermissionRequestManagerTest, TwoRequestsShownInTwoBubbles) { |
| 189 manager_->DisplayPendingRequests(); | 188 manager_->DisplayPendingRequests(); |
| 190 manager_->AddRequest(&request1_); | 189 manager_->AddRequest(&request1_); |
| 191 WaitForCoalescing(); | 190 WaitForCoalescing(); |
| 192 manager_->AddRequest(&request2_); | 191 manager_->AddRequest(&request2_); |
| 193 | 192 |
| 194 EXPECT_TRUE(view_factory_->is_visible()); | 193 EXPECT_TRUE(view_factory_->is_visible()); |
| 195 ASSERT_EQ(view_factory_->request_count(), 1); | 194 ASSERT_EQ(view_factory_->request_count(), 1); |
| 196 | 195 |
| 197 Accept(); | 196 Accept(); |
| 198 WaitForCoalescing(); | 197 WaitForCoalescing(); |
| 199 | 198 |
| 200 EXPECT_TRUE(view_factory_->is_visible()); | 199 EXPECT_TRUE(view_factory_->is_visible()); |
| 201 ASSERT_EQ(view_factory_->request_count(), 1); | 200 ASSERT_EQ(view_factory_->request_count(), 1); |
| 202 ASSERT_EQ(view_factory_->show_count(), 2); | 201 ASSERT_EQ(view_factory_->show_count(), 2); |
| 203 } | 202 } |
| 204 | 203 |
| 205 TEST_F(PermissionBubbleManagerTest, TestAddDuplicateRequest) { | 204 TEST_F(PermissionRequestManagerTest, TestAddDuplicateRequest) { |
| 206 manager_->DisplayPendingRequests(); | 205 manager_->DisplayPendingRequests(); |
| 207 manager_->AddRequest(&request1_); | 206 manager_->AddRequest(&request1_); |
| 208 manager_->AddRequest(&request2_); | 207 manager_->AddRequest(&request2_); |
| 209 manager_->AddRequest(&request1_); | 208 manager_->AddRequest(&request1_); |
| 210 | 209 |
| 211 WaitForCoalescing(); | 210 WaitForCoalescing(); |
| 212 EXPECT_TRUE(view_factory_->is_visible()); | 211 EXPECT_TRUE(view_factory_->is_visible()); |
| 213 ASSERT_EQ(view_factory_->request_count(), 2); | 212 ASSERT_EQ(view_factory_->request_count(), 2); |
| 214 } | 213 } |
| 215 | 214 |
| 216 TEST_F(PermissionBubbleManagerTest, SequentialRequests) { | 215 TEST_F(PermissionRequestManagerTest, SequentialRequests) { |
| 217 manager_->DisplayPendingRequests(); | 216 manager_->DisplayPendingRequests(); |
| 218 manager_->AddRequest(&request1_); | 217 manager_->AddRequest(&request1_); |
| 219 WaitForCoalescing(); | 218 WaitForCoalescing(); |
| 220 EXPECT_TRUE(view_factory_->is_visible()); | 219 EXPECT_TRUE(view_factory_->is_visible()); |
| 221 | 220 |
| 222 Accept(); | 221 Accept(); |
| 223 EXPECT_TRUE(request1_.granted()); | 222 EXPECT_TRUE(request1_.granted()); |
| 224 | 223 |
| 225 EXPECT_FALSE(view_factory_->is_visible()); | 224 EXPECT_FALSE(view_factory_->is_visible()); |
| 226 | 225 |
| 227 manager_->AddRequest(&request2_); | 226 manager_->AddRequest(&request2_); |
| 228 WaitForCoalescing(); | 227 WaitForCoalescing(); |
| 229 EXPECT_TRUE(view_factory_->is_visible()); | 228 EXPECT_TRUE(view_factory_->is_visible()); |
| 230 Accept(); | 229 Accept(); |
| 231 EXPECT_FALSE(view_factory_->is_visible()); | 230 EXPECT_FALSE(view_factory_->is_visible()); |
| 232 EXPECT_TRUE(request2_.granted()); | 231 EXPECT_TRUE(request2_.granted()); |
| 233 } | 232 } |
| 234 | 233 |
| 235 TEST_F(PermissionBubbleManagerTest, SameRequestRejected) { | 234 TEST_F(PermissionRequestManagerTest, SameRequestRejected) { |
| 236 manager_->DisplayPendingRequests(); | 235 manager_->DisplayPendingRequests(); |
| 237 manager_->AddRequest(&request1_); | 236 manager_->AddRequest(&request1_); |
| 238 manager_->AddRequest(&request1_); | 237 manager_->AddRequest(&request1_); |
| 239 EXPECT_FALSE(request1_.finished()); | 238 EXPECT_FALSE(request1_.finished()); |
| 240 | 239 |
| 241 WaitForCoalescing(); | 240 WaitForCoalescing(); |
| 242 EXPECT_TRUE(view_factory_->is_visible()); | 241 EXPECT_TRUE(view_factory_->is_visible()); |
| 243 ASSERT_EQ(view_factory_->request_count(), 1); | 242 ASSERT_EQ(view_factory_->request_count(), 1); |
| 244 } | 243 } |
| 245 | 244 |
| 246 TEST_F(PermissionBubbleManagerTest, DuplicateRequestCancelled) { | 245 TEST_F(PermissionRequestManagerTest, DuplicateRequestCancelled) { |
| 247 manager_->DisplayPendingRequests(); | 246 manager_->DisplayPendingRequests(); |
| 248 manager_->AddRequest(&request1_); | 247 manager_->AddRequest(&request1_); |
| 249 MockPermissionBubbleRequest dupe_request("test1"); | 248 MockPermissionBubbleRequest dupe_request("test1"); |
| 250 manager_->AddRequest(&dupe_request); | 249 manager_->AddRequest(&dupe_request); |
| 251 EXPECT_FALSE(dupe_request.finished()); | 250 EXPECT_FALSE(dupe_request.finished()); |
| 252 EXPECT_FALSE(request1_.finished()); | 251 EXPECT_FALSE(request1_.finished()); |
| 253 manager_->CancelRequest(&request1_); | 252 manager_->CancelRequest(&request1_); |
| 254 EXPECT_TRUE(dupe_request.finished()); | 253 EXPECT_TRUE(dupe_request.finished()); |
| 255 EXPECT_TRUE(request1_.finished()); | 254 EXPECT_TRUE(request1_.finished()); |
| 256 } | 255 } |
| 257 | 256 |
| 258 TEST_F(PermissionBubbleManagerTest, DuplicateQueuedRequest) { | 257 TEST_F(PermissionRequestManagerTest, DuplicateQueuedRequest) { |
| 259 manager_->DisplayPendingRequests(); | 258 manager_->DisplayPendingRequests(); |
| 260 manager_->AddRequest(&request1_); | 259 manager_->AddRequest(&request1_); |
| 261 WaitForCoalescing(); | 260 WaitForCoalescing(); |
| 262 manager_->AddRequest(&request2_); | 261 manager_->AddRequest(&request2_); |
| 263 | 262 |
| 264 MockPermissionBubbleRequest dupe_request("test1"); | 263 MockPermissionBubbleRequest dupe_request("test1"); |
| 265 manager_->AddRequest(&dupe_request); | 264 manager_->AddRequest(&dupe_request); |
| 266 EXPECT_FALSE(dupe_request.finished()); | 265 EXPECT_FALSE(dupe_request.finished()); |
| 267 EXPECT_FALSE(request1_.finished()); | 266 EXPECT_FALSE(request1_.finished()); |
| 268 | 267 |
| 269 MockPermissionBubbleRequest dupe_request2("test2"); | 268 MockPermissionBubbleRequest dupe_request2("test2"); |
| 270 manager_->AddRequest(&dupe_request2); | 269 manager_->AddRequest(&dupe_request2); |
| 271 EXPECT_FALSE(dupe_request2.finished()); | 270 EXPECT_FALSE(dupe_request2.finished()); |
| 272 EXPECT_FALSE(request2_.finished()); | 271 EXPECT_FALSE(request2_.finished()); |
| 273 | 272 |
| 274 manager_->CancelRequest(&request1_); | 273 manager_->CancelRequest(&request1_); |
| 275 EXPECT_TRUE(dupe_request.finished()); | 274 EXPECT_TRUE(dupe_request.finished()); |
| 276 EXPECT_TRUE(request1_.finished()); | 275 EXPECT_TRUE(request1_.finished()); |
| 277 | 276 |
| 278 manager_->CancelRequest(&request2_); | 277 manager_->CancelRequest(&request2_); |
| 279 EXPECT_TRUE(dupe_request2.finished()); | 278 EXPECT_TRUE(dupe_request2.finished()); |
| 280 EXPECT_TRUE(request2_.finished()); | 279 EXPECT_TRUE(request2_.finished()); |
| 281 } | 280 } |
| 282 | 281 |
| 283 TEST_F(PermissionBubbleManagerTest, ForgetRequestsOnPageNavigation) { | 282 TEST_F(PermissionRequestManagerTest, ForgetRequestsOnPageNavigation) { |
| 284 manager_->DisplayPendingRequests(); | 283 manager_->DisplayPendingRequests(); |
| 285 manager_->AddRequest(&request1_); | 284 manager_->AddRequest(&request1_); |
| 286 WaitForCoalescing(); | 285 WaitForCoalescing(); |
| 287 manager_->AddRequest(&request2_); | 286 manager_->AddRequest(&request2_); |
| 288 manager_->AddRequest(&iframe_request_other_domain_); | 287 manager_->AddRequest(&iframe_request_other_domain_); |
| 289 | 288 |
| 290 EXPECT_TRUE(view_factory_->is_visible()); | 289 EXPECT_TRUE(view_factory_->is_visible()); |
| 291 ASSERT_EQ(view_factory_->request_count(), 1); | 290 ASSERT_EQ(view_factory_->request_count(), 1); |
| 292 | 291 |
| 293 NavigateAndCommit(GURL("http://www2.google.com/")); | 292 NavigateAndCommit(GURL("http://www2.google.com/")); |
| 294 WaitForCoalescing(); | 293 WaitForCoalescing(); |
| 295 | 294 |
| 296 EXPECT_FALSE(view_factory_->is_visible()); | 295 EXPECT_FALSE(view_factory_->is_visible()); |
| 297 EXPECT_TRUE(request1_.finished()); | 296 EXPECT_TRUE(request1_.finished()); |
| 298 EXPECT_TRUE(request2_.finished()); | 297 EXPECT_TRUE(request2_.finished()); |
| 299 EXPECT_TRUE(iframe_request_other_domain_.finished()); | 298 EXPECT_TRUE(iframe_request_other_domain_.finished()); |
| 300 } | 299 } |
| 301 | 300 |
| 302 TEST_F(PermissionBubbleManagerTest, TestCancelQueued) { | 301 TEST_F(PermissionRequestManagerTest, TestCancelQueued) { |
| 303 manager_->AddRequest(&request1_); | 302 manager_->AddRequest(&request1_); |
| 304 EXPECT_FALSE(view_factory_->is_visible()); | 303 EXPECT_FALSE(view_factory_->is_visible()); |
| 305 | 304 |
| 306 manager_->CancelRequest(&request1_); | 305 manager_->CancelRequest(&request1_); |
| 307 EXPECT_TRUE(request1_.finished()); | 306 EXPECT_TRUE(request1_.finished()); |
| 308 EXPECT_FALSE(view_factory_->is_visible()); | 307 EXPECT_FALSE(view_factory_->is_visible()); |
| 309 manager_->DisplayPendingRequests(); | 308 manager_->DisplayPendingRequests(); |
| 310 EXPECT_FALSE(view_factory_->is_visible()); | 309 EXPECT_FALSE(view_factory_->is_visible()); |
| 311 | 310 |
| 312 manager_->AddRequest(&request2_); | 311 manager_->AddRequest(&request2_); |
| 313 WaitForCoalescing(); | 312 WaitForCoalescing(); |
| 314 EXPECT_TRUE(view_factory_->is_visible()); | 313 EXPECT_TRUE(view_factory_->is_visible()); |
| 315 ASSERT_EQ(view_factory_->request_count(), 1); | 314 ASSERT_EQ(view_factory_->request_count(), 1); |
| 316 } | 315 } |
| 317 | 316 |
| 318 TEST_F(PermissionBubbleManagerTest, TestCancelWhileDialogShown) { | 317 TEST_F(PermissionRequestManagerTest, TestCancelWhileDialogShown) { |
| 319 manager_->DisplayPendingRequests(); | 318 manager_->DisplayPendingRequests(); |
| 320 manager_->AddRequest(&request1_); | 319 manager_->AddRequest(&request1_); |
| 321 WaitForCoalescing(); | 320 WaitForCoalescing(); |
| 322 | 321 |
| 323 view_factory_->SetCanUpdateUi(true); | 322 view_factory_->SetCanUpdateUi(true); |
| 324 EXPECT_TRUE(view_factory_->is_visible()); | 323 EXPECT_TRUE(view_factory_->is_visible()); |
| 325 EXPECT_FALSE(request1_.finished()); | 324 EXPECT_FALSE(request1_.finished()); |
| 326 manager_->CancelRequest(&request1_); | 325 manager_->CancelRequest(&request1_); |
| 327 WaitForCoalescing(); | 326 WaitForCoalescing(); |
| 328 EXPECT_TRUE(request1_.finished()); | 327 EXPECT_TRUE(request1_.finished()); |
| 329 EXPECT_FALSE(view_factory_->is_visible()); | 328 EXPECT_FALSE(view_factory_->is_visible()); |
| 330 } | 329 } |
| 331 | 330 |
| 332 TEST_F(PermissionBubbleManagerTest, TestCancelWhileDialogShownNoUpdate) { | 331 TEST_F(PermissionRequestManagerTest, TestCancelWhileDialogShownNoUpdate) { |
| 333 manager_->DisplayPendingRequests(); | 332 manager_->DisplayPendingRequests(); |
| 334 view_factory_->SetCanUpdateUi(false); | 333 view_factory_->SetCanUpdateUi(false); |
| 335 manager_->AddRequest(&request1_); | 334 manager_->AddRequest(&request1_); |
| 336 WaitForCoalescing(); | 335 WaitForCoalescing(); |
| 337 view_factory_->SetCanUpdateUi(false); | 336 view_factory_->SetCanUpdateUi(false); |
| 338 | 337 |
| 339 EXPECT_TRUE(view_factory_->is_visible()); | 338 EXPECT_TRUE(view_factory_->is_visible()); |
| 340 EXPECT_FALSE(request1_.finished()); | 339 EXPECT_FALSE(request1_.finished()); |
| 341 manager_->CancelRequest(&request1_); | 340 manager_->CancelRequest(&request1_); |
| 342 EXPECT_TRUE(request1_.finished()); | 341 EXPECT_TRUE(request1_.finished()); |
| 343 EXPECT_TRUE(view_factory_->is_visible()); | 342 EXPECT_TRUE(view_factory_->is_visible()); |
| 344 Closing(); | 343 Closing(); |
| 345 } | 344 } |
| 346 | 345 |
| 347 TEST_F(PermissionBubbleManagerTest, TestCancelPendingRequest) { | 346 TEST_F(PermissionRequestManagerTest, TestCancelPendingRequest) { |
| 348 manager_->DisplayPendingRequests(); | 347 manager_->DisplayPendingRequests(); |
| 349 manager_->AddRequest(&request1_); | 348 manager_->AddRequest(&request1_); |
| 350 WaitForCoalescing(); | 349 WaitForCoalescing(); |
| 351 manager_->AddRequest(&request2_); | 350 manager_->AddRequest(&request2_); |
| 352 | 351 |
| 353 EXPECT_TRUE(view_factory_->is_visible()); | 352 EXPECT_TRUE(view_factory_->is_visible()); |
| 354 ASSERT_EQ(view_factory_->request_count(), 1); | 353 ASSERT_EQ(view_factory_->request_count(), 1); |
| 355 manager_->CancelRequest(&request2_); | 354 manager_->CancelRequest(&request2_); |
| 356 | 355 |
| 357 EXPECT_TRUE(view_factory_->is_visible()); | 356 EXPECT_TRUE(view_factory_->is_visible()); |
| 358 EXPECT_FALSE(request1_.finished()); | 357 EXPECT_FALSE(request1_.finished()); |
| 359 EXPECT_TRUE(request2_.finished()); | 358 EXPECT_TRUE(request2_.finished()); |
| 360 } | 359 } |
| 361 | 360 |
| 362 TEST_F(PermissionBubbleManagerTest, MainFrameNoRequestIFrameRequest) { | 361 TEST_F(PermissionRequestManagerTest, MainFrameNoRequestIFrameRequest) { |
| 363 manager_->DisplayPendingRequests(); | 362 manager_->DisplayPendingRequests(); |
| 364 manager_->AddRequest(&iframe_request_same_domain_); | 363 manager_->AddRequest(&iframe_request_same_domain_); |
| 365 WaitForCoalescing(); | 364 WaitForCoalescing(); |
| 366 WaitForFrameLoad(); | 365 WaitForFrameLoad(); |
| 367 | 366 |
| 368 EXPECT_TRUE(view_factory_->is_visible()); | 367 EXPECT_TRUE(view_factory_->is_visible()); |
| 369 Closing(); | 368 Closing(); |
| 370 EXPECT_TRUE(iframe_request_same_domain_.finished()); | 369 EXPECT_TRUE(iframe_request_same_domain_.finished()); |
| 371 } | 370 } |
| 372 | 371 |
| 373 TEST_F(PermissionBubbleManagerTest, MainFrameAndIFrameRequestSameDomain) { | 372 TEST_F(PermissionRequestManagerTest, MainFrameAndIFrameRequestSameDomain) { |
| 374 manager_->DisplayPendingRequests(); | 373 manager_->DisplayPendingRequests(); |
| 375 manager_->AddRequest(&request1_); | 374 manager_->AddRequest(&request1_); |
| 376 manager_->AddRequest(&iframe_request_same_domain_); | 375 manager_->AddRequest(&iframe_request_same_domain_); |
| 377 WaitForFrameLoad(); | 376 WaitForFrameLoad(); |
| 378 WaitForCoalescing(); | 377 WaitForCoalescing(); |
| 379 | 378 |
| 380 EXPECT_TRUE(view_factory_->is_visible()); | 379 EXPECT_TRUE(view_factory_->is_visible()); |
| 381 ASSERT_EQ(view_factory_->request_count(), 2); | 380 ASSERT_EQ(view_factory_->request_count(), 2); |
| 382 Closing(); | 381 Closing(); |
| 383 EXPECT_TRUE(request1_.finished()); | 382 EXPECT_TRUE(request1_.finished()); |
| 384 EXPECT_TRUE(iframe_request_same_domain_.finished()); | 383 EXPECT_TRUE(iframe_request_same_domain_.finished()); |
| 385 EXPECT_FALSE(view_factory_->is_visible()); | 384 EXPECT_FALSE(view_factory_->is_visible()); |
| 386 } | 385 } |
| 387 | 386 |
| 388 TEST_F(PermissionBubbleManagerTest, MainFrameAndIFrameRequestOtherDomain) { | 387 TEST_F(PermissionRequestManagerTest, MainFrameAndIFrameRequestOtherDomain) { |
| 389 manager_->DisplayPendingRequests(); | 388 manager_->DisplayPendingRequests(); |
| 390 manager_->AddRequest(&request1_); | 389 manager_->AddRequest(&request1_); |
| 391 manager_->AddRequest(&iframe_request_other_domain_); | 390 manager_->AddRequest(&iframe_request_other_domain_); |
| 392 WaitForFrameLoad(); | 391 WaitForFrameLoad(); |
| 393 WaitForCoalescing(); | 392 WaitForCoalescing(); |
| 394 | 393 |
| 395 EXPECT_TRUE(view_factory_->is_visible()); | 394 EXPECT_TRUE(view_factory_->is_visible()); |
| 396 Closing(); | 395 Closing(); |
| 397 EXPECT_TRUE(request1_.finished()); | 396 EXPECT_TRUE(request1_.finished()); |
| 398 EXPECT_FALSE(iframe_request_other_domain_.finished()); | 397 EXPECT_FALSE(iframe_request_other_domain_.finished()); |
| 399 EXPECT_TRUE(view_factory_->is_visible()); | 398 EXPECT_TRUE(view_factory_->is_visible()); |
| 400 Closing(); | 399 Closing(); |
| 401 EXPECT_TRUE(iframe_request_other_domain_.finished()); | 400 EXPECT_TRUE(iframe_request_other_domain_.finished()); |
| 402 } | 401 } |
| 403 | 402 |
| 404 TEST_F(PermissionBubbleManagerTest, IFrameRequestWhenMainRequestVisible) { | 403 TEST_F(PermissionRequestManagerTest, IFrameRequestWhenMainRequestVisible) { |
| 405 manager_->DisplayPendingRequests(); | 404 manager_->DisplayPendingRequests(); |
| 406 manager_->AddRequest(&request1_); | 405 manager_->AddRequest(&request1_); |
| 407 WaitForCoalescing(); | 406 WaitForCoalescing(); |
| 408 EXPECT_TRUE(view_factory_->is_visible()); | 407 EXPECT_TRUE(view_factory_->is_visible()); |
| 409 | 408 |
| 410 manager_->AddRequest(&iframe_request_same_domain_); | 409 manager_->AddRequest(&iframe_request_same_domain_); |
| 411 WaitForFrameLoad(); | 410 WaitForFrameLoad(); |
| 412 ASSERT_EQ(view_factory_->request_count(), 1); | 411 ASSERT_EQ(view_factory_->request_count(), 1); |
| 413 Closing(); | 412 Closing(); |
| 414 EXPECT_TRUE(request1_.finished()); | 413 EXPECT_TRUE(request1_.finished()); |
| 415 EXPECT_FALSE(iframe_request_same_domain_.finished()); | 414 EXPECT_FALSE(iframe_request_same_domain_.finished()); |
| 416 EXPECT_TRUE(view_factory_->is_visible()); | 415 EXPECT_TRUE(view_factory_->is_visible()); |
| 417 ASSERT_EQ(view_factory_->request_count(), 1); | 416 ASSERT_EQ(view_factory_->request_count(), 1); |
| 418 Closing(); | 417 Closing(); |
| 419 EXPECT_TRUE(iframe_request_same_domain_.finished()); | 418 EXPECT_TRUE(iframe_request_same_domain_.finished()); |
| 420 } | 419 } |
| 421 | 420 |
| 422 TEST_F(PermissionBubbleManagerTest, | 421 TEST_F(PermissionRequestManagerTest, |
| 423 IFrameRequestOtherDomainWhenMainRequestVisible) { | 422 IFrameRequestOtherDomainWhenMainRequestVisible) { |
| 424 manager_->DisplayPendingRequests(); | 423 manager_->DisplayPendingRequests(); |
| 425 manager_->AddRequest(&request1_); | 424 manager_->AddRequest(&request1_); |
| 426 WaitForCoalescing(); | 425 WaitForCoalescing(); |
| 427 EXPECT_TRUE(view_factory_->is_visible()); | 426 EXPECT_TRUE(view_factory_->is_visible()); |
| 428 | 427 |
| 429 manager_->AddRequest(&iframe_request_other_domain_); | 428 manager_->AddRequest(&iframe_request_other_domain_); |
| 430 WaitForFrameLoad(); | 429 WaitForFrameLoad(); |
| 431 Closing(); | 430 Closing(); |
| 432 EXPECT_TRUE(request1_.finished()); | 431 EXPECT_TRUE(request1_.finished()); |
| 433 EXPECT_FALSE(iframe_request_other_domain_.finished()); | 432 EXPECT_FALSE(iframe_request_other_domain_.finished()); |
| 434 EXPECT_TRUE(view_factory_->is_visible()); | 433 EXPECT_TRUE(view_factory_->is_visible()); |
| 435 Closing(); | 434 Closing(); |
| 436 EXPECT_TRUE(iframe_request_other_domain_.finished()); | 435 EXPECT_TRUE(iframe_request_other_domain_.finished()); |
| 437 } | 436 } |
| 438 | 437 |
| 439 TEST_F(PermissionBubbleManagerTest, RequestsDontNeedUserGesture) { | 438 TEST_F(PermissionRequestManagerTest, RequestsDontNeedUserGesture) { |
| 440 manager_->DisplayPendingRequests(); | 439 manager_->DisplayPendingRequests(); |
| 441 WaitForFrameLoad(); | 440 WaitForFrameLoad(); |
| 442 WaitForCoalescing(); | 441 WaitForCoalescing(); |
| 443 manager_->AddRequest(&request1_); | 442 manager_->AddRequest(&request1_); |
| 444 manager_->AddRequest(&iframe_request_other_domain_); | 443 manager_->AddRequest(&iframe_request_other_domain_); |
| 445 manager_->AddRequest(&request2_); | 444 manager_->AddRequest(&request2_); |
| 446 base::MessageLoop::current()->RunUntilIdle(); | 445 base::MessageLoop::current()->RunUntilIdle(); |
| 447 | 446 |
| 448 EXPECT_TRUE(view_factory_->is_visible()); | 447 EXPECT_TRUE(view_factory_->is_visible()); |
| 449 } | 448 } |
| OLD | NEW |