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

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

Issue 2182883002: Permissions: Rename PermissionBubbleView to PermissionPromptInterface (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: thestig@ review Created 4 years, 4 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" 12 #include "chrome/browser/permissions/mock_permission_request.h"
13 #include "chrome/browser/permissions/permission_request.h" 13 #include "chrome/browser/permissions/permission_request.h"
14 #include "chrome/browser/permissions/permission_request_manager.h" 14 #include "chrome/browser/permissions/permission_request_manager.h"
15 #include "chrome/browser/permissions/permission_uma_util.h" 15 #include "chrome/browser/permissions/permission_uma_util.h"
16 #include "chrome/browser/ui/website_settings/mock_permission_bubble_factory.h" 16 #include "chrome/browser/ui/website_settings/mock_permission_prompt_factory.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", 25 request1_("test1",
26 PermissionRequestType::QUOTA, 26 PermissionRequestType::QUOTA,
27 PermissionRequestGestureType::GESTURE), 27 PermissionRequestGestureType::GESTURE),
28 request2_("test2", 28 request2_("test2",
29 PermissionRequestType::DOWNLOAD, 29 PermissionRequestType::DOWNLOAD,
30 PermissionRequestGestureType::NO_GESTURE), 30 PermissionRequestGestureType::NO_GESTURE),
31 iframe_request_same_domain_("iframe", 31 iframe_request_same_domain_("iframe",
32 GURL("http://www.google.com/some/url")), 32 GURL("http://www.google.com/some/url")),
33 iframe_request_other_domain_("iframe", GURL("http://www.youtube.com")) { 33 iframe_request_other_domain_("iframe", GURL("http://www.youtube.com")) {
34 } 34 }
35 ~PermissionRequestManagerTest() override {} 35 ~PermissionRequestManagerTest() override {}
36 36
37 void SetUp() override { 37 void SetUp() override {
38 ChromeRenderViewHostTestHarness::SetUp(); 38 ChromeRenderViewHostTestHarness::SetUp();
39 SetContents(CreateTestWebContents()); 39 SetContents(CreateTestWebContents());
40 NavigateAndCommit(GURL("http://www.google.com")); 40 NavigateAndCommit(GURL("http://www.google.com"));
41 41
42 manager_.reset(new PermissionRequestManager(web_contents())); 42 manager_.reset(new PermissionRequestManager(web_contents()));
43 view_factory_.reset(new MockPermissionBubbleFactory(manager_.get())); 43 prompt_factory_.reset(new MockPermissionPromptFactory(manager_.get()));
44 } 44 }
45 45
46 void TearDown() override { 46 void TearDown() override {
47 view_factory_.reset(); 47 prompt_factory_.reset();
48 manager_.reset(); 48 manager_.reset();
49 ChromeRenderViewHostTestHarness::TearDown(); 49 ChromeRenderViewHostTestHarness::TearDown();
50 } 50 }
51 51
52 void ToggleAccept(int index, bool value) { 52 void ToggleAccept(int index, bool value) {
53 manager_->ToggleAccept(index, value); 53 manager_->ToggleAccept(index, value);
54 } 54 }
55 55
56 void Accept() { 56 void Accept() {
57 manager_->Accept(); 57 manager_->Accept();
(...skipping 26 matching lines...) Expand all
84 const content::LoadCommittedDetails& details) { 84 const content::LoadCommittedDetails& details) {
85 manager_->NavigationEntryCommitted(details); 85 manager_->NavigationEntryCommitted(details);
86 } 86 }
87 87
88 protected: 88 protected:
89 MockPermissionRequest request1_; 89 MockPermissionRequest request1_;
90 MockPermissionRequest request2_; 90 MockPermissionRequest request2_;
91 MockPermissionRequest iframe_request_same_domain_; 91 MockPermissionRequest iframe_request_same_domain_;
92 MockPermissionRequest iframe_request_other_domain_; 92 MockPermissionRequest iframe_request_other_domain_;
93 std::unique_ptr<PermissionRequestManager> manager_; 93 std::unique_ptr<PermissionRequestManager> manager_;
94 std::unique_ptr<MockPermissionBubbleFactory> view_factory_; 94 std::unique_ptr<MockPermissionPromptFactory> prompt_factory_;
95 }; 95 };
96 96
97 TEST_F(PermissionRequestManagerTest, SingleRequest) { 97 TEST_F(PermissionRequestManagerTest, SingleRequest) {
98 manager_->AddRequest(&request1_); 98 manager_->AddRequest(&request1_);
99 manager_->DisplayPendingRequests(); 99 manager_->DisplayPendingRequests();
100 WaitForCoalescing(); 100 WaitForCoalescing();
101 101
102 EXPECT_TRUE(view_factory_->is_visible()); 102 EXPECT_TRUE(prompt_factory_->is_visible());
103 ASSERT_EQ(view_factory_->request_count(), 1); 103 ASSERT_EQ(prompt_factory_->request_count(), 1);
104 104
105 ToggleAccept(0, true); 105 ToggleAccept(0, true);
106 Accept(); 106 Accept();
107 EXPECT_TRUE(request1_.granted()); 107 EXPECT_TRUE(request1_.granted());
108 } 108 }
109 109
110 TEST_F(PermissionRequestManagerTest, SingleRequestViewFirst) { 110 TEST_F(PermissionRequestManagerTest, SingleRequestViewFirst) {
111 manager_->DisplayPendingRequests(); 111 manager_->DisplayPendingRequests();
112 manager_->AddRequest(&request1_); 112 manager_->AddRequest(&request1_);
113 WaitForCoalescing(); 113 WaitForCoalescing();
114 114
115 EXPECT_TRUE(view_factory_->is_visible()); 115 EXPECT_TRUE(prompt_factory_->is_visible());
116 ASSERT_EQ(view_factory_->request_count(), 1); 116 ASSERT_EQ(prompt_factory_->request_count(), 1);
117 117
118 ToggleAccept(0, true); 118 ToggleAccept(0, true);
119 Accept(); 119 Accept();
120 EXPECT_TRUE(request1_.granted()); 120 EXPECT_TRUE(request1_.granted());
121 } 121 }
122 122
123 TEST_F(PermissionRequestManagerTest, TwoRequests) { 123 TEST_F(PermissionRequestManagerTest, TwoRequests) {
124 manager_->AddRequest(&request1_); 124 manager_->AddRequest(&request1_);
125 manager_->AddRequest(&request2_); 125 manager_->AddRequest(&request2_);
126 manager_->DisplayPendingRequests(); 126 manager_->DisplayPendingRequests();
127 WaitForCoalescing(); 127 WaitForCoalescing();
128 128
129 EXPECT_TRUE(view_factory_->is_visible()); 129 EXPECT_TRUE(prompt_factory_->is_visible());
130 ASSERT_EQ(view_factory_->request_count(), 2); 130 ASSERT_EQ(prompt_factory_->request_count(), 2);
131 131
132 ToggleAccept(0, true); 132 ToggleAccept(0, true);
133 ToggleAccept(1, false); 133 ToggleAccept(1, false);
134 Accept(); 134 Accept();
135 EXPECT_TRUE(request1_.granted()); 135 EXPECT_TRUE(request1_.granted());
136 EXPECT_FALSE(request2_.granted()); 136 EXPECT_FALSE(request2_.granted());
137 } 137 }
138 138
139 TEST_F(PermissionRequestManagerTest, TwoRequestsTabSwitch) { 139 TEST_F(PermissionRequestManagerTest, TwoRequestsTabSwitch) {
140 manager_->AddRequest(&request1_); 140 manager_->AddRequest(&request1_);
141 manager_->AddRequest(&request2_); 141 manager_->AddRequest(&request2_);
142 manager_->DisplayPendingRequests(); 142 manager_->DisplayPendingRequests();
143 WaitForCoalescing(); 143 WaitForCoalescing();
144 144
145 EXPECT_TRUE(view_factory_->is_visible()); 145 EXPECT_TRUE(prompt_factory_->is_visible());
146 ASSERT_EQ(view_factory_->request_count(), 2); 146 ASSERT_EQ(prompt_factory_->request_count(), 2);
147 147
148 ToggleAccept(0, true); 148 ToggleAccept(0, true);
149 ToggleAccept(1, false); 149 ToggleAccept(1, false);
150 150
151 MockTabSwitchAway(); 151 MockTabSwitchAway();
152 EXPECT_FALSE(view_factory_->is_visible()); 152 EXPECT_FALSE(prompt_factory_->is_visible());
153 153
154 MockTabSwitchBack(); 154 MockTabSwitchBack();
155 WaitForCoalescing(); 155 WaitForCoalescing();
156 EXPECT_TRUE(view_factory_->is_visible()); 156 EXPECT_TRUE(prompt_factory_->is_visible());
157 ASSERT_EQ(view_factory_->request_count(), 2); 157 ASSERT_EQ(prompt_factory_->request_count(), 2);
158 158
159 Accept(); 159 Accept();
160 EXPECT_TRUE(request1_.granted()); 160 EXPECT_TRUE(request1_.granted());
161 EXPECT_FALSE(request2_.granted()); 161 EXPECT_FALSE(request2_.granted());
162 } 162 }
163 163
164 TEST_F(PermissionRequestManagerTest, NoRequests) { 164 TEST_F(PermissionRequestManagerTest, NoRequests) {
165 manager_->DisplayPendingRequests(); 165 manager_->DisplayPendingRequests();
166 WaitForCoalescing(); 166 WaitForCoalescing();
167 EXPECT_FALSE(view_factory_->is_visible()); 167 EXPECT_FALSE(prompt_factory_->is_visible());
168 } 168 }
169 169
170 TEST_F(PermissionRequestManagerTest, NoView) { 170 TEST_F(PermissionRequestManagerTest, NoView) {
171 manager_->AddRequest(&request1_); 171 manager_->AddRequest(&request1_);
172 // Don't display the pending requests. 172 // Don't display the pending requests.
173 WaitForCoalescing(); 173 WaitForCoalescing();
174 EXPECT_FALSE(view_factory_->is_visible()); 174 EXPECT_FALSE(prompt_factory_->is_visible());
175 } 175 }
176 176
177 TEST_F(PermissionRequestManagerTest, TwoRequestsCoalesce) { 177 TEST_F(PermissionRequestManagerTest, TwoRequestsCoalesce) {
178 manager_->DisplayPendingRequests(); 178 manager_->DisplayPendingRequests();
179 manager_->AddRequest(&request1_); 179 manager_->AddRequest(&request1_);
180 manager_->AddRequest(&request2_); 180 manager_->AddRequest(&request2_);
181 EXPECT_FALSE(view_factory_->is_visible()); 181 EXPECT_FALSE(prompt_factory_->is_visible());
182 WaitForCoalescing(); 182 WaitForCoalescing();
183 183
184 EXPECT_TRUE(view_factory_->is_visible()); 184 EXPECT_TRUE(prompt_factory_->is_visible());
185 ASSERT_EQ(view_factory_->request_count(), 2); 185 ASSERT_EQ(prompt_factory_->request_count(), 2);
186 } 186 }
187 187
188 TEST_F(PermissionRequestManagerTest, TwoRequestsDoNotCoalesce) { 188 TEST_F(PermissionRequestManagerTest, TwoRequestsDoNotCoalesce) {
189 manager_->DisplayPendingRequests(); 189 manager_->DisplayPendingRequests();
190 manager_->AddRequest(&request1_); 190 manager_->AddRequest(&request1_);
191 WaitForCoalescing(); 191 WaitForCoalescing();
192 manager_->AddRequest(&request2_); 192 manager_->AddRequest(&request2_);
193 193
194 EXPECT_TRUE(view_factory_->is_visible()); 194 EXPECT_TRUE(prompt_factory_->is_visible());
195 ASSERT_EQ(view_factory_->request_count(), 1); 195 ASSERT_EQ(prompt_factory_->request_count(), 1);
196 } 196 }
197 197
198 TEST_F(PermissionRequestManagerTest, TwoRequestsShownInTwoBubbles) { 198 TEST_F(PermissionRequestManagerTest, TwoRequestsShownInTwoBubbles) {
199 manager_->DisplayPendingRequests(); 199 manager_->DisplayPendingRequests();
200 manager_->AddRequest(&request1_); 200 manager_->AddRequest(&request1_);
201 WaitForCoalescing(); 201 WaitForCoalescing();
202 manager_->AddRequest(&request2_); 202 manager_->AddRequest(&request2_);
203 203
204 EXPECT_TRUE(view_factory_->is_visible()); 204 EXPECT_TRUE(prompt_factory_->is_visible());
205 ASSERT_EQ(view_factory_->request_count(), 1); 205 ASSERT_EQ(prompt_factory_->request_count(), 1);
206 206
207 Accept(); 207 Accept();
208 WaitForCoalescing(); 208 WaitForCoalescing();
209 209
210 EXPECT_TRUE(view_factory_->is_visible()); 210 EXPECT_TRUE(prompt_factory_->is_visible());
211 ASSERT_EQ(view_factory_->request_count(), 1); 211 ASSERT_EQ(prompt_factory_->request_count(), 1);
212 ASSERT_EQ(view_factory_->show_count(), 2); 212 ASSERT_EQ(prompt_factory_->show_count(), 2);
213 } 213 }
214 214
215 TEST_F(PermissionRequestManagerTest, TestAddDuplicateRequest) { 215 TEST_F(PermissionRequestManagerTest, TestAddDuplicateRequest) {
216 manager_->DisplayPendingRequests(); 216 manager_->DisplayPendingRequests();
217 manager_->AddRequest(&request1_); 217 manager_->AddRequest(&request1_);
218 manager_->AddRequest(&request2_); 218 manager_->AddRequest(&request2_);
219 manager_->AddRequest(&request1_); 219 manager_->AddRequest(&request1_);
220 220
221 WaitForCoalescing(); 221 WaitForCoalescing();
222 EXPECT_TRUE(view_factory_->is_visible()); 222 EXPECT_TRUE(prompt_factory_->is_visible());
223 ASSERT_EQ(view_factory_->request_count(), 2); 223 ASSERT_EQ(prompt_factory_->request_count(), 2);
224 } 224 }
225 225
226 TEST_F(PermissionRequestManagerTest, SequentialRequests) { 226 TEST_F(PermissionRequestManagerTest, SequentialRequests) {
227 manager_->DisplayPendingRequests(); 227 manager_->DisplayPendingRequests();
228 manager_->AddRequest(&request1_); 228 manager_->AddRequest(&request1_);
229 WaitForCoalescing(); 229 WaitForCoalescing();
230 EXPECT_TRUE(view_factory_->is_visible()); 230 EXPECT_TRUE(prompt_factory_->is_visible());
231 231
232 Accept(); 232 Accept();
233 EXPECT_TRUE(request1_.granted()); 233 EXPECT_TRUE(request1_.granted());
234 234
235 EXPECT_FALSE(view_factory_->is_visible()); 235 EXPECT_FALSE(prompt_factory_->is_visible());
236 236
237 manager_->AddRequest(&request2_); 237 manager_->AddRequest(&request2_);
238 WaitForCoalescing(); 238 WaitForCoalescing();
239 EXPECT_TRUE(view_factory_->is_visible()); 239 EXPECT_TRUE(prompt_factory_->is_visible());
240 Accept(); 240 Accept();
241 EXPECT_FALSE(view_factory_->is_visible()); 241 EXPECT_FALSE(prompt_factory_->is_visible());
242 EXPECT_TRUE(request2_.granted()); 242 EXPECT_TRUE(request2_.granted());
243 } 243 }
244 244
245 TEST_F(PermissionRequestManagerTest, SameRequestRejected) { 245 TEST_F(PermissionRequestManagerTest, SameRequestRejected) {
246 manager_->DisplayPendingRequests(); 246 manager_->DisplayPendingRequests();
247 manager_->AddRequest(&request1_); 247 manager_->AddRequest(&request1_);
248 manager_->AddRequest(&request1_); 248 manager_->AddRequest(&request1_);
249 EXPECT_FALSE(request1_.finished()); 249 EXPECT_FALSE(request1_.finished());
250 250
251 WaitForCoalescing(); 251 WaitForCoalescing();
252 EXPECT_TRUE(view_factory_->is_visible()); 252 EXPECT_TRUE(prompt_factory_->is_visible());
253 ASSERT_EQ(view_factory_->request_count(), 1); 253 ASSERT_EQ(prompt_factory_->request_count(), 1);
254 } 254 }
255 255
256 TEST_F(PermissionRequestManagerTest, DuplicateRequestCancelled) { 256 TEST_F(PermissionRequestManagerTest, DuplicateRequestCancelled) {
257 manager_->DisplayPendingRequests(); 257 manager_->DisplayPendingRequests();
258 manager_->AddRequest(&request1_); 258 manager_->AddRequest(&request1_);
259 MockPermissionRequest dupe_request("test1"); 259 MockPermissionRequest dupe_request("test1");
260 manager_->AddRequest(&dupe_request); 260 manager_->AddRequest(&dupe_request);
261 EXPECT_FALSE(dupe_request.finished()); 261 EXPECT_FALSE(dupe_request.finished());
262 EXPECT_FALSE(request1_.finished()); 262 EXPECT_FALSE(request1_.finished());
263 manager_->CancelRequest(&request1_); 263 manager_->CancelRequest(&request1_);
(...skipping 26 matching lines...) Expand all
290 EXPECT_TRUE(request2_.finished()); 290 EXPECT_TRUE(request2_.finished());
291 } 291 }
292 292
293 TEST_F(PermissionRequestManagerTest, ForgetRequestsOnPageNavigation) { 293 TEST_F(PermissionRequestManagerTest, ForgetRequestsOnPageNavigation) {
294 manager_->DisplayPendingRequests(); 294 manager_->DisplayPendingRequests();
295 manager_->AddRequest(&request1_); 295 manager_->AddRequest(&request1_);
296 WaitForCoalescing(); 296 WaitForCoalescing();
297 manager_->AddRequest(&request2_); 297 manager_->AddRequest(&request2_);
298 manager_->AddRequest(&iframe_request_other_domain_); 298 manager_->AddRequest(&iframe_request_other_domain_);
299 299
300 EXPECT_TRUE(view_factory_->is_visible()); 300 EXPECT_TRUE(prompt_factory_->is_visible());
301 ASSERT_EQ(view_factory_->request_count(), 1); 301 ASSERT_EQ(prompt_factory_->request_count(), 1);
302 302
303 NavigateAndCommit(GURL("http://www2.google.com/")); 303 NavigateAndCommit(GURL("http://www2.google.com/"));
304 WaitForCoalescing(); 304 WaitForCoalescing();
305 305
306 EXPECT_FALSE(view_factory_->is_visible()); 306 EXPECT_FALSE(prompt_factory_->is_visible());
307 EXPECT_TRUE(request1_.finished()); 307 EXPECT_TRUE(request1_.finished());
308 EXPECT_TRUE(request2_.finished()); 308 EXPECT_TRUE(request2_.finished());
309 EXPECT_TRUE(iframe_request_other_domain_.finished()); 309 EXPECT_TRUE(iframe_request_other_domain_.finished());
310 } 310 }
311 311
312 TEST_F(PermissionRequestManagerTest, TestCancelQueued) { 312 TEST_F(PermissionRequestManagerTest, TestCancelQueued) {
313 manager_->AddRequest(&request1_); 313 manager_->AddRequest(&request1_);
314 EXPECT_FALSE(view_factory_->is_visible()); 314 EXPECT_FALSE(prompt_factory_->is_visible());
315 315
316 manager_->CancelRequest(&request1_); 316 manager_->CancelRequest(&request1_);
317 EXPECT_TRUE(request1_.finished()); 317 EXPECT_TRUE(request1_.finished());
318 EXPECT_FALSE(view_factory_->is_visible()); 318 EXPECT_FALSE(prompt_factory_->is_visible());
319 manager_->DisplayPendingRequests(); 319 manager_->DisplayPendingRequests();
320 EXPECT_FALSE(view_factory_->is_visible()); 320 EXPECT_FALSE(prompt_factory_->is_visible());
321 321
322 manager_->AddRequest(&request2_); 322 manager_->AddRequest(&request2_);
323 WaitForCoalescing(); 323 WaitForCoalescing();
324 EXPECT_TRUE(view_factory_->is_visible()); 324 EXPECT_TRUE(prompt_factory_->is_visible());
325 ASSERT_EQ(view_factory_->request_count(), 1); 325 ASSERT_EQ(prompt_factory_->request_count(), 1);
326 } 326 }
327 327
328 TEST_F(PermissionRequestManagerTest, TestCancelWhileDialogShown) { 328 TEST_F(PermissionRequestManagerTest, TestCancelWhileDialogShown) {
329 manager_->DisplayPendingRequests(); 329 manager_->DisplayPendingRequests();
330 manager_->AddRequest(&request1_); 330 manager_->AddRequest(&request1_);
331 WaitForCoalescing(); 331 WaitForCoalescing();
332 332
333 view_factory_->SetCanUpdateUi(true); 333 prompt_factory_->SetCanUpdateUi(true);
334 EXPECT_TRUE(view_factory_->is_visible()); 334 EXPECT_TRUE(prompt_factory_->is_visible());
335 EXPECT_FALSE(request1_.finished()); 335 EXPECT_FALSE(request1_.finished());
336 manager_->CancelRequest(&request1_); 336 manager_->CancelRequest(&request1_);
337 WaitForCoalescing(); 337 WaitForCoalescing();
338 EXPECT_TRUE(request1_.finished()); 338 EXPECT_TRUE(request1_.finished());
339 EXPECT_FALSE(view_factory_->is_visible()); 339 EXPECT_FALSE(prompt_factory_->is_visible());
340 } 340 }
341 341
342 TEST_F(PermissionRequestManagerTest, TestCancelWhileDialogShownNoUpdate) { 342 TEST_F(PermissionRequestManagerTest, TestCancelWhileDialogShownNoUpdate) {
343 manager_->DisplayPendingRequests(); 343 manager_->DisplayPendingRequests();
344 view_factory_->SetCanUpdateUi(false); 344 prompt_factory_->SetCanUpdateUi(false);
345 manager_->AddRequest(&request1_); 345 manager_->AddRequest(&request1_);
346 WaitForCoalescing(); 346 WaitForCoalescing();
347 view_factory_->SetCanUpdateUi(false); 347 prompt_factory_->SetCanUpdateUi(false);
348 348
349 EXPECT_TRUE(view_factory_->is_visible()); 349 EXPECT_TRUE(prompt_factory_->is_visible());
350 EXPECT_FALSE(request1_.finished()); 350 EXPECT_FALSE(request1_.finished());
351 manager_->CancelRequest(&request1_); 351 manager_->CancelRequest(&request1_);
352 EXPECT_TRUE(request1_.finished()); 352 EXPECT_TRUE(request1_.finished());
353 EXPECT_TRUE(view_factory_->is_visible()); 353 EXPECT_TRUE(prompt_factory_->is_visible());
354 Closing(); 354 Closing();
355 } 355 }
356 356
357 TEST_F(PermissionRequestManagerTest, TestCancelPendingRequest) { 357 TEST_F(PermissionRequestManagerTest, TestCancelPendingRequest) {
358 manager_->DisplayPendingRequests(); 358 manager_->DisplayPendingRequests();
359 manager_->AddRequest(&request1_); 359 manager_->AddRequest(&request1_);
360 WaitForCoalescing(); 360 WaitForCoalescing();
361 manager_->AddRequest(&request2_); 361 manager_->AddRequest(&request2_);
362 362
363 EXPECT_TRUE(view_factory_->is_visible()); 363 EXPECT_TRUE(prompt_factory_->is_visible());
364 ASSERT_EQ(view_factory_->request_count(), 1); 364 ASSERT_EQ(prompt_factory_->request_count(), 1);
365 manager_->CancelRequest(&request2_); 365 manager_->CancelRequest(&request2_);
366 366
367 EXPECT_TRUE(view_factory_->is_visible()); 367 EXPECT_TRUE(prompt_factory_->is_visible());
368 EXPECT_FALSE(request1_.finished()); 368 EXPECT_FALSE(request1_.finished());
369 EXPECT_TRUE(request2_.finished()); 369 EXPECT_TRUE(request2_.finished());
370 } 370 }
371 371
372 TEST_F(PermissionRequestManagerTest, MainFrameNoRequestIFrameRequest) { 372 TEST_F(PermissionRequestManagerTest, MainFrameNoRequestIFrameRequest) {
373 manager_->DisplayPendingRequests(); 373 manager_->DisplayPendingRequests();
374 manager_->AddRequest(&iframe_request_same_domain_); 374 manager_->AddRequest(&iframe_request_same_domain_);
375 WaitForCoalescing(); 375 WaitForCoalescing();
376 WaitForFrameLoad(); 376 WaitForFrameLoad();
377 377
378 EXPECT_TRUE(view_factory_->is_visible()); 378 EXPECT_TRUE(prompt_factory_->is_visible());
379 Closing(); 379 Closing();
380 EXPECT_TRUE(iframe_request_same_domain_.finished()); 380 EXPECT_TRUE(iframe_request_same_domain_.finished());
381 } 381 }
382 382
383 TEST_F(PermissionRequestManagerTest, MainFrameAndIFrameRequestSameDomain) { 383 TEST_F(PermissionRequestManagerTest, MainFrameAndIFrameRequestSameDomain) {
384 manager_->DisplayPendingRequests(); 384 manager_->DisplayPendingRequests();
385 manager_->AddRequest(&request1_); 385 manager_->AddRequest(&request1_);
386 manager_->AddRequest(&iframe_request_same_domain_); 386 manager_->AddRequest(&iframe_request_same_domain_);
387 WaitForFrameLoad(); 387 WaitForFrameLoad();
388 WaitForCoalescing(); 388 WaitForCoalescing();
389 389
390 EXPECT_TRUE(view_factory_->is_visible()); 390 EXPECT_TRUE(prompt_factory_->is_visible());
391 ASSERT_EQ(view_factory_->request_count(), 2); 391 ASSERT_EQ(prompt_factory_->request_count(), 2);
392 Closing(); 392 Closing();
393 EXPECT_TRUE(request1_.finished()); 393 EXPECT_TRUE(request1_.finished());
394 EXPECT_TRUE(iframe_request_same_domain_.finished()); 394 EXPECT_TRUE(iframe_request_same_domain_.finished());
395 EXPECT_FALSE(view_factory_->is_visible()); 395 EXPECT_FALSE(prompt_factory_->is_visible());
396 } 396 }
397 397
398 TEST_F(PermissionRequestManagerTest, MainFrameAndIFrameRequestOtherDomain) { 398 TEST_F(PermissionRequestManagerTest, MainFrameAndIFrameRequestOtherDomain) {
399 manager_->DisplayPendingRequests(); 399 manager_->DisplayPendingRequests();
400 manager_->AddRequest(&request1_); 400 manager_->AddRequest(&request1_);
401 manager_->AddRequest(&iframe_request_other_domain_); 401 manager_->AddRequest(&iframe_request_other_domain_);
402 WaitForFrameLoad(); 402 WaitForFrameLoad();
403 WaitForCoalescing(); 403 WaitForCoalescing();
404 404
405 EXPECT_TRUE(view_factory_->is_visible()); 405 EXPECT_TRUE(prompt_factory_->is_visible());
406 Closing(); 406 Closing();
407 EXPECT_TRUE(request1_.finished()); 407 EXPECT_TRUE(request1_.finished());
408 EXPECT_FALSE(iframe_request_other_domain_.finished()); 408 EXPECT_FALSE(iframe_request_other_domain_.finished());
409 EXPECT_TRUE(view_factory_->is_visible()); 409 EXPECT_TRUE(prompt_factory_->is_visible());
410 Closing(); 410 Closing();
411 EXPECT_TRUE(iframe_request_other_domain_.finished()); 411 EXPECT_TRUE(iframe_request_other_domain_.finished());
412 } 412 }
413 413
414 TEST_F(PermissionRequestManagerTest, IFrameRequestWhenMainRequestVisible) { 414 TEST_F(PermissionRequestManagerTest, IFrameRequestWhenMainRequestVisible) {
415 manager_->DisplayPendingRequests(); 415 manager_->DisplayPendingRequests();
416 manager_->AddRequest(&request1_); 416 manager_->AddRequest(&request1_);
417 WaitForCoalescing(); 417 WaitForCoalescing();
418 EXPECT_TRUE(view_factory_->is_visible()); 418 EXPECT_TRUE(prompt_factory_->is_visible());
419 419
420 manager_->AddRequest(&iframe_request_same_domain_); 420 manager_->AddRequest(&iframe_request_same_domain_);
421 WaitForFrameLoad(); 421 WaitForFrameLoad();
422 ASSERT_EQ(view_factory_->request_count(), 1); 422 ASSERT_EQ(prompt_factory_->request_count(), 1);
423 Closing(); 423 Closing();
424 EXPECT_TRUE(request1_.finished()); 424 EXPECT_TRUE(request1_.finished());
425 EXPECT_FALSE(iframe_request_same_domain_.finished()); 425 EXPECT_FALSE(iframe_request_same_domain_.finished());
426 EXPECT_TRUE(view_factory_->is_visible()); 426 EXPECT_TRUE(prompt_factory_->is_visible());
427 ASSERT_EQ(view_factory_->request_count(), 1); 427 ASSERT_EQ(prompt_factory_->request_count(), 1);
428 Closing(); 428 Closing();
429 EXPECT_TRUE(iframe_request_same_domain_.finished()); 429 EXPECT_TRUE(iframe_request_same_domain_.finished());
430 } 430 }
431 431
432 TEST_F(PermissionRequestManagerTest, 432 TEST_F(PermissionRequestManagerTest,
433 IFrameRequestOtherDomainWhenMainRequestVisible) { 433 IFrameRequestOtherDomainWhenMainRequestVisible) {
434 manager_->DisplayPendingRequests(); 434 manager_->DisplayPendingRequests();
435 manager_->AddRequest(&request1_); 435 manager_->AddRequest(&request1_);
436 WaitForCoalescing(); 436 WaitForCoalescing();
437 EXPECT_TRUE(view_factory_->is_visible()); 437 EXPECT_TRUE(prompt_factory_->is_visible());
438 438
439 manager_->AddRequest(&iframe_request_other_domain_); 439 manager_->AddRequest(&iframe_request_other_domain_);
440 WaitForFrameLoad(); 440 WaitForFrameLoad();
441 Closing(); 441 Closing();
442 EXPECT_TRUE(request1_.finished()); 442 EXPECT_TRUE(request1_.finished());
443 EXPECT_FALSE(iframe_request_other_domain_.finished()); 443 EXPECT_FALSE(iframe_request_other_domain_.finished());
444 EXPECT_TRUE(view_factory_->is_visible()); 444 EXPECT_TRUE(prompt_factory_->is_visible());
445 Closing(); 445 Closing();
446 EXPECT_TRUE(iframe_request_other_domain_.finished()); 446 EXPECT_TRUE(iframe_request_other_domain_.finished());
447 } 447 }
448 448
449 TEST_F(PermissionRequestManagerTest, RequestsDontNeedUserGesture) { 449 TEST_F(PermissionRequestManagerTest, RequestsDontNeedUserGesture) {
450 manager_->DisplayPendingRequests(); 450 manager_->DisplayPendingRequests();
451 WaitForFrameLoad(); 451 WaitForFrameLoad();
452 WaitForCoalescing(); 452 WaitForCoalescing();
453 manager_->AddRequest(&request1_); 453 manager_->AddRequest(&request1_);
454 manager_->AddRequest(&iframe_request_other_domain_); 454 manager_->AddRequest(&iframe_request_other_domain_);
455 manager_->AddRequest(&request2_); 455 manager_->AddRequest(&request2_);
456 base::RunLoop().RunUntilIdle(); 456 base::RunLoop().RunUntilIdle();
457 457
458 EXPECT_TRUE(view_factory_->is_visible()); 458 EXPECT_TRUE(prompt_factory_->is_visible());
459 } 459 }
460 460
461 TEST_F(PermissionRequestManagerTest, UMAForSimpleAcceptedGestureBubble) { 461 TEST_F(PermissionRequestManagerTest, UMAForSimpleAcceptedGestureBubble) {
462 base::HistogramTester histograms; 462 base::HistogramTester histograms;
463 463
464 manager_->AddRequest(&request1_); 464 manager_->AddRequest(&request1_);
465 manager_->DisplayPendingRequests(); 465 manager_->DisplayPendingRequests();
466 WaitForCoalescing(); 466 WaitForCoalescing();
467 histograms.ExpectUniqueSample( 467 histograms.ExpectUniqueSample(
468 PermissionUmaUtil::kPermissionsPromptShown, 468 PermissionUmaUtil::kPermissionsPromptShown,
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
639 1); 639 1);
640 histograms.ExpectBucketCount( 640 histograms.ExpectBucketCount(
641 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied, 641 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied,
642 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA), 642 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA),
643 1); 643 1);
644 histograms.ExpectBucketCount( 644 histograms.ExpectBucketCount(
645 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied, 645 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied,
646 static_cast<base::HistogramBase::Sample>(PermissionRequestType::DOWNLOAD), 646 static_cast<base::HistogramBase::Sample>(PermissionRequestType::DOWNLOAD),
647 1); 647 1);
648 } 648 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698