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

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

Issue 2913393002: Only show grouped permission bubbles for mic/camera permissions (Closed)
Patch Set: Remove grouped requests Created 3 years, 6 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
« no previous file with comments | « chrome/browser/permissions/permission_request_manager_browsertest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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"
(...skipping 10 matching lines...) Expand all
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 request_mic_("mic",
32 PermissionRequestType::PERMISSION_MEDIASTREAM_MIC,
33 PermissionRequestGestureType::NO_GESTURE),
34 request_camera_("cam",
35 PermissionRequestType::PERMISSION_MEDIASTREAM_CAMERA,
36 PermissionRequestGestureType::NO_GESTURE),
31 iframe_request_same_domain_("iframe", 37 iframe_request_same_domain_("iframe",
38 PermissionRequestType::UNKNOWN,
32 GURL("http://www.google.com/some/url")), 39 GURL("http://www.google.com/some/url")),
33 iframe_request_other_domain_("iframe", GURL("http://www.youtube.com")) { 40 iframe_request_other_domain_("iframe",
34 } 41 PermissionRequestType::UNKNOWN,
42 GURL("http://www.youtube.com")),
43 iframe_request_mic_other_domain_(
44 "iframe",
45 PermissionRequestType::PERMISSION_MEDIASTREAM_MIC,
46 GURL("http://www.youtube.com")) {}
35 ~PermissionRequestManagerTest() override {} 47 ~PermissionRequestManagerTest() override {}
36 48
37 void SetUp() override { 49 void SetUp() override {
38 ChromeRenderViewHostTestHarness::SetUp(); 50 ChromeRenderViewHostTestHarness::SetUp();
39 SetContents(CreateTestWebContents()); 51 SetContents(CreateTestWebContents());
40 NavigateAndCommit(GURL("http://www.google.com")); 52 NavigateAndCommit(GURL("http://www.google.com"));
41 53
42 manager_.reset(new PermissionRequestManager(web_contents())); 54 manager_.reset(new PermissionRequestManager(web_contents()));
43 prompt_factory_.reset(new MockPermissionPromptFactory(manager_.get())); 55 prompt_factory_.reset(new MockPermissionPromptFactory(manager_.get()));
44 } 56 }
(...skipping 19 matching lines...) Expand all
64 void Closing() { 76 void Closing() {
65 manager_->Closing(); 77 manager_->Closing();
66 } 78 }
67 79
68 void WaitForFrameLoad() { 80 void WaitForFrameLoad() {
69 // PermissionRequestManager ignores all parameters. Yay? 81 // PermissionRequestManager ignores all parameters. Yay?
70 manager_->DocumentLoadedInFrame(NULL); 82 manager_->DocumentLoadedInFrame(NULL);
71 base::RunLoop().RunUntilIdle(); 83 base::RunLoop().RunUntilIdle();
72 } 84 }
73 85
74 void WaitForCoalescing() { 86 void WaitForBubbleToBeShown() {
75 manager_->DocumentOnLoadCompletedInMainFrame(); 87 manager_->DocumentOnLoadCompletedInMainFrame();
76 base::RunLoop().RunUntilIdle(); 88 base::RunLoop().RunUntilIdle();
77 } 89 }
78 90
79 void MockTabSwitchAway() { manager_->HideBubble(); } 91 void MockTabSwitchAway() { manager_->HideBubble(); }
80 92
81 void MockTabSwitchBack() { manager_->DisplayPendingRequests(); } 93 void MockTabSwitchBack() { manager_->DisplayPendingRequests(); }
82 94
83 virtual void NavigationEntryCommitted( 95 virtual void NavigationEntryCommitted(
84 const content::LoadCommittedDetails& details) { 96 const content::LoadCommittedDetails& details) {
85 manager_->NavigationEntryCommitted(details); 97 manager_->NavigationEntryCommitted(details);
86 } 98 }
87 99
88 protected: 100 protected:
89 MockPermissionRequest request1_; 101 MockPermissionRequest request1_;
90 MockPermissionRequest request2_; 102 MockPermissionRequest request2_;
103 MockPermissionRequest request_mic_;
104 MockPermissionRequest request_camera_;
91 MockPermissionRequest iframe_request_same_domain_; 105 MockPermissionRequest iframe_request_same_domain_;
92 MockPermissionRequest iframe_request_other_domain_; 106 MockPermissionRequest iframe_request_other_domain_;
107 MockPermissionRequest iframe_request_mic_other_domain_;
93 std::unique_ptr<PermissionRequestManager> manager_; 108 std::unique_ptr<PermissionRequestManager> manager_;
94 std::unique_ptr<MockPermissionPromptFactory> prompt_factory_; 109 std::unique_ptr<MockPermissionPromptFactory> prompt_factory_;
95 }; 110 };
96 111
97 TEST_F(PermissionRequestManagerTest, SingleRequest) { 112 TEST_F(PermissionRequestManagerTest, SingleRequest) {
98 manager_->AddRequest(&request1_); 113 manager_->AddRequest(&request1_);
99 manager_->DisplayPendingRequests(); 114 manager_->DisplayPendingRequests();
100 WaitForCoalescing(); 115 WaitForBubbleToBeShown();
101 116
102 EXPECT_TRUE(prompt_factory_->is_visible()); 117 EXPECT_TRUE(prompt_factory_->is_visible());
103 ASSERT_EQ(prompt_factory_->request_count(), 1); 118 ASSERT_EQ(prompt_factory_->request_count(), 1);
104 119
105 ToggleAccept(0, true); 120 ToggleAccept(0, true);
106 Accept(); 121 Accept();
107 EXPECT_TRUE(request1_.granted()); 122 EXPECT_TRUE(request1_.granted());
108 } 123 }
109 124
110 TEST_F(PermissionRequestManagerTest, SingleRequestViewFirst) { 125 TEST_F(PermissionRequestManagerTest, SingleRequestViewFirst) {
111 manager_->DisplayPendingRequests(); 126 manager_->DisplayPendingRequests();
112 manager_->AddRequest(&request1_); 127 manager_->AddRequest(&request1_);
113 WaitForCoalescing(); 128 WaitForBubbleToBeShown();
114 129
115 EXPECT_TRUE(prompt_factory_->is_visible()); 130 EXPECT_TRUE(prompt_factory_->is_visible());
116 ASSERT_EQ(prompt_factory_->request_count(), 1); 131 ASSERT_EQ(prompt_factory_->request_count(), 1);
117 132
118 ToggleAccept(0, true); 133 ToggleAccept(0, true);
119 Accept(); 134 Accept();
120 EXPECT_TRUE(request1_.granted()); 135 EXPECT_TRUE(request1_.granted());
121 } 136 }
122 137
123 TEST_F(PermissionRequestManagerTest, TwoRequests) { 138 // Most requests should never be grouped.
139 TEST_F(PermissionRequestManagerTest, TwoRequestsUngrouped) {
124 manager_->AddRequest(&request1_); 140 manager_->AddRequest(&request1_);
125 manager_->AddRequest(&request2_); 141 manager_->AddRequest(&request2_);
126 manager_->DisplayPendingRequests(); 142 manager_->DisplayPendingRequests();
127 WaitForCoalescing(); 143
144 WaitForBubbleToBeShown();
145 EXPECT_TRUE(prompt_factory_->is_visible());
146 ASSERT_EQ(prompt_factory_->request_count(), 1);
147 Accept();
148 EXPECT_TRUE(request1_.granted());
149
150 WaitForBubbleToBeShown();
151 EXPECT_TRUE(prompt_factory_->is_visible());
152 ASSERT_EQ(prompt_factory_->request_count(), 1);
153 Accept();
154 EXPECT_TRUE(request2_.granted());
155 }
156
157 // Only mic/camera requests from the same origin should be grouped.
158 TEST_F(PermissionRequestManagerTest, MicCameraGrouped) {
159 manager_->AddRequest(&request_mic_);
160 manager_->AddRequest(&request_camera_);
161 manager_->DisplayPendingRequests();
162 WaitForBubbleToBeShown();
128 163
129 EXPECT_TRUE(prompt_factory_->is_visible()); 164 EXPECT_TRUE(prompt_factory_->is_visible());
130 ASSERT_EQ(prompt_factory_->request_count(), 2); 165 ASSERT_EQ(prompt_factory_->request_count(), 2);
131 166
132 ToggleAccept(0, true); 167 ToggleAccept(0, true);
133 ToggleAccept(1, false); 168 ToggleAccept(1, true);
134 Accept(); 169 Accept();
135 EXPECT_TRUE(request1_.granted()); 170 EXPECT_TRUE(request_mic_.granted());
136 EXPECT_FALSE(request2_.granted()); 171 EXPECT_TRUE(request_camera_.granted());
172
173 // If the requests come from different origins, they should not be grouped.
174 manager_->AddRequest(&iframe_request_mic_other_domain_);
175 manager_->AddRequest(&request_camera_);
176 WaitForBubbleToBeShown();
177
178 EXPECT_TRUE(prompt_factory_->is_visible());
179 ASSERT_EQ(prompt_factory_->request_count(), 1);
137 } 180 }
138 181
139 TEST_F(PermissionRequestManagerTest, TwoRequestsTabSwitch) { 182 TEST_F(PermissionRequestManagerTest, TwoRequestsTabSwitch) {
140 manager_->AddRequest(&request1_); 183 manager_->AddRequest(&request_mic_);
141 manager_->AddRequest(&request2_); 184 manager_->AddRequest(&request_camera_);
142 manager_->DisplayPendingRequests(); 185 manager_->DisplayPendingRequests();
143 WaitForCoalescing(); 186 WaitForBubbleToBeShown();
144 187
145 EXPECT_TRUE(prompt_factory_->is_visible()); 188 EXPECT_TRUE(prompt_factory_->is_visible());
146 ASSERT_EQ(prompt_factory_->request_count(), 2); 189 ASSERT_EQ(prompt_factory_->request_count(), 2);
147 190
148 ToggleAccept(0, true); 191 ToggleAccept(0, true);
149 ToggleAccept(1, false); 192 ToggleAccept(1, false);
150 193
151 MockTabSwitchAway(); 194 MockTabSwitchAway();
152 EXPECT_FALSE(prompt_factory_->is_visible()); 195 EXPECT_FALSE(prompt_factory_->is_visible());
153 196
154 MockTabSwitchBack(); 197 MockTabSwitchBack();
155 WaitForCoalescing(); 198 WaitForBubbleToBeShown();
156 EXPECT_TRUE(prompt_factory_->is_visible()); 199 EXPECT_TRUE(prompt_factory_->is_visible());
157 ASSERT_EQ(prompt_factory_->request_count(), 2); 200 ASSERT_EQ(prompt_factory_->request_count(), 2);
158 201
159 Accept(); 202 Accept();
160 EXPECT_TRUE(request1_.granted()); 203 EXPECT_TRUE(request_mic_.granted());
161 EXPECT_FALSE(request2_.granted()); 204 EXPECT_FALSE(request_camera_.granted());
162 } 205 }
163 206
164 TEST_F(PermissionRequestManagerTest, NoRequests) { 207 TEST_F(PermissionRequestManagerTest, NoRequests) {
165 manager_->DisplayPendingRequests(); 208 manager_->DisplayPendingRequests();
166 WaitForCoalescing(); 209 WaitForBubbleToBeShown();
167 EXPECT_FALSE(prompt_factory_->is_visible()); 210 EXPECT_FALSE(prompt_factory_->is_visible());
168 } 211 }
169 212
170 TEST_F(PermissionRequestManagerTest, NoView) { 213 TEST_F(PermissionRequestManagerTest, NoView) {
171 manager_->AddRequest(&request1_); 214 manager_->AddRequest(&request1_);
172 // Don't display the pending requests. 215 // Don't display the pending requests.
173 WaitForCoalescing(); 216 WaitForBubbleToBeShown();
174 EXPECT_FALSE(prompt_factory_->is_visible()); 217 EXPECT_FALSE(prompt_factory_->is_visible());
175 } 218 }
176 219
177 TEST_F(PermissionRequestManagerTest, TwoRequestsCoalesce) {
178 manager_->DisplayPendingRequests();
179 manager_->AddRequest(&request1_);
180 manager_->AddRequest(&request2_);
181 EXPECT_FALSE(prompt_factory_->is_visible());
182 WaitForCoalescing();
183
184 EXPECT_TRUE(prompt_factory_->is_visible());
185 ASSERT_EQ(prompt_factory_->request_count(), 2);
186 }
187
188 TEST_F(PermissionRequestManagerTest, TwoRequestsDoNotCoalesce) { 220 TEST_F(PermissionRequestManagerTest, TwoRequestsDoNotCoalesce) {
189 manager_->DisplayPendingRequests(); 221 manager_->DisplayPendingRequests();
190 manager_->AddRequest(&request1_); 222 manager_->AddRequest(&request1_);
191 WaitForCoalescing(); 223 WaitForBubbleToBeShown();
192 manager_->AddRequest(&request2_); 224 manager_->AddRequest(&request2_);
193 225
194 EXPECT_TRUE(prompt_factory_->is_visible()); 226 EXPECT_TRUE(prompt_factory_->is_visible());
195 ASSERT_EQ(prompt_factory_->request_count(), 1); 227 ASSERT_EQ(prompt_factory_->request_count(), 1);
196 } 228 }
197 229
198 TEST_F(PermissionRequestManagerTest, TwoRequestsShownInTwoBubbles) { 230 TEST_F(PermissionRequestManagerTest, TwoRequestsShownInTwoBubbles) {
199 manager_->DisplayPendingRequests(); 231 manager_->DisplayPendingRequests();
200 manager_->AddRequest(&request1_); 232 manager_->AddRequest(&request1_);
201 WaitForCoalescing(); 233 WaitForBubbleToBeShown();
202 manager_->AddRequest(&request2_); 234 manager_->AddRequest(&request2_);
203 235
204 EXPECT_TRUE(prompt_factory_->is_visible()); 236 EXPECT_TRUE(prompt_factory_->is_visible());
205 ASSERT_EQ(prompt_factory_->request_count(), 1); 237 ASSERT_EQ(prompt_factory_->request_count(), 1);
206 238
207 Accept(); 239 Accept();
208 WaitForCoalescing(); 240 WaitForBubbleToBeShown();
209 241
210 EXPECT_TRUE(prompt_factory_->is_visible()); 242 EXPECT_TRUE(prompt_factory_->is_visible());
211 ASSERT_EQ(prompt_factory_->request_count(), 1); 243 ASSERT_EQ(prompt_factory_->request_count(), 1);
212 ASSERT_EQ(prompt_factory_->show_count(), 2); 244 ASSERT_EQ(prompt_factory_->show_count(), 2);
213 } 245 }
214 246
215 TEST_F(PermissionRequestManagerTest, TestAddDuplicateRequest) { 247 TEST_F(PermissionRequestManagerTest, TestAddDuplicateRequest) {
216 manager_->DisplayPendingRequests(); 248 manager_->DisplayPendingRequests();
217 manager_->AddRequest(&request1_); 249 manager_->AddRequest(&request1_);
218 manager_->AddRequest(&request2_);
219 manager_->AddRequest(&request1_); 250 manager_->AddRequest(&request1_);
220 251
221 WaitForCoalescing(); 252 WaitForBubbleToBeShown();
222 EXPECT_TRUE(prompt_factory_->is_visible()); 253 EXPECT_TRUE(prompt_factory_->is_visible());
223 ASSERT_EQ(prompt_factory_->request_count(), 2); 254 ASSERT_EQ(prompt_factory_->request_count(), 1);
224 } 255 }
225 256
226 TEST_F(PermissionRequestManagerTest, SequentialRequests) { 257 TEST_F(PermissionRequestManagerTest, SequentialRequests) {
227 manager_->DisplayPendingRequests(); 258 manager_->DisplayPendingRequests();
228 manager_->AddRequest(&request1_); 259 manager_->AddRequest(&request1_);
229 WaitForCoalescing(); 260 WaitForBubbleToBeShown();
230 EXPECT_TRUE(prompt_factory_->is_visible()); 261 EXPECT_TRUE(prompt_factory_->is_visible());
231 262
232 Accept(); 263 Accept();
233 EXPECT_TRUE(request1_.granted()); 264 EXPECT_TRUE(request1_.granted());
234 265
235 EXPECT_FALSE(prompt_factory_->is_visible()); 266 EXPECT_FALSE(prompt_factory_->is_visible());
236 267
237 manager_->AddRequest(&request2_); 268 manager_->AddRequest(&request2_);
238 WaitForCoalescing(); 269 WaitForBubbleToBeShown();
239 EXPECT_TRUE(prompt_factory_->is_visible()); 270 EXPECT_TRUE(prompt_factory_->is_visible());
240 Accept(); 271 Accept();
241 EXPECT_FALSE(prompt_factory_->is_visible()); 272 EXPECT_FALSE(prompt_factory_->is_visible());
242 EXPECT_TRUE(request2_.granted()); 273 EXPECT_TRUE(request2_.granted());
243 } 274 }
244 275
245 TEST_F(PermissionRequestManagerTest, SameRequestRejected) { 276 TEST_F(PermissionRequestManagerTest, SameRequestRejected) {
246 manager_->DisplayPendingRequests(); 277 manager_->DisplayPendingRequests();
247 manager_->AddRequest(&request1_); 278 manager_->AddRequest(&request1_);
248 manager_->AddRequest(&request1_); 279 manager_->AddRequest(&request1_);
249 EXPECT_FALSE(request1_.finished()); 280 EXPECT_FALSE(request1_.finished());
250 281
251 WaitForCoalescing(); 282 WaitForBubbleToBeShown();
252 EXPECT_TRUE(prompt_factory_->is_visible()); 283 EXPECT_TRUE(prompt_factory_->is_visible());
253 ASSERT_EQ(prompt_factory_->request_count(), 1); 284 ASSERT_EQ(prompt_factory_->request_count(), 1);
254 } 285 }
255 286
256 TEST_F(PermissionRequestManagerTest, DuplicateRequestCancelled) { 287 TEST_F(PermissionRequestManagerTest, DuplicateRequestCancelled) {
257 manager_->DisplayPendingRequests(); 288 manager_->DisplayPendingRequests();
258 manager_->AddRequest(&request1_); 289 manager_->AddRequest(&request1_);
259 MockPermissionRequest dupe_request("test1"); 290 MockPermissionRequest dupe_request("test1");
260 manager_->AddRequest(&dupe_request); 291 manager_->AddRequest(&dupe_request);
261 EXPECT_FALSE(dupe_request.finished()); 292 EXPECT_FALSE(dupe_request.finished());
262 EXPECT_FALSE(request1_.finished()); 293 EXPECT_FALSE(request1_.finished());
263 manager_->CancelRequest(&request1_); 294 manager_->CancelRequest(&request1_);
264 EXPECT_TRUE(dupe_request.finished()); 295 EXPECT_TRUE(dupe_request.finished());
265 EXPECT_TRUE(request1_.finished()); 296 EXPECT_TRUE(request1_.finished());
266 } 297 }
267 298
268 TEST_F(PermissionRequestManagerTest, DuplicateQueuedRequest) { 299 TEST_F(PermissionRequestManagerTest, DuplicateQueuedRequest) {
269 manager_->DisplayPendingRequests(); 300 manager_->DisplayPendingRequests();
270 manager_->AddRequest(&request1_); 301 manager_->AddRequest(&request1_);
271 WaitForCoalescing(); 302 WaitForBubbleToBeShown();
272 manager_->AddRequest(&request2_); 303 manager_->AddRequest(&request2_);
273 304
274 MockPermissionRequest dupe_request("test1"); 305 MockPermissionRequest dupe_request("test1");
275 manager_->AddRequest(&dupe_request); 306 manager_->AddRequest(&dupe_request);
276 EXPECT_FALSE(dupe_request.finished()); 307 EXPECT_FALSE(dupe_request.finished());
277 EXPECT_FALSE(request1_.finished()); 308 EXPECT_FALSE(request1_.finished());
278 309
279 MockPermissionRequest dupe_request2("test2"); 310 MockPermissionRequest dupe_request2("test2");
280 manager_->AddRequest(&dupe_request2); 311 manager_->AddRequest(&dupe_request2);
281 EXPECT_FALSE(dupe_request2.finished()); 312 EXPECT_FALSE(dupe_request2.finished());
282 EXPECT_FALSE(request2_.finished()); 313 EXPECT_FALSE(request2_.finished());
283 314
284 manager_->CancelRequest(&request1_); 315 manager_->CancelRequest(&request1_);
285 EXPECT_TRUE(dupe_request.finished()); 316 EXPECT_TRUE(dupe_request.finished());
286 EXPECT_TRUE(request1_.finished()); 317 EXPECT_TRUE(request1_.finished());
287 318
288 manager_->CancelRequest(&request2_); 319 manager_->CancelRequest(&request2_);
289 EXPECT_TRUE(dupe_request2.finished()); 320 EXPECT_TRUE(dupe_request2.finished());
290 EXPECT_TRUE(request2_.finished()); 321 EXPECT_TRUE(request2_.finished());
291 } 322 }
292 323
293 TEST_F(PermissionRequestManagerTest, ForgetRequestsOnPageNavigation) { 324 TEST_F(PermissionRequestManagerTest, ForgetRequestsOnPageNavigation) {
294 manager_->DisplayPendingRequests(); 325 manager_->DisplayPendingRequests();
295 manager_->AddRequest(&request1_); 326 manager_->AddRequest(&request1_);
296 WaitForCoalescing(); 327 WaitForBubbleToBeShown();
297 manager_->AddRequest(&request2_); 328 manager_->AddRequest(&request2_);
298 manager_->AddRequest(&iframe_request_other_domain_); 329 manager_->AddRequest(&iframe_request_other_domain_);
299 330
300 EXPECT_TRUE(prompt_factory_->is_visible()); 331 EXPECT_TRUE(prompt_factory_->is_visible());
301 ASSERT_EQ(prompt_factory_->request_count(), 1); 332 ASSERT_EQ(prompt_factory_->request_count(), 1);
302 333
303 NavigateAndCommit(GURL("http://www2.google.com/")); 334 NavigateAndCommit(GURL("http://www2.google.com/"));
304 WaitForCoalescing(); 335 WaitForBubbleToBeShown();
305 336
306 EXPECT_FALSE(prompt_factory_->is_visible()); 337 EXPECT_FALSE(prompt_factory_->is_visible());
307 EXPECT_TRUE(request1_.finished()); 338 EXPECT_TRUE(request1_.finished());
308 EXPECT_TRUE(request2_.finished()); 339 EXPECT_TRUE(request2_.finished());
309 EXPECT_TRUE(iframe_request_other_domain_.finished()); 340 EXPECT_TRUE(iframe_request_other_domain_.finished());
310 } 341 }
311 342
312 TEST_F(PermissionRequestManagerTest, TestCancelQueued) { 343 TEST_F(PermissionRequestManagerTest, TestCancelQueued) {
313 manager_->AddRequest(&request1_); 344 manager_->AddRequest(&request1_);
314 EXPECT_FALSE(prompt_factory_->is_visible()); 345 EXPECT_FALSE(prompt_factory_->is_visible());
315 346
316 manager_->CancelRequest(&request1_); 347 manager_->CancelRequest(&request1_);
317 EXPECT_TRUE(request1_.finished()); 348 EXPECT_TRUE(request1_.finished());
318 EXPECT_FALSE(prompt_factory_->is_visible()); 349 EXPECT_FALSE(prompt_factory_->is_visible());
319 manager_->DisplayPendingRequests(); 350 manager_->DisplayPendingRequests();
320 EXPECT_FALSE(prompt_factory_->is_visible()); 351 EXPECT_FALSE(prompt_factory_->is_visible());
321 352
322 manager_->AddRequest(&request2_); 353 manager_->AddRequest(&request2_);
323 WaitForCoalescing(); 354 WaitForBubbleToBeShown();
324 EXPECT_TRUE(prompt_factory_->is_visible()); 355 EXPECT_TRUE(prompt_factory_->is_visible());
325 ASSERT_EQ(prompt_factory_->request_count(), 1); 356 ASSERT_EQ(prompt_factory_->request_count(), 1);
326 } 357 }
327 358
328 TEST_F(PermissionRequestManagerTest, TestCancelWhileDialogShown) { 359 TEST_F(PermissionRequestManagerTest, TestCancelWhileDialogShown) {
329 manager_->DisplayPendingRequests(); 360 manager_->DisplayPendingRequests();
330 manager_->AddRequest(&request1_); 361 manager_->AddRequest(&request1_);
331 WaitForCoalescing(); 362 WaitForBubbleToBeShown();
332 363
333 prompt_factory_->SetCanUpdateUi(true); 364 prompt_factory_->SetCanUpdateUi(true);
334 EXPECT_TRUE(prompt_factory_->is_visible()); 365 EXPECT_TRUE(prompt_factory_->is_visible());
335 EXPECT_FALSE(request1_.finished()); 366 EXPECT_FALSE(request1_.finished());
336 manager_->CancelRequest(&request1_); 367 manager_->CancelRequest(&request1_);
337 WaitForCoalescing(); 368 WaitForBubbleToBeShown();
338 EXPECT_TRUE(request1_.finished()); 369 EXPECT_TRUE(request1_.finished());
339 EXPECT_FALSE(prompt_factory_->is_visible()); 370 EXPECT_FALSE(prompt_factory_->is_visible());
340 } 371 }
341 372
342 TEST_F(PermissionRequestManagerTest, TestCancelWhileDialogShownNoUpdate) { 373 TEST_F(PermissionRequestManagerTest, TestCancelWhileDialogShownNoUpdate) {
343 manager_->DisplayPendingRequests(); 374 manager_->DisplayPendingRequests();
344 prompt_factory_->SetCanUpdateUi(false); 375 prompt_factory_->SetCanUpdateUi(false);
345 manager_->AddRequest(&request1_); 376 manager_->AddRequest(&request1_);
346 WaitForCoalescing(); 377 WaitForBubbleToBeShown();
347 prompt_factory_->SetCanUpdateUi(false); 378 prompt_factory_->SetCanUpdateUi(false);
348 379
349 EXPECT_TRUE(prompt_factory_->is_visible()); 380 EXPECT_TRUE(prompt_factory_->is_visible());
350 EXPECT_FALSE(request1_.finished()); 381 EXPECT_FALSE(request1_.finished());
351 manager_->CancelRequest(&request1_); 382 manager_->CancelRequest(&request1_);
352 EXPECT_TRUE(request1_.finished()); 383 EXPECT_TRUE(request1_.finished());
353 EXPECT_TRUE(prompt_factory_->is_visible()); 384 EXPECT_TRUE(prompt_factory_->is_visible());
354 Closing(); 385 Closing();
355 } 386 }
356 387
357 TEST_F(PermissionRequestManagerTest, TestCancelPendingRequest) { 388 TEST_F(PermissionRequestManagerTest, TestCancelPendingRequest) {
358 manager_->DisplayPendingRequests(); 389 manager_->DisplayPendingRequests();
359 manager_->AddRequest(&request1_); 390 manager_->AddRequest(&request1_);
360 WaitForCoalescing(); 391 WaitForBubbleToBeShown();
361 manager_->AddRequest(&request2_); 392 manager_->AddRequest(&request2_);
362 393
363 EXPECT_TRUE(prompt_factory_->is_visible()); 394 EXPECT_TRUE(prompt_factory_->is_visible());
364 ASSERT_EQ(prompt_factory_->request_count(), 1); 395 ASSERT_EQ(prompt_factory_->request_count(), 1);
365 manager_->CancelRequest(&request2_); 396 manager_->CancelRequest(&request2_);
366 397
367 EXPECT_TRUE(prompt_factory_->is_visible()); 398 EXPECT_TRUE(prompt_factory_->is_visible());
368 EXPECT_FALSE(request1_.finished()); 399 EXPECT_FALSE(request1_.finished());
369 EXPECT_TRUE(request2_.finished()); 400 EXPECT_TRUE(request2_.finished());
370 } 401 }
371 402
372 TEST_F(PermissionRequestManagerTest, MainFrameNoRequestIFrameRequest) { 403 TEST_F(PermissionRequestManagerTest, MainFrameNoRequestIFrameRequest) {
373 manager_->DisplayPendingRequests(); 404 manager_->DisplayPendingRequests();
374 manager_->AddRequest(&iframe_request_same_domain_); 405 manager_->AddRequest(&iframe_request_same_domain_);
375 WaitForCoalescing(); 406 WaitForBubbleToBeShown();
376 WaitForFrameLoad(); 407 WaitForFrameLoad();
377 408
378 EXPECT_TRUE(prompt_factory_->is_visible()); 409 EXPECT_TRUE(prompt_factory_->is_visible());
379 Closing(); 410 Closing();
380 EXPECT_TRUE(iframe_request_same_domain_.finished()); 411 EXPECT_TRUE(iframe_request_same_domain_.finished());
381 } 412 }
382 413
383 TEST_F(PermissionRequestManagerTest, MainFrameAndIFrameRequestSameDomain) { 414 TEST_F(PermissionRequestManagerTest, MainFrameAndIFrameRequestSameDomain) {
384 manager_->DisplayPendingRequests(); 415 manager_->DisplayPendingRequests();
385 manager_->AddRequest(&request1_); 416 manager_->AddRequest(&request1_);
386 manager_->AddRequest(&iframe_request_same_domain_); 417 manager_->AddRequest(&iframe_request_same_domain_);
387 WaitForFrameLoad(); 418 WaitForFrameLoad();
388 WaitForCoalescing(); 419 WaitForBubbleToBeShown();
389 420
390 EXPECT_TRUE(prompt_factory_->is_visible()); 421 EXPECT_TRUE(prompt_factory_->is_visible());
391 ASSERT_EQ(prompt_factory_->request_count(), 2); 422 ASSERT_EQ(1, prompt_factory_->request_count());
392 Closing(); 423 Closing();
393 EXPECT_TRUE(request1_.finished()); 424 EXPECT_TRUE(request1_.finished());
425 EXPECT_FALSE(iframe_request_same_domain_.finished());
426 WaitForBubbleToBeShown();
427 EXPECT_TRUE(prompt_factory_->is_visible());
428 ASSERT_EQ(1, prompt_factory_->request_count());
429 Closing();
430 EXPECT_FALSE(prompt_factory_->is_visible());
394 EXPECT_TRUE(iframe_request_same_domain_.finished()); 431 EXPECT_TRUE(iframe_request_same_domain_.finished());
395 EXPECT_FALSE(prompt_factory_->is_visible());
396 } 432 }
397 433
398 TEST_F(PermissionRequestManagerTest, MainFrameAndIFrameRequestOtherDomain) { 434 TEST_F(PermissionRequestManagerTest, MainFrameAndIFrameRequestOtherDomain) {
399 manager_->DisplayPendingRequests(); 435 manager_->DisplayPendingRequests();
400 manager_->AddRequest(&request1_); 436 manager_->AddRequest(&request1_);
401 manager_->AddRequest(&iframe_request_other_domain_); 437 manager_->AddRequest(&iframe_request_other_domain_);
402 WaitForFrameLoad(); 438 WaitForFrameLoad();
403 WaitForCoalescing(); 439 WaitForBubbleToBeShown();
404 440
405 EXPECT_TRUE(prompt_factory_->is_visible()); 441 EXPECT_TRUE(prompt_factory_->is_visible());
406 Closing(); 442 Closing();
407 EXPECT_TRUE(request1_.finished()); 443 EXPECT_TRUE(request1_.finished());
408 EXPECT_FALSE(iframe_request_other_domain_.finished()); 444 EXPECT_FALSE(iframe_request_other_domain_.finished());
409 EXPECT_TRUE(prompt_factory_->is_visible()); 445 EXPECT_TRUE(prompt_factory_->is_visible());
410 Closing(); 446 Closing();
411 EXPECT_TRUE(iframe_request_other_domain_.finished()); 447 EXPECT_TRUE(iframe_request_other_domain_.finished());
412 } 448 }
413 449
414 TEST_F(PermissionRequestManagerTest, IFrameRequestWhenMainRequestVisible) { 450 TEST_F(PermissionRequestManagerTest, IFrameRequestWhenMainRequestVisible) {
415 manager_->DisplayPendingRequests(); 451 manager_->DisplayPendingRequests();
416 manager_->AddRequest(&request1_); 452 manager_->AddRequest(&request1_);
417 WaitForCoalescing(); 453 WaitForBubbleToBeShown();
418 EXPECT_TRUE(prompt_factory_->is_visible()); 454 EXPECT_TRUE(prompt_factory_->is_visible());
419 455
420 manager_->AddRequest(&iframe_request_same_domain_); 456 manager_->AddRequest(&iframe_request_same_domain_);
421 WaitForFrameLoad(); 457 WaitForFrameLoad();
422 ASSERT_EQ(prompt_factory_->request_count(), 1); 458 ASSERT_EQ(prompt_factory_->request_count(), 1);
423 Closing(); 459 Closing();
424 EXPECT_TRUE(request1_.finished()); 460 EXPECT_TRUE(request1_.finished());
425 EXPECT_FALSE(iframe_request_same_domain_.finished()); 461 EXPECT_FALSE(iframe_request_same_domain_.finished());
426 EXPECT_TRUE(prompt_factory_->is_visible()); 462 EXPECT_TRUE(prompt_factory_->is_visible());
427 ASSERT_EQ(prompt_factory_->request_count(), 1); 463 ASSERT_EQ(prompt_factory_->request_count(), 1);
428 Closing(); 464 Closing();
429 EXPECT_TRUE(iframe_request_same_domain_.finished()); 465 EXPECT_TRUE(iframe_request_same_domain_.finished());
430 } 466 }
431 467
432 TEST_F(PermissionRequestManagerTest, 468 TEST_F(PermissionRequestManagerTest,
433 IFrameRequestOtherDomainWhenMainRequestVisible) { 469 IFrameRequestOtherDomainWhenMainRequestVisible) {
434 manager_->DisplayPendingRequests(); 470 manager_->DisplayPendingRequests();
435 manager_->AddRequest(&request1_); 471 manager_->AddRequest(&request1_);
436 WaitForCoalescing(); 472 WaitForBubbleToBeShown();
437 EXPECT_TRUE(prompt_factory_->is_visible()); 473 EXPECT_TRUE(prompt_factory_->is_visible());
438 474
439 manager_->AddRequest(&iframe_request_other_domain_); 475 manager_->AddRequest(&iframe_request_other_domain_);
440 WaitForFrameLoad(); 476 WaitForFrameLoad();
441 Closing(); 477 Closing();
442 EXPECT_TRUE(request1_.finished()); 478 EXPECT_TRUE(request1_.finished());
443 EXPECT_FALSE(iframe_request_other_domain_.finished()); 479 EXPECT_FALSE(iframe_request_other_domain_.finished());
444 EXPECT_TRUE(prompt_factory_->is_visible()); 480 EXPECT_TRUE(prompt_factory_->is_visible());
445 Closing(); 481 Closing();
446 EXPECT_TRUE(iframe_request_other_domain_.finished()); 482 EXPECT_TRUE(iframe_request_other_domain_.finished());
447 } 483 }
448 484
449 TEST_F(PermissionRequestManagerTest, RequestsDontNeedUserGesture) { 485 TEST_F(PermissionRequestManagerTest, RequestsDontNeedUserGesture) {
450 manager_->DisplayPendingRequests(); 486 manager_->DisplayPendingRequests();
451 WaitForFrameLoad(); 487 WaitForFrameLoad();
452 WaitForCoalescing(); 488 WaitForBubbleToBeShown();
453 manager_->AddRequest(&request1_); 489 manager_->AddRequest(&request1_);
454 manager_->AddRequest(&iframe_request_other_domain_); 490 manager_->AddRequest(&iframe_request_other_domain_);
455 manager_->AddRequest(&request2_); 491 manager_->AddRequest(&request2_);
456 base::RunLoop().RunUntilIdle(); 492 base::RunLoop().RunUntilIdle();
457 493
458 EXPECT_TRUE(prompt_factory_->is_visible()); 494 EXPECT_TRUE(prompt_factory_->is_visible());
459 } 495 }
460 496
461 TEST_F(PermissionRequestManagerTest, UMAForSimpleAcceptedGestureBubble) { 497 TEST_F(PermissionRequestManagerTest, UMAForSimpleAcceptedGestureBubble) {
462 base::HistogramTester histograms; 498 base::HistogramTester histograms;
463 499
464 manager_->AddRequest(&request1_); 500 manager_->AddRequest(&request1_);
465 manager_->DisplayPendingRequests(); 501 manager_->DisplayPendingRequests();
466 WaitForCoalescing(); 502 WaitForBubbleToBeShown();
467 histograms.ExpectUniqueSample( 503 histograms.ExpectUniqueSample(
468 PermissionUmaUtil::kPermissionsPromptShown, 504 PermissionUmaUtil::kPermissionsPromptShown,
469 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA), 505 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA),
470 1); 506 1);
471 histograms.ExpectUniqueSample( 507 histograms.ExpectUniqueSample(
472 PermissionUmaUtil::kPermissionsPromptShownGesture, 508 PermissionUmaUtil::kPermissionsPromptShownGesture,
473 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA), 509 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA),
474 1); 510 1);
475 histograms.ExpectTotalCount( 511 histograms.ExpectTotalCount(
476 PermissionUmaUtil::kPermissionsPromptShownNoGesture, 0); 512 PermissionUmaUtil::kPermissionsPromptShownNoGesture, 0);
(...skipping 15 matching lines...) Expand all
492 1); 528 1);
493 histograms.ExpectTotalCount( 529 histograms.ExpectTotalCount(
494 PermissionUmaUtil::kPermissionsPromptAcceptedNoGesture, 0); 530 PermissionUmaUtil::kPermissionsPromptAcceptedNoGesture, 0);
495 } 531 }
496 532
497 TEST_F(PermissionRequestManagerTest, UMAForSimpleDeniedNoGestureBubble) { 533 TEST_F(PermissionRequestManagerTest, UMAForSimpleDeniedNoGestureBubble) {
498 base::HistogramTester histograms; 534 base::HistogramTester histograms;
499 535
500 manager_->AddRequest(&request2_); 536 manager_->AddRequest(&request2_);
501 manager_->DisplayPendingRequests(); 537 manager_->DisplayPendingRequests();
502 WaitForCoalescing(); 538 WaitForBubbleToBeShown();
503 539
504 histograms.ExpectTotalCount( 540 histograms.ExpectTotalCount(
505 PermissionUmaUtil::kPermissionsPromptShownGesture, 0); 541 PermissionUmaUtil::kPermissionsPromptShownGesture, 0);
506 histograms.ExpectUniqueSample( 542 histograms.ExpectUniqueSample(
507 PermissionUmaUtil::kPermissionsPromptShownNoGesture, 543 PermissionUmaUtil::kPermissionsPromptShownNoGesture,
508 static_cast<base::HistogramBase::Sample>(PermissionRequestType::DOWNLOAD), 544 static_cast<base::HistogramBase::Sample>(PermissionRequestType::DOWNLOAD),
509 1); 545 1);
510 // No need to test the other UMA for showing prompts again, they were tested 546 // No need to test the other UMA for showing prompts again, they were tested
511 // in UMAForSimpleAcceptedBubble. 547 // in UMAForSimpleAcceptedBubble.
512 548
(...skipping 14 matching lines...) Expand all
527 } 563 }
528 564
529 // This code path (calling Accept on a non-merged bubble, with no accepted 565 // This code path (calling Accept on a non-merged bubble, with no accepted
530 // permission) would never be used in actual Chrome, but its still tested for 566 // permission) would never be used in actual Chrome, but its still tested for
531 // completeness. 567 // completeness.
532 TEST_F(PermissionRequestManagerTest, UMAForSimpleDeniedBubbleAlternatePath) { 568 TEST_F(PermissionRequestManagerTest, UMAForSimpleDeniedBubbleAlternatePath) {
533 base::HistogramTester histograms; 569 base::HistogramTester histograms;
534 570
535 manager_->AddRequest(&request1_); 571 manager_->AddRequest(&request1_);
536 manager_->DisplayPendingRequests(); 572 manager_->DisplayPendingRequests();
537 WaitForCoalescing(); 573 WaitForBubbleToBeShown();
538 // No need to test UMA for showing prompts again, they were tested in 574 // No need to test UMA for showing prompts again, they were tested in
539 // UMAForSimpleAcceptedBubble. 575 // UMAForSimpleAcceptedBubble.
540 576
541 ToggleAccept(0, false); 577 ToggleAccept(0, false);
542 Accept(); 578 Accept();
543 histograms.ExpectUniqueSample( 579 histograms.ExpectUniqueSample(
544 PermissionUmaUtil::kPermissionsPromptDenied, 580 PermissionUmaUtil::kPermissionsPromptDenied,
545 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA), 581 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA),
546 1); 582 1);
547 } 583 }
548 584
549 TEST_F(PermissionRequestManagerTest, UMAForMergedAcceptedBubble) { 585 TEST_F(PermissionRequestManagerTest, UMAForMergedAcceptedBubble) {
550 base::HistogramTester histograms; 586 base::HistogramTester histograms;
551 587
552 manager_->AddRequest(&request1_); 588 manager_->AddRequest(&request_mic_);
553 manager_->AddRequest(&request2_); 589 manager_->AddRequest(&request_camera_);
554 manager_->DisplayPendingRequests(); 590 manager_->DisplayPendingRequests();
555 WaitForCoalescing(); 591 WaitForBubbleToBeShown();
556 592
557 histograms.ExpectUniqueSample( 593 histograms.ExpectUniqueSample(
558 PermissionUmaUtil::kPermissionsPromptShown, 594 PermissionUmaUtil::kPermissionsPromptShown,
559 static_cast<base::HistogramBase::Sample>(PermissionRequestType::MULTIPLE), 595 static_cast<base::HistogramBase::Sample>(PermissionRequestType::MULTIPLE),
560 1); 596 1);
561 histograms.ExpectBucketCount( 597 histograms.ExpectBucketCount(
562 PermissionUmaUtil::kPermissionsPromptMergedBubbleTypes, 598 PermissionUmaUtil::kPermissionsPromptMergedBubbleTypes,
563 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA), 599 static_cast<base::HistogramBase::Sample>(
600 PermissionRequestType::PERMISSION_MEDIASTREAM_MIC),
564 1); 601 1);
565 histograms.ExpectBucketCount( 602 histograms.ExpectBucketCount(
566 PermissionUmaUtil::kPermissionsPromptMergedBubbleTypes, 603 PermissionUmaUtil::kPermissionsPromptMergedBubbleTypes,
567 static_cast<base::HistogramBase::Sample>(PermissionRequestType::DOWNLOAD), 604 static_cast<base::HistogramBase::Sample>(
605 PermissionRequestType::PERMISSION_MEDIASTREAM_CAMERA),
568 1); 606 1);
569 histograms.ExpectUniqueSample( 607 histograms.ExpectUniqueSample(
570 PermissionUmaUtil::kPermissionsPromptRequestsPerPrompt, 2, 1); 608 PermissionUmaUtil::kPermissionsPromptRequestsPerPrompt, 2, 1);
571 histograms.ExpectTotalCount( 609 histograms.ExpectTotalCount(
572 PermissionUmaUtil::kPermissionsPromptShownGesture, 0); 610 PermissionUmaUtil::kPermissionsPromptShownGesture, 0);
573 histograms.ExpectTotalCount( 611 histograms.ExpectTotalCount(
574 PermissionUmaUtil::kPermissionsPromptShownNoGesture, 0); 612 PermissionUmaUtil::kPermissionsPromptShownNoGesture, 0);
575 613
576 ToggleAccept(0, true); 614 ToggleAccept(0, true);
577 ToggleAccept(1, true); 615 ToggleAccept(1, true);
578 Accept(); 616 Accept();
579 617
580 histograms.ExpectUniqueSample( 618 histograms.ExpectUniqueSample(
581 PermissionUmaUtil::kPermissionsPromptAccepted, 619 PermissionUmaUtil::kPermissionsPromptAccepted,
582 static_cast<base::HistogramBase::Sample>(PermissionRequestType::MULTIPLE), 620 static_cast<base::HistogramBase::Sample>(PermissionRequestType::MULTIPLE),
583 1); 621 1);
584 histograms.ExpectBucketCount( 622 histograms.ExpectBucketCount(
585 PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted, 623 PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted,
586 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA), 624 static_cast<base::HistogramBase::Sample>(
625 PermissionRequestType::PERMISSION_MEDIASTREAM_MIC),
587 1); 626 1);
588 histograms.ExpectBucketCount( 627 histograms.ExpectBucketCount(
589 PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted, 628 PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted,
590 static_cast<base::HistogramBase::Sample>(PermissionRequestType::DOWNLOAD), 629 static_cast<base::HistogramBase::Sample>(
630 PermissionRequestType::PERMISSION_MEDIASTREAM_CAMERA),
591 1); 631 1);
592 } 632 }
593 633
594 TEST_F(PermissionRequestManagerTest, UMAForMergedMixedBubble) { 634 TEST_F(PermissionRequestManagerTest, UMAForMergedMixedBubble) {
595 base::HistogramTester histograms; 635 base::HistogramTester histograms;
596 636
597 manager_->AddRequest(&request1_); 637 manager_->AddRequest(&request_mic_);
598 manager_->AddRequest(&request2_); 638 manager_->AddRequest(&request_camera_);
599 manager_->DisplayPendingRequests(); 639 manager_->DisplayPendingRequests();
600 WaitForCoalescing(); 640 WaitForBubbleToBeShown();
601 // No need to test UMA for showing prompts again, they were tested in 641 // No need to test UMA for showing prompts again, they were tested in
602 // UMAForMergedAcceptedBubble. 642 // UMAForMergedAcceptedBubble.
603 643
604 ToggleAccept(0, true); 644 ToggleAccept(0, true);
605 ToggleAccept(1, false); 645 ToggleAccept(1, false);
606 Accept(); 646 Accept();
607 647
608 histograms.ExpectUniqueSample( 648 histograms.ExpectUniqueSample(
609 PermissionUmaUtil::kPermissionsPromptDenied, 649 PermissionUmaUtil::kPermissionsPromptDenied,
610 static_cast<base::HistogramBase::Sample>(PermissionRequestType::MULTIPLE), 650 static_cast<base::HistogramBase::Sample>(PermissionRequestType::MULTIPLE),
611 1); 651 1);
612 histograms.ExpectBucketCount( 652 histograms.ExpectBucketCount(
613 PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted, 653 PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted,
614 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA), 654 static_cast<base::HistogramBase::Sample>(
655 PermissionRequestType::PERMISSION_MEDIASTREAM_MIC),
615 1); 656 1);
616 histograms.ExpectBucketCount( 657 histograms.ExpectBucketCount(
617 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied, 658 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied,
618 static_cast<base::HistogramBase::Sample>(PermissionRequestType::DOWNLOAD), 659 static_cast<base::HistogramBase::Sample>(
660 PermissionRequestType::PERMISSION_MEDIASTREAM_CAMERA),
619 1); 661 1);
620 } 662 }
621 663
622 TEST_F(PermissionRequestManagerTest, UMAForMergedDeniedBubble) { 664 TEST_F(PermissionRequestManagerTest, UMAForMergedDeniedBubble) {
623 base::HistogramTester histograms; 665 base::HistogramTester histograms;
624 666
625 manager_->AddRequest(&request1_); 667 manager_->AddRequest(&request_mic_);
626 manager_->AddRequest(&request2_); 668 manager_->AddRequest(&request_camera_);
627 manager_->DisplayPendingRequests(); 669 manager_->DisplayPendingRequests();
628 WaitForCoalescing(); 670 WaitForBubbleToBeShown();
629 // No need to test UMA for showing prompts again, they were tested in 671 // No need to test UMA for showing prompts again, they were tested in
630 // UMAForMergedAcceptedBubble. 672 // UMAForMergedAcceptedBubble.
631 673
632 ToggleAccept(0, false); 674 ToggleAccept(0, false);
633 ToggleAccept(1, false); 675 ToggleAccept(1, false);
634 Accept(); 676 Accept();
635 677
636 histograms.ExpectUniqueSample( 678 histograms.ExpectUniqueSample(
637 PermissionUmaUtil::kPermissionsPromptDenied, 679 PermissionUmaUtil::kPermissionsPromptDenied,
638 static_cast<base::HistogramBase::Sample>(PermissionRequestType::MULTIPLE), 680 static_cast<base::HistogramBase::Sample>(PermissionRequestType::MULTIPLE),
639 1); 681 1);
640 histograms.ExpectBucketCount( 682 histograms.ExpectBucketCount(
641 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied, 683 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied,
642 static_cast<base::HistogramBase::Sample>(PermissionRequestType::QUOTA), 684 static_cast<base::HistogramBase::Sample>(
685 PermissionRequestType::PERMISSION_MEDIASTREAM_MIC),
643 1); 686 1);
644 histograms.ExpectBucketCount( 687 histograms.ExpectBucketCount(
645 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied, 688 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied,
646 static_cast<base::HistogramBase::Sample>(PermissionRequestType::DOWNLOAD), 689 static_cast<base::HistogramBase::Sample>(
690 PermissionRequestType::PERMISSION_MEDIASTREAM_CAMERA),
647 1); 691 1);
648 } 692 }
OLDNEW
« no previous file with comments | « chrome/browser/permissions/permission_request_manager_browsertest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698