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

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

Issue 2081103002: Rename PermissionBubbleManager to PermissionRequestManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review comments Created 4 years, 5 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/permission_request_manager.h"
12 #include "chrome/browser/permissions/permission_uma_util.h" 13 #include "chrome/browser/permissions/permission_uma_util.h"
13 #include "chrome/browser/ui/website_settings/mock_permission_bubble_factory.h" 14 #include "chrome/browser/ui/website_settings/mock_permission_bubble_factory.h"
14 #include "chrome/browser/ui/website_settings/mock_permission_bubble_request.h" 15 #include "chrome/browser/ui/website_settings/mock_permission_bubble_request.h"
15 #include "chrome/browser/ui/website_settings/permission_bubble_manager.h"
16 #include "chrome/browser/ui/website_settings/permission_bubble_request.h" 16 #include "chrome/browser/ui/website_settings/permission_bubble_request.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 PermissionBubbleManagerTest : public ChromeRenderViewHostTestHarness { 21 class PermissionRequestManagerTest : public ChromeRenderViewHostTestHarness {
22 public: 22 public:
23 PermissionBubbleManagerTest() 23 PermissionRequestManagerTest()
24 : ChromeRenderViewHostTestHarness(), 24 : ChromeRenderViewHostTestHarness(),
25 request1_("test1", PermissionBubbleType::QUOTA), 25 request1_("test1", PermissionBubbleType::QUOTA),
26 request2_("test2", PermissionBubbleType::DOWNLOAD), 26 request2_("test2", PermissionBubbleType::DOWNLOAD),
27 iframe_request_same_domain_("iframe", 27 iframe_request_same_domain_("iframe",
28 GURL("http://www.google.com/some/url")), 28 GURL("http://www.google.com/some/url")),
29 iframe_request_other_domain_("iframe", 29 iframe_request_other_domain_("iframe",
30 GURL("http://www.youtube.com")) {} 30 GURL("http://www.youtube.com")) {}
31 ~PermissionBubbleManagerTest() override {} 31 ~PermissionRequestManagerTest() override {}
32 32
33 void SetUp() override { 33 void SetUp() override {
34 ChromeRenderViewHostTestHarness::SetUp(); 34 ChromeRenderViewHostTestHarness::SetUp();
35 SetContents(CreateTestWebContents()); 35 SetContents(CreateTestWebContents());
36 NavigateAndCommit(GURL("http://www.google.com")); 36 NavigateAndCommit(GURL("http://www.google.com"));
37 37
38 manager_.reset(new PermissionBubbleManager(web_contents())); 38 manager_.reset(new PermissionRequestManager(web_contents()));
39 view_factory_.reset(new MockPermissionBubbleFactory(manager_.get())); 39 view_factory_.reset(new MockPermissionBubbleFactory(manager_.get()));
40 } 40 }
41 41
42 void TearDown() override { 42 void TearDown() override {
43 view_factory_.reset(); 43 view_factory_.reset();
44 manager_.reset(); 44 manager_.reset();
45 ChromeRenderViewHostTestHarness::TearDown(); 45 ChromeRenderViewHostTestHarness::TearDown();
46 } 46 }
47 47
48 void ToggleAccept(int index, bool value) { 48 void ToggleAccept(int index, bool value) {
49 manager_->ToggleAccept(index, value); 49 manager_->ToggleAccept(index, value);
50 } 50 }
51 51
52 void Accept() { 52 void Accept() {
53 manager_->Accept(); 53 manager_->Accept();
54 } 54 }
55 55
56 void Deny() { 56 void Deny() {
57 manager_->Deny(); 57 manager_->Deny();
58 } 58 }
59 59
60 void Closing() { 60 void Closing() {
61 manager_->Closing(); 61 manager_->Closing();
62 } 62 }
63 63
64 void WaitForFrameLoad() { 64 void WaitForFrameLoad() {
65 // PermissionBubbleManager ignores all parameters. Yay? 65 // PermissionRequestManager ignores all parameters. Yay?
66 manager_->DocumentLoadedInFrame(NULL); 66 manager_->DocumentLoadedInFrame(NULL);
67 base::RunLoop().RunUntilIdle(); 67 base::RunLoop().RunUntilIdle();
68 } 68 }
69 69
70 void WaitForCoalescing() { 70 void WaitForCoalescing() {
71 manager_->DocumentOnLoadCompletedInMainFrame(); 71 manager_->DocumentOnLoadCompletedInMainFrame();
72 base::RunLoop().RunUntilIdle(); 72 base::RunLoop().RunUntilIdle();
73 } 73 }
74 74
75 void MockTabSwitchAway() { manager_->HideBubble(); } 75 void MockTabSwitchAway() { manager_->HideBubble(); }
76 76
77 void MockTabSwitchBack() { manager_->DisplayPendingRequests(); } 77 void MockTabSwitchBack() { manager_->DisplayPendingRequests(); }
78 78
79 virtual void NavigationEntryCommitted( 79 virtual void NavigationEntryCommitted(
80 const content::LoadCommittedDetails& details) { 80 const content::LoadCommittedDetails& details) {
81 manager_->NavigationEntryCommitted(details); 81 manager_->NavigationEntryCommitted(details);
82 } 82 }
83 83
84 protected: 84 protected:
85 MockPermissionBubbleRequest request1_; 85 MockPermissionBubbleRequest request1_;
86 MockPermissionBubbleRequest request2_; 86 MockPermissionBubbleRequest request2_;
87 MockPermissionBubbleRequest iframe_request_same_domain_; 87 MockPermissionBubbleRequest iframe_request_same_domain_;
88 MockPermissionBubbleRequest iframe_request_other_domain_; 88 MockPermissionBubbleRequest iframe_request_other_domain_;
89 std::unique_ptr<PermissionBubbleManager> manager_; 89 std::unique_ptr<PermissionRequestManager> manager_;
90 std::unique_ptr<MockPermissionBubbleFactory> view_factory_; 90 std::unique_ptr<MockPermissionBubbleFactory> view_factory_;
91 }; 91 };
92 92
93 TEST_F(PermissionBubbleManagerTest, SingleRequest) { 93 TEST_F(PermissionRequestManagerTest, SingleRequest) {
94 manager_->AddRequest(&request1_); 94 manager_->AddRequest(&request1_);
95 manager_->DisplayPendingRequests(); 95 manager_->DisplayPendingRequests();
96 WaitForCoalescing(); 96 WaitForCoalescing();
97 97
98 EXPECT_TRUE(view_factory_->is_visible()); 98 EXPECT_TRUE(view_factory_->is_visible());
99 ASSERT_EQ(view_factory_->request_count(), 1); 99 ASSERT_EQ(view_factory_->request_count(), 1);
100 100
101 ToggleAccept(0, true); 101 ToggleAccept(0, true);
102 Accept(); 102 Accept();
103 EXPECT_TRUE(request1_.granted()); 103 EXPECT_TRUE(request1_.granted());
104 } 104 }
105 105
106 TEST_F(PermissionBubbleManagerTest, SingleRequestViewFirst) { 106 TEST_F(PermissionRequestManagerTest, SingleRequestViewFirst) {
107 manager_->DisplayPendingRequests(); 107 manager_->DisplayPendingRequests();
108 manager_->AddRequest(&request1_); 108 manager_->AddRequest(&request1_);
109 WaitForCoalescing(); 109 WaitForCoalescing();
110 110
111 EXPECT_TRUE(view_factory_->is_visible()); 111 EXPECT_TRUE(view_factory_->is_visible());
112 ASSERT_EQ(view_factory_->request_count(), 1); 112 ASSERT_EQ(view_factory_->request_count(), 1);
113 113
114 ToggleAccept(0, true); 114 ToggleAccept(0, true);
115 Accept(); 115 Accept();
116 EXPECT_TRUE(request1_.granted()); 116 EXPECT_TRUE(request1_.granted());
117 } 117 }
118 118
119 TEST_F(PermissionBubbleManagerTest, TwoRequests) { 119 TEST_F(PermissionRequestManagerTest, TwoRequests) {
120 manager_->AddRequest(&request1_); 120 manager_->AddRequest(&request1_);
121 manager_->AddRequest(&request2_); 121 manager_->AddRequest(&request2_);
122 manager_->DisplayPendingRequests(); 122 manager_->DisplayPendingRequests();
123 WaitForCoalescing(); 123 WaitForCoalescing();
124 124
125 EXPECT_TRUE(view_factory_->is_visible()); 125 EXPECT_TRUE(view_factory_->is_visible());
126 ASSERT_EQ(view_factory_->request_count(), 2); 126 ASSERT_EQ(view_factory_->request_count(), 2);
127 127
128 ToggleAccept(0, true); 128 ToggleAccept(0, true);
129 ToggleAccept(1, false); 129 ToggleAccept(1, false);
130 Accept(); 130 Accept();
131 EXPECT_TRUE(request1_.granted()); 131 EXPECT_TRUE(request1_.granted());
132 EXPECT_FALSE(request2_.granted()); 132 EXPECT_FALSE(request2_.granted());
133 } 133 }
134 134
135 TEST_F(PermissionBubbleManagerTest, TwoRequestsTabSwitch) { 135 TEST_F(PermissionRequestManagerTest, TwoRequestsTabSwitch) {
136 manager_->AddRequest(&request1_); 136 manager_->AddRequest(&request1_);
137 manager_->AddRequest(&request2_); 137 manager_->AddRequest(&request2_);
138 manager_->DisplayPendingRequests(); 138 manager_->DisplayPendingRequests();
139 WaitForCoalescing(); 139 WaitForCoalescing();
140 140
141 EXPECT_TRUE(view_factory_->is_visible()); 141 EXPECT_TRUE(view_factory_->is_visible());
142 ASSERT_EQ(view_factory_->request_count(), 2); 142 ASSERT_EQ(view_factory_->request_count(), 2);
143 143
144 ToggleAccept(0, true); 144 ToggleAccept(0, true);
145 ToggleAccept(1, false); 145 ToggleAccept(1, false);
146 146
147 MockTabSwitchAway(); 147 MockTabSwitchAway();
148 EXPECT_FALSE(view_factory_->is_visible()); 148 EXPECT_FALSE(view_factory_->is_visible());
149 149
150 MockTabSwitchBack(); 150 MockTabSwitchBack();
151 WaitForCoalescing(); 151 WaitForCoalescing();
152 EXPECT_TRUE(view_factory_->is_visible()); 152 EXPECT_TRUE(view_factory_->is_visible());
153 ASSERT_EQ(view_factory_->request_count(), 2); 153 ASSERT_EQ(view_factory_->request_count(), 2);
154 154
155 Accept(); 155 Accept();
156 EXPECT_TRUE(request1_.granted()); 156 EXPECT_TRUE(request1_.granted());
157 EXPECT_FALSE(request2_.granted()); 157 EXPECT_FALSE(request2_.granted());
158 } 158 }
159 159
160 TEST_F(PermissionBubbleManagerTest, NoRequests) { 160 TEST_F(PermissionRequestManagerTest, NoRequests) {
161 manager_->DisplayPendingRequests(); 161 manager_->DisplayPendingRequests();
162 WaitForCoalescing(); 162 WaitForCoalescing();
163 EXPECT_FALSE(view_factory_->is_visible()); 163 EXPECT_FALSE(view_factory_->is_visible());
164 } 164 }
165 165
166 TEST_F(PermissionBubbleManagerTest, NoView) { 166 TEST_F(PermissionRequestManagerTest, NoView) {
167 manager_->AddRequest(&request1_); 167 manager_->AddRequest(&request1_);
168 // Don't display the pending requests. 168 // Don't display the pending requests.
169 WaitForCoalescing(); 169 WaitForCoalescing();
170 EXPECT_FALSE(view_factory_->is_visible()); 170 EXPECT_FALSE(view_factory_->is_visible());
171 } 171 }
172 172
173 TEST_F(PermissionBubbleManagerTest, TwoRequestsCoalesce) { 173 TEST_F(PermissionRequestManagerTest, TwoRequestsCoalesce) {
174 manager_->DisplayPendingRequests(); 174 manager_->DisplayPendingRequests();
175 manager_->AddRequest(&request1_); 175 manager_->AddRequest(&request1_);
176 manager_->AddRequest(&request2_); 176 manager_->AddRequest(&request2_);
177 EXPECT_FALSE(view_factory_->is_visible()); 177 EXPECT_FALSE(view_factory_->is_visible());
178 WaitForCoalescing(); 178 WaitForCoalescing();
179 179
180 EXPECT_TRUE(view_factory_->is_visible()); 180 EXPECT_TRUE(view_factory_->is_visible());
181 ASSERT_EQ(view_factory_->request_count(), 2); 181 ASSERT_EQ(view_factory_->request_count(), 2);
182 } 182 }
183 183
184 TEST_F(PermissionBubbleManagerTest, TwoRequestsDoNotCoalesce) { 184 TEST_F(PermissionRequestManagerTest, TwoRequestsDoNotCoalesce) {
185 manager_->DisplayPendingRequests(); 185 manager_->DisplayPendingRequests();
186 manager_->AddRequest(&request1_); 186 manager_->AddRequest(&request1_);
187 WaitForCoalescing(); 187 WaitForCoalescing();
188 manager_->AddRequest(&request2_); 188 manager_->AddRequest(&request2_);
189 189
190 EXPECT_TRUE(view_factory_->is_visible()); 190 EXPECT_TRUE(view_factory_->is_visible());
191 ASSERT_EQ(view_factory_->request_count(), 1); 191 ASSERT_EQ(view_factory_->request_count(), 1);
192 } 192 }
193 193
194 TEST_F(PermissionBubbleManagerTest, TwoRequestsShownInTwoBubbles) { 194 TEST_F(PermissionRequestManagerTest, TwoRequestsShownInTwoBubbles) {
195 manager_->DisplayPendingRequests(); 195 manager_->DisplayPendingRequests();
196 manager_->AddRequest(&request1_); 196 manager_->AddRequest(&request1_);
197 WaitForCoalescing(); 197 WaitForCoalescing();
198 manager_->AddRequest(&request2_); 198 manager_->AddRequest(&request2_);
199 199
200 EXPECT_TRUE(view_factory_->is_visible()); 200 EXPECT_TRUE(view_factory_->is_visible());
201 ASSERT_EQ(view_factory_->request_count(), 1); 201 ASSERT_EQ(view_factory_->request_count(), 1);
202 202
203 Accept(); 203 Accept();
204 WaitForCoalescing(); 204 WaitForCoalescing();
205 205
206 EXPECT_TRUE(view_factory_->is_visible()); 206 EXPECT_TRUE(view_factory_->is_visible());
207 ASSERT_EQ(view_factory_->request_count(), 1); 207 ASSERT_EQ(view_factory_->request_count(), 1);
208 ASSERT_EQ(view_factory_->show_count(), 2); 208 ASSERT_EQ(view_factory_->show_count(), 2);
209 } 209 }
210 210
211 TEST_F(PermissionBubbleManagerTest, TestAddDuplicateRequest) { 211 TEST_F(PermissionRequestManagerTest, TestAddDuplicateRequest) {
212 manager_->DisplayPendingRequests(); 212 manager_->DisplayPendingRequests();
213 manager_->AddRequest(&request1_); 213 manager_->AddRequest(&request1_);
214 manager_->AddRequest(&request2_); 214 manager_->AddRequest(&request2_);
215 manager_->AddRequest(&request1_); 215 manager_->AddRequest(&request1_);
216 216
217 WaitForCoalescing(); 217 WaitForCoalescing();
218 EXPECT_TRUE(view_factory_->is_visible()); 218 EXPECT_TRUE(view_factory_->is_visible());
219 ASSERT_EQ(view_factory_->request_count(), 2); 219 ASSERT_EQ(view_factory_->request_count(), 2);
220 } 220 }
221 221
222 TEST_F(PermissionBubbleManagerTest, SequentialRequests) { 222 TEST_F(PermissionRequestManagerTest, SequentialRequests) {
223 manager_->DisplayPendingRequests(); 223 manager_->DisplayPendingRequests();
224 manager_->AddRequest(&request1_); 224 manager_->AddRequest(&request1_);
225 WaitForCoalescing(); 225 WaitForCoalescing();
226 EXPECT_TRUE(view_factory_->is_visible()); 226 EXPECT_TRUE(view_factory_->is_visible());
227 227
228 Accept(); 228 Accept();
229 EXPECT_TRUE(request1_.granted()); 229 EXPECT_TRUE(request1_.granted());
230 230
231 EXPECT_FALSE(view_factory_->is_visible()); 231 EXPECT_FALSE(view_factory_->is_visible());
232 232
233 manager_->AddRequest(&request2_); 233 manager_->AddRequest(&request2_);
234 WaitForCoalescing(); 234 WaitForCoalescing();
235 EXPECT_TRUE(view_factory_->is_visible()); 235 EXPECT_TRUE(view_factory_->is_visible());
236 Accept(); 236 Accept();
237 EXPECT_FALSE(view_factory_->is_visible()); 237 EXPECT_FALSE(view_factory_->is_visible());
238 EXPECT_TRUE(request2_.granted()); 238 EXPECT_TRUE(request2_.granted());
239 } 239 }
240 240
241 TEST_F(PermissionBubbleManagerTest, SameRequestRejected) { 241 TEST_F(PermissionRequestManagerTest, SameRequestRejected) {
242 manager_->DisplayPendingRequests(); 242 manager_->DisplayPendingRequests();
243 manager_->AddRequest(&request1_); 243 manager_->AddRequest(&request1_);
244 manager_->AddRequest(&request1_); 244 manager_->AddRequest(&request1_);
245 EXPECT_FALSE(request1_.finished()); 245 EXPECT_FALSE(request1_.finished());
246 246
247 WaitForCoalescing(); 247 WaitForCoalescing();
248 EXPECT_TRUE(view_factory_->is_visible()); 248 EXPECT_TRUE(view_factory_->is_visible());
249 ASSERT_EQ(view_factory_->request_count(), 1); 249 ASSERT_EQ(view_factory_->request_count(), 1);
250 } 250 }
251 251
252 TEST_F(PermissionBubbleManagerTest, DuplicateRequestCancelled) { 252 TEST_F(PermissionRequestManagerTest, DuplicateRequestCancelled) {
253 manager_->DisplayPendingRequests(); 253 manager_->DisplayPendingRequests();
254 manager_->AddRequest(&request1_); 254 manager_->AddRequest(&request1_);
255 MockPermissionBubbleRequest dupe_request("test1"); 255 MockPermissionBubbleRequest dupe_request("test1");
256 manager_->AddRequest(&dupe_request); 256 manager_->AddRequest(&dupe_request);
257 EXPECT_FALSE(dupe_request.finished()); 257 EXPECT_FALSE(dupe_request.finished());
258 EXPECT_FALSE(request1_.finished()); 258 EXPECT_FALSE(request1_.finished());
259 manager_->CancelRequest(&request1_); 259 manager_->CancelRequest(&request1_);
260 EXPECT_TRUE(dupe_request.finished()); 260 EXPECT_TRUE(dupe_request.finished());
261 EXPECT_TRUE(request1_.finished()); 261 EXPECT_TRUE(request1_.finished());
262 } 262 }
263 263
264 TEST_F(PermissionBubbleManagerTest, DuplicateQueuedRequest) { 264 TEST_F(PermissionRequestManagerTest, DuplicateQueuedRequest) {
265 manager_->DisplayPendingRequests(); 265 manager_->DisplayPendingRequests();
266 manager_->AddRequest(&request1_); 266 manager_->AddRequest(&request1_);
267 WaitForCoalescing(); 267 WaitForCoalescing();
268 manager_->AddRequest(&request2_); 268 manager_->AddRequest(&request2_);
269 269
270 MockPermissionBubbleRequest dupe_request("test1"); 270 MockPermissionBubbleRequest dupe_request("test1");
271 manager_->AddRequest(&dupe_request); 271 manager_->AddRequest(&dupe_request);
272 EXPECT_FALSE(dupe_request.finished()); 272 EXPECT_FALSE(dupe_request.finished());
273 EXPECT_FALSE(request1_.finished()); 273 EXPECT_FALSE(request1_.finished());
274 274
275 MockPermissionBubbleRequest dupe_request2("test2"); 275 MockPermissionBubbleRequest dupe_request2("test2");
276 manager_->AddRequest(&dupe_request2); 276 manager_->AddRequest(&dupe_request2);
277 EXPECT_FALSE(dupe_request2.finished()); 277 EXPECT_FALSE(dupe_request2.finished());
278 EXPECT_FALSE(request2_.finished()); 278 EXPECT_FALSE(request2_.finished());
279 279
280 manager_->CancelRequest(&request1_); 280 manager_->CancelRequest(&request1_);
281 EXPECT_TRUE(dupe_request.finished()); 281 EXPECT_TRUE(dupe_request.finished());
282 EXPECT_TRUE(request1_.finished()); 282 EXPECT_TRUE(request1_.finished());
283 283
284 manager_->CancelRequest(&request2_); 284 manager_->CancelRequest(&request2_);
285 EXPECT_TRUE(dupe_request2.finished()); 285 EXPECT_TRUE(dupe_request2.finished());
286 EXPECT_TRUE(request2_.finished()); 286 EXPECT_TRUE(request2_.finished());
287 } 287 }
288 288
289 TEST_F(PermissionBubbleManagerTest, ForgetRequestsOnPageNavigation) { 289 TEST_F(PermissionRequestManagerTest, ForgetRequestsOnPageNavigation) {
290 manager_->DisplayPendingRequests(); 290 manager_->DisplayPendingRequests();
291 manager_->AddRequest(&request1_); 291 manager_->AddRequest(&request1_);
292 WaitForCoalescing(); 292 WaitForCoalescing();
293 manager_->AddRequest(&request2_); 293 manager_->AddRequest(&request2_);
294 manager_->AddRequest(&iframe_request_other_domain_); 294 manager_->AddRequest(&iframe_request_other_domain_);
295 295
296 EXPECT_TRUE(view_factory_->is_visible()); 296 EXPECT_TRUE(view_factory_->is_visible());
297 ASSERT_EQ(view_factory_->request_count(), 1); 297 ASSERT_EQ(view_factory_->request_count(), 1);
298 298
299 NavigateAndCommit(GURL("http://www2.google.com/")); 299 NavigateAndCommit(GURL("http://www2.google.com/"));
300 WaitForCoalescing(); 300 WaitForCoalescing();
301 301
302 EXPECT_FALSE(view_factory_->is_visible()); 302 EXPECT_FALSE(view_factory_->is_visible());
303 EXPECT_TRUE(request1_.finished()); 303 EXPECT_TRUE(request1_.finished());
304 EXPECT_TRUE(request2_.finished()); 304 EXPECT_TRUE(request2_.finished());
305 EXPECT_TRUE(iframe_request_other_domain_.finished()); 305 EXPECT_TRUE(iframe_request_other_domain_.finished());
306 } 306 }
307 307
308 TEST_F(PermissionBubbleManagerTest, TestCancelQueued) { 308 TEST_F(PermissionRequestManagerTest, TestCancelQueued) {
309 manager_->AddRequest(&request1_); 309 manager_->AddRequest(&request1_);
310 EXPECT_FALSE(view_factory_->is_visible()); 310 EXPECT_FALSE(view_factory_->is_visible());
311 311
312 manager_->CancelRequest(&request1_); 312 manager_->CancelRequest(&request1_);
313 EXPECT_TRUE(request1_.finished()); 313 EXPECT_TRUE(request1_.finished());
314 EXPECT_FALSE(view_factory_->is_visible()); 314 EXPECT_FALSE(view_factory_->is_visible());
315 manager_->DisplayPendingRequests(); 315 manager_->DisplayPendingRequests();
316 EXPECT_FALSE(view_factory_->is_visible()); 316 EXPECT_FALSE(view_factory_->is_visible());
317 317
318 manager_->AddRequest(&request2_); 318 manager_->AddRequest(&request2_);
319 WaitForCoalescing(); 319 WaitForCoalescing();
320 EXPECT_TRUE(view_factory_->is_visible()); 320 EXPECT_TRUE(view_factory_->is_visible());
321 ASSERT_EQ(view_factory_->request_count(), 1); 321 ASSERT_EQ(view_factory_->request_count(), 1);
322 } 322 }
323 323
324 TEST_F(PermissionBubbleManagerTest, TestCancelWhileDialogShown) { 324 TEST_F(PermissionRequestManagerTest, TestCancelWhileDialogShown) {
325 manager_->DisplayPendingRequests(); 325 manager_->DisplayPendingRequests();
326 manager_->AddRequest(&request1_); 326 manager_->AddRequest(&request1_);
327 WaitForCoalescing(); 327 WaitForCoalescing();
328 328
329 view_factory_->SetCanUpdateUi(true); 329 view_factory_->SetCanUpdateUi(true);
330 EXPECT_TRUE(view_factory_->is_visible()); 330 EXPECT_TRUE(view_factory_->is_visible());
331 EXPECT_FALSE(request1_.finished()); 331 EXPECT_FALSE(request1_.finished());
332 manager_->CancelRequest(&request1_); 332 manager_->CancelRequest(&request1_);
333 WaitForCoalescing(); 333 WaitForCoalescing();
334 EXPECT_TRUE(request1_.finished()); 334 EXPECT_TRUE(request1_.finished());
335 EXPECT_FALSE(view_factory_->is_visible()); 335 EXPECT_FALSE(view_factory_->is_visible());
336 } 336 }
337 337
338 TEST_F(PermissionBubbleManagerTest, TestCancelWhileDialogShownNoUpdate) { 338 TEST_F(PermissionRequestManagerTest, TestCancelWhileDialogShownNoUpdate) {
339 manager_->DisplayPendingRequests(); 339 manager_->DisplayPendingRequests();
340 view_factory_->SetCanUpdateUi(false); 340 view_factory_->SetCanUpdateUi(false);
341 manager_->AddRequest(&request1_); 341 manager_->AddRequest(&request1_);
342 WaitForCoalescing(); 342 WaitForCoalescing();
343 view_factory_->SetCanUpdateUi(false); 343 view_factory_->SetCanUpdateUi(false);
344 344
345 EXPECT_TRUE(view_factory_->is_visible()); 345 EXPECT_TRUE(view_factory_->is_visible());
346 EXPECT_FALSE(request1_.finished()); 346 EXPECT_FALSE(request1_.finished());
347 manager_->CancelRequest(&request1_); 347 manager_->CancelRequest(&request1_);
348 EXPECT_TRUE(request1_.finished()); 348 EXPECT_TRUE(request1_.finished());
349 EXPECT_TRUE(view_factory_->is_visible()); 349 EXPECT_TRUE(view_factory_->is_visible());
350 Closing(); 350 Closing();
351 } 351 }
352 352
353 TEST_F(PermissionBubbleManagerTest, TestCancelPendingRequest) { 353 TEST_F(PermissionRequestManagerTest, TestCancelPendingRequest) {
354 manager_->DisplayPendingRequests(); 354 manager_->DisplayPendingRequests();
355 manager_->AddRequest(&request1_); 355 manager_->AddRequest(&request1_);
356 WaitForCoalescing(); 356 WaitForCoalescing();
357 manager_->AddRequest(&request2_); 357 manager_->AddRequest(&request2_);
358 358
359 EXPECT_TRUE(view_factory_->is_visible()); 359 EXPECT_TRUE(view_factory_->is_visible());
360 ASSERT_EQ(view_factory_->request_count(), 1); 360 ASSERT_EQ(view_factory_->request_count(), 1);
361 manager_->CancelRequest(&request2_); 361 manager_->CancelRequest(&request2_);
362 362
363 EXPECT_TRUE(view_factory_->is_visible()); 363 EXPECT_TRUE(view_factory_->is_visible());
364 EXPECT_FALSE(request1_.finished()); 364 EXPECT_FALSE(request1_.finished());
365 EXPECT_TRUE(request2_.finished()); 365 EXPECT_TRUE(request2_.finished());
366 } 366 }
367 367
368 TEST_F(PermissionBubbleManagerTest, MainFrameNoRequestIFrameRequest) { 368 TEST_F(PermissionRequestManagerTest, MainFrameNoRequestIFrameRequest) {
369 manager_->DisplayPendingRequests(); 369 manager_->DisplayPendingRequests();
370 manager_->AddRequest(&iframe_request_same_domain_); 370 manager_->AddRequest(&iframe_request_same_domain_);
371 WaitForCoalescing(); 371 WaitForCoalescing();
372 WaitForFrameLoad(); 372 WaitForFrameLoad();
373 373
374 EXPECT_TRUE(view_factory_->is_visible()); 374 EXPECT_TRUE(view_factory_->is_visible());
375 Closing(); 375 Closing();
376 EXPECT_TRUE(iframe_request_same_domain_.finished()); 376 EXPECT_TRUE(iframe_request_same_domain_.finished());
377 } 377 }
378 378
379 TEST_F(PermissionBubbleManagerTest, MainFrameAndIFrameRequestSameDomain) { 379 TEST_F(PermissionRequestManagerTest, MainFrameAndIFrameRequestSameDomain) {
380 manager_->DisplayPendingRequests(); 380 manager_->DisplayPendingRequests();
381 manager_->AddRequest(&request1_); 381 manager_->AddRequest(&request1_);
382 manager_->AddRequest(&iframe_request_same_domain_); 382 manager_->AddRequest(&iframe_request_same_domain_);
383 WaitForFrameLoad(); 383 WaitForFrameLoad();
384 WaitForCoalescing(); 384 WaitForCoalescing();
385 385
386 EXPECT_TRUE(view_factory_->is_visible()); 386 EXPECT_TRUE(view_factory_->is_visible());
387 ASSERT_EQ(view_factory_->request_count(), 2); 387 ASSERT_EQ(view_factory_->request_count(), 2);
388 Closing(); 388 Closing();
389 EXPECT_TRUE(request1_.finished()); 389 EXPECT_TRUE(request1_.finished());
390 EXPECT_TRUE(iframe_request_same_domain_.finished()); 390 EXPECT_TRUE(iframe_request_same_domain_.finished());
391 EXPECT_FALSE(view_factory_->is_visible()); 391 EXPECT_FALSE(view_factory_->is_visible());
392 } 392 }
393 393
394 TEST_F(PermissionBubbleManagerTest, MainFrameAndIFrameRequestOtherDomain) { 394 TEST_F(PermissionRequestManagerTest, MainFrameAndIFrameRequestOtherDomain) {
395 manager_->DisplayPendingRequests(); 395 manager_->DisplayPendingRequests();
396 manager_->AddRequest(&request1_); 396 manager_->AddRequest(&request1_);
397 manager_->AddRequest(&iframe_request_other_domain_); 397 manager_->AddRequest(&iframe_request_other_domain_);
398 WaitForFrameLoad(); 398 WaitForFrameLoad();
399 WaitForCoalescing(); 399 WaitForCoalescing();
400 400
401 EXPECT_TRUE(view_factory_->is_visible()); 401 EXPECT_TRUE(view_factory_->is_visible());
402 Closing(); 402 Closing();
403 EXPECT_TRUE(request1_.finished()); 403 EXPECT_TRUE(request1_.finished());
404 EXPECT_FALSE(iframe_request_other_domain_.finished()); 404 EXPECT_FALSE(iframe_request_other_domain_.finished());
405 EXPECT_TRUE(view_factory_->is_visible()); 405 EXPECT_TRUE(view_factory_->is_visible());
406 Closing(); 406 Closing();
407 EXPECT_TRUE(iframe_request_other_domain_.finished()); 407 EXPECT_TRUE(iframe_request_other_domain_.finished());
408 } 408 }
409 409
410 TEST_F(PermissionBubbleManagerTest, IFrameRequestWhenMainRequestVisible) { 410 TEST_F(PermissionRequestManagerTest, IFrameRequestWhenMainRequestVisible) {
411 manager_->DisplayPendingRequests(); 411 manager_->DisplayPendingRequests();
412 manager_->AddRequest(&request1_); 412 manager_->AddRequest(&request1_);
413 WaitForCoalescing(); 413 WaitForCoalescing();
414 EXPECT_TRUE(view_factory_->is_visible()); 414 EXPECT_TRUE(view_factory_->is_visible());
415 415
416 manager_->AddRequest(&iframe_request_same_domain_); 416 manager_->AddRequest(&iframe_request_same_domain_);
417 WaitForFrameLoad(); 417 WaitForFrameLoad();
418 ASSERT_EQ(view_factory_->request_count(), 1); 418 ASSERT_EQ(view_factory_->request_count(), 1);
419 Closing(); 419 Closing();
420 EXPECT_TRUE(request1_.finished()); 420 EXPECT_TRUE(request1_.finished());
421 EXPECT_FALSE(iframe_request_same_domain_.finished()); 421 EXPECT_FALSE(iframe_request_same_domain_.finished());
422 EXPECT_TRUE(view_factory_->is_visible()); 422 EXPECT_TRUE(view_factory_->is_visible());
423 ASSERT_EQ(view_factory_->request_count(), 1); 423 ASSERT_EQ(view_factory_->request_count(), 1);
424 Closing(); 424 Closing();
425 EXPECT_TRUE(iframe_request_same_domain_.finished()); 425 EXPECT_TRUE(iframe_request_same_domain_.finished());
426 } 426 }
427 427
428 TEST_F(PermissionBubbleManagerTest, 428 TEST_F(PermissionRequestManagerTest,
429 IFrameRequestOtherDomainWhenMainRequestVisible) { 429 IFrameRequestOtherDomainWhenMainRequestVisible) {
430 manager_->DisplayPendingRequests(); 430 manager_->DisplayPendingRequests();
431 manager_->AddRequest(&request1_); 431 manager_->AddRequest(&request1_);
432 WaitForCoalescing(); 432 WaitForCoalescing();
433 EXPECT_TRUE(view_factory_->is_visible()); 433 EXPECT_TRUE(view_factory_->is_visible());
434 434
435 manager_->AddRequest(&iframe_request_other_domain_); 435 manager_->AddRequest(&iframe_request_other_domain_);
436 WaitForFrameLoad(); 436 WaitForFrameLoad();
437 Closing(); 437 Closing();
438 EXPECT_TRUE(request1_.finished()); 438 EXPECT_TRUE(request1_.finished());
439 EXPECT_FALSE(iframe_request_other_domain_.finished()); 439 EXPECT_FALSE(iframe_request_other_domain_.finished());
440 EXPECT_TRUE(view_factory_->is_visible()); 440 EXPECT_TRUE(view_factory_->is_visible());
441 Closing(); 441 Closing();
442 EXPECT_TRUE(iframe_request_other_domain_.finished()); 442 EXPECT_TRUE(iframe_request_other_domain_.finished());
443 } 443 }
444 444
445 TEST_F(PermissionBubbleManagerTest, RequestsDontNeedUserGesture) { 445 TEST_F(PermissionRequestManagerTest, RequestsDontNeedUserGesture) {
446 manager_->DisplayPendingRequests(); 446 manager_->DisplayPendingRequests();
447 WaitForFrameLoad(); 447 WaitForFrameLoad();
448 WaitForCoalescing(); 448 WaitForCoalescing();
449 manager_->AddRequest(&request1_); 449 manager_->AddRequest(&request1_);
450 manager_->AddRequest(&iframe_request_other_domain_); 450 manager_->AddRequest(&iframe_request_other_domain_);
451 manager_->AddRequest(&request2_); 451 manager_->AddRequest(&request2_);
452 base::RunLoop().RunUntilIdle(); 452 base::RunLoop().RunUntilIdle();
453 453
454 EXPECT_TRUE(view_factory_->is_visible()); 454 EXPECT_TRUE(view_factory_->is_visible());
455 } 455 }
456 456
457 TEST_F(PermissionBubbleManagerTest, UMAForSimpleAcceptedBubble) { 457 TEST_F(PermissionRequestManagerTest, UMAForSimpleAcceptedBubble) {
458 base::HistogramTester histograms; 458 base::HistogramTester histograms;
459 459
460 manager_->AddRequest(&request1_); 460 manager_->AddRequest(&request1_);
461 manager_->DisplayPendingRequests(); 461 manager_->DisplayPendingRequests();
462 WaitForCoalescing(); 462 WaitForCoalescing();
463 histograms.ExpectUniqueSample( 463 histograms.ExpectUniqueSample(
464 PermissionUmaUtil::kPermissionsPromptShown, 464 PermissionUmaUtil::kPermissionsPromptShown,
465 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 465 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA),
466 1); 466 1);
467 histograms.ExpectUniqueSample( 467 histograms.ExpectUniqueSample(
468 PermissionUmaUtil::kPermissionsPromptRequestsPerPrompt, 1, 1); 468 PermissionUmaUtil::kPermissionsPromptRequestsPerPrompt, 1, 1);
469 469
470 ToggleAccept(0, true); 470 ToggleAccept(0, true);
471 Accept(); 471 Accept();
472 histograms.ExpectUniqueSample( 472 histograms.ExpectUniqueSample(
473 PermissionUmaUtil::kPermissionsPromptAccepted, 473 PermissionUmaUtil::kPermissionsPromptAccepted,
474 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 1); 474 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 1);
475 } 475 }
476 476
477 TEST_F(PermissionBubbleManagerTest, UMAForSimpleDeniedBubble) { 477 TEST_F(PermissionRequestManagerTest, UMAForSimpleDeniedBubble) {
478 base::HistogramTester histograms; 478 base::HistogramTester histograms;
479 479
480 manager_->AddRequest(&request1_); 480 manager_->AddRequest(&request1_);
481 manager_->DisplayPendingRequests(); 481 manager_->DisplayPendingRequests();
482 WaitForCoalescing(); 482 WaitForCoalescing();
483 // No need to test UMA for showing prompts again, they were tested in 483 // No need to test UMA for showing prompts again, they were tested in
484 // UMAForSimpleAcceptedBubble. 484 // UMAForSimpleAcceptedBubble.
485 485
486 Deny(); 486 Deny();
487 histograms.ExpectUniqueSample( 487 histograms.ExpectUniqueSample(
488 PermissionUmaUtil::kPermissionsPromptDenied, 488 PermissionUmaUtil::kPermissionsPromptDenied,
489 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 1); 489 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 1);
490 } 490 }
491 491
492 // This code path (calling Accept on a non-merged bubble, with no accepted 492 // This code path (calling Accept on a non-merged bubble, with no accepted
493 // permission) would never be used in actual Chrome, but its still tested for 493 // permission) would never be used in actual Chrome, but its still tested for
494 // completeness. 494 // completeness.
495 TEST_F(PermissionBubbleManagerTest, UMAForSimpleDeniedBubbleAlternatePath) { 495 TEST_F(PermissionRequestManagerTest, UMAForSimpleDeniedBubbleAlternatePath) {
496 base::HistogramTester histograms; 496 base::HistogramTester histograms;
497 497
498 manager_->AddRequest(&request1_); 498 manager_->AddRequest(&request1_);
499 manager_->DisplayPendingRequests(); 499 manager_->DisplayPendingRequests();
500 WaitForCoalescing(); 500 WaitForCoalescing();
501 // No need to test UMA for showing prompts again, they were tested in 501 // No need to test UMA for showing prompts again, they were tested in
502 // UMAForSimpleAcceptedBubble. 502 // UMAForSimpleAcceptedBubble.
503 503
504 ToggleAccept(0, false); 504 ToggleAccept(0, false);
505 Accept(); 505 Accept();
506 histograms.ExpectUniqueSample( 506 histograms.ExpectUniqueSample(
507 PermissionUmaUtil::kPermissionsPromptDenied, 507 PermissionUmaUtil::kPermissionsPromptDenied,
508 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 1); 508 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 1);
509 } 509 }
510 510
511 TEST_F(PermissionBubbleManagerTest, UMAForMergedAcceptedBubble) { 511 TEST_F(PermissionRequestManagerTest, UMAForMergedAcceptedBubble) {
512 base::HistogramTester histograms; 512 base::HistogramTester histograms;
513 513
514 manager_->AddRequest(&request1_); 514 manager_->AddRequest(&request1_);
515 manager_->AddRequest(&request2_); 515 manager_->AddRequest(&request2_);
516 manager_->DisplayPendingRequests(); 516 manager_->DisplayPendingRequests();
517 WaitForCoalescing(); 517 WaitForCoalescing();
518 518
519 histograms.ExpectUniqueSample( 519 histograms.ExpectUniqueSample(
520 PermissionUmaUtil::kPermissionsPromptShown, 520 PermissionUmaUtil::kPermissionsPromptShown,
521 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::MULTIPLE), 521 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::MULTIPLE),
(...skipping 20 matching lines...) Expand all
542 histograms.ExpectBucketCount( 542 histograms.ExpectBucketCount(
543 PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted, 543 PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted,
544 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 544 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA),
545 1); 545 1);
546 histograms.ExpectBucketCount( 546 histograms.ExpectBucketCount(
547 PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted, 547 PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted,
548 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::DOWNLOAD), 548 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::DOWNLOAD),
549 1); 549 1);
550 } 550 }
551 551
552 TEST_F(PermissionBubbleManagerTest, UMAForMergedMixedBubble) { 552 TEST_F(PermissionRequestManagerTest, UMAForMergedMixedBubble) {
553 base::HistogramTester histograms; 553 base::HistogramTester histograms;
554 554
555 manager_->AddRequest(&request1_); 555 manager_->AddRequest(&request1_);
556 manager_->AddRequest(&request2_); 556 manager_->AddRequest(&request2_);
557 manager_->DisplayPendingRequests(); 557 manager_->DisplayPendingRequests();
558 WaitForCoalescing(); 558 WaitForCoalescing();
559 // No need to test UMA for showing prompts again, they were tested in 559 // No need to test UMA for showing prompts again, they were tested in
560 // UMAForMergedAcceptedBubble. 560 // UMAForMergedAcceptedBubble.
561 561
562 ToggleAccept(0, true); 562 ToggleAccept(0, true);
563 ToggleAccept(1, false); 563 ToggleAccept(1, false);
564 Accept(); 564 Accept();
565 565
566 histograms.ExpectUniqueSample( 566 histograms.ExpectUniqueSample(
567 PermissionUmaUtil::kPermissionsPromptDenied, 567 PermissionUmaUtil::kPermissionsPromptDenied,
568 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::MULTIPLE), 568 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::MULTIPLE),
569 1); 569 1);
570 histograms.ExpectBucketCount( 570 histograms.ExpectBucketCount(
571 PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted, 571 PermissionUmaUtil::kPermissionsPromptMergedBubbleAccepted,
572 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 572 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA),
573 1); 573 1);
574 histograms.ExpectBucketCount( 574 histograms.ExpectBucketCount(
575 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied, 575 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied,
576 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::DOWNLOAD), 576 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::DOWNLOAD),
577 1); 577 1);
578 } 578 }
579 579
580 TEST_F(PermissionBubbleManagerTest, UMAForMergedDeniedBubble) { 580 TEST_F(PermissionRequestManagerTest, UMAForMergedDeniedBubble) {
581 base::HistogramTester histograms; 581 base::HistogramTester histograms;
582 582
583 manager_->AddRequest(&request1_); 583 manager_->AddRequest(&request1_);
584 manager_->AddRequest(&request2_); 584 manager_->AddRequest(&request2_);
585 manager_->DisplayPendingRequests(); 585 manager_->DisplayPendingRequests();
586 WaitForCoalescing(); 586 WaitForCoalescing();
587 // No need to test UMA for showing prompts again, they were tested in 587 // No need to test UMA for showing prompts again, they were tested in
588 // UMAForMergedAcceptedBubble. 588 // UMAForMergedAcceptedBubble.
589 589
590 ToggleAccept(0, false); 590 ToggleAccept(0, false);
591 ToggleAccept(1, false); 591 ToggleAccept(1, false);
592 Accept(); 592 Accept();
593 593
594 histograms.ExpectUniqueSample( 594 histograms.ExpectUniqueSample(
595 PermissionUmaUtil::kPermissionsPromptDenied, 595 PermissionUmaUtil::kPermissionsPromptDenied,
596 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::MULTIPLE), 596 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::MULTIPLE),
597 1); 597 1);
598 histograms.ExpectBucketCount( 598 histograms.ExpectBucketCount(
599 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied, 599 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied,
600 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA), 600 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::QUOTA),
601 1); 601 1);
602 histograms.ExpectBucketCount( 602 histograms.ExpectBucketCount(
603 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied, 603 PermissionUmaUtil::kPermissionsPromptMergedBubbleDenied,
604 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::DOWNLOAD), 604 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::DOWNLOAD),
605 1); 605 1);
606 } 606 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698