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

Side by Side Diff: chrome/browser/ui/cocoa/website_settings/permission_bubble_controller_unittest.mm

Issue 1292353006: Mac Changes for BubbleManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mcdb-mac-3.gitbr
Patch Set: Created 5 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 #import "chrome/browser/ui/cocoa/website_settings/permission_bubble_controller.h " 5 #import "chrome/browser/ui/cocoa/website_settings/permission_bubble_controller.h "
6 6
7 #include <Carbon/Carbon.h> 7 #include <Carbon/Carbon.h>
8 8
9 #include "base/mac/foundation_util.h" 9 #include "base/mac/foundation_util.h"
10 #include "base/mac/sdk_forward_declarations.h" 10 #include "base/mac/sdk_forward_declarations.h"
11 #include "base/stl_util.h" 11 #include "base/stl_util.h"
12 #include "base/strings/sys_string_conversions.h" 12 #include "base/strings/sys_string_conversions.h"
13 #include "base/strings/utf_string_conversions.h" 13 #include "base/strings/utf_string_conversions.h"
14 #import "chrome/browser/ui/cocoa/cocoa_profile_test.h" 14 #import "chrome/browser/ui/cocoa/cocoa_profile_test.h"
15 #include "chrome/browser/ui/cocoa/run_loop_testing.h" 15 #include "chrome/browser/ui/cocoa/run_loop_testing.h"
16 #import "chrome/browser/ui/cocoa/website_settings/permission_bubble_cocoa.h" 16 #import "chrome/browser/ui/cocoa/website_settings/permission_bubble_cocoa.h"
17 #import "chrome/browser/ui/cocoa/website_settings/split_block_button.h" 17 #import "chrome/browser/ui/cocoa/website_settings/split_block_button.h"
18 #include "chrome/browser/ui/website_settings/mock_permission_bubble_request.h" 18 #include "chrome/browser/ui/website_settings/mock_permission_bubble_request.h"
19 #include "chrome/grit/generated_resources.h" 19 #include "chrome/grit/generated_resources.h"
20 #include "testing/gmock/include/gmock/gmock.h" 20 #include "testing/gmock/include/gmock/gmock.h"
21 #include "ui/base/l10n/l10n_util.h" 21 #include "ui/base/l10n/l10n_util.h"
22 #include "ui/base/l10n/l10n_util_mac.h" 22 #include "ui/base/l10n/l10n_util_mac.h"
23 #import "ui/events/test/cocoa_test_event_utils.h" 23 #import "ui/events/test/cocoa_test_event_utils.h"
24 24
25 // TODO(hcarmona): compile this
26
25 @class ConstrainedWindowButton; 27 @class ConstrainedWindowButton;
26 28
27 @interface PermissionBubbleController (ExposedForTesting) 29 @interface PermissionBubbleController (ExposedForTesting)
28 - (void)ok:(id)sender; 30 - (void)ok:(id)sender;
29 - (void)onAllow:(id)sender; 31 - (void)onAllow:(id)sender;
30 - (void)onBlock:(id)sender; 32 - (void)onBlock:(id)sender;
31 - (void)onCustomize:(id)sender; 33 - (void)onCustomize:(id)sender;
32 - (void)onCheckboxChanged:(id)sender; 34 - (void)onCheckboxChanged:(id)sender;
33 @end 35 @end
34 36
(...skipping 15 matching lines...) Expand all
50 MOCK_METHOD0(SetCustomizationMode, void()); 52 MOCK_METHOD0(SetCustomizationMode, void());
51 MOCK_METHOD0(Accept, void()); 53 MOCK_METHOD0(Accept, void());
52 MOCK_METHOD0(Deny, void()); 54 MOCK_METHOD0(Deny, void());
53 MOCK_METHOD0(Closing, void()); 55 MOCK_METHOD0(Closing, void());
54 MOCK_METHOD1(SetView, void(PermissionBubbleView*)); 56 MOCK_METHOD1(SetView, void(PermissionBubbleView*));
55 57
56 void SetUp() override { 58 void SetUp() override {
57 CocoaProfileTest::SetUp(); 59 CocoaProfileTest::SetUp();
58 bridge_.reset(new PermissionBubbleCocoa(browser())); 60 bridge_.reset(new PermissionBubbleCocoa(browser()));
59 AddRequest(kPermissionA); 61 AddRequest(kPermissionA);
60 controller_ = [[PermissionBubbleController alloc] 62 controller_ =
61 initWithParentWindow:test_window() 63 [[PermissionBubbleController alloc] initWithBrowser:browser()
62 bridge:bridge_.get()]; 64 bridge:bridge_.get()];
63 } 65 }
64 66
65 void TearDown() override { 67 void TearDown() override {
66 [controller_ close]; 68 [controller_ close];
67 chrome::testing::NSRunLoopRunAllPending(); 69 chrome::testing::NSRunLoopRunAllPending();
68 STLDeleteElements(&requests_); 70 STLDeleteElements(&requests_);
69 CocoaProfileTest::TearDown(); 71 CocoaProfileTest::TearDown();
70 } 72 }
71 73
72 void AddRequest(const std::string& title) { 74 void AddRequest(const std::string& title) {
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 std::vector<bool> accept_states_; 141 std::vector<bool> accept_states_;
140 }; 142 };
141 143
142 TEST_F(PermissionBubbleControllerTest, ShowAndClose) { 144 TEST_F(PermissionBubbleControllerTest, ShowAndClose) {
143 EXPECT_FALSE([[controller_ window] isVisible]); 145 EXPECT_FALSE([[controller_ window] isVisible]);
144 [controller_ showWindow:nil]; 146 [controller_ showWindow:nil];
145 EXPECT_TRUE([[controller_ window] isVisible]); 147 EXPECT_TRUE([[controller_ window] isVisible]);
146 } 148 }
147 149
148 TEST_F(PermissionBubbleControllerTest, ShowSinglePermission) { 150 TEST_F(PermissionBubbleControllerTest, ShowSinglePermission) {
149 [controller_ showAtAnchor:NSZeroPoint 151 [controller_ showWithDelegate:this
150 withDelegate:this 152 forRequests:requests_
151 forRequests:requests_ 153 acceptStates:accept_states_];
152 acceptStates:accept_states_];
153 154
154 EXPECT_TRUE(FindTextFieldWithString(kPermissionA)); 155 EXPECT_TRUE(FindTextFieldWithString(kPermissionA));
155 EXPECT_TRUE(FindButtonWithTitle(IDS_PERMISSION_ALLOW)); 156 EXPECT_TRUE(FindButtonWithTitle(IDS_PERMISSION_ALLOW));
156 EXPECT_TRUE(FindButtonWithTitle(IDS_PERMISSION_DENY)); 157 EXPECT_TRUE(FindButtonWithTitle(IDS_PERMISSION_DENY));
157 EXPECT_FALSE(FindButtonWithTitle(IDS_OK)); 158 EXPECT_FALSE(FindButtonWithTitle(IDS_OK));
158 } 159 }
159 160
160 TEST_F(PermissionBubbleControllerTest, ShowMultiplePermissions) { 161 TEST_F(PermissionBubbleControllerTest, ShowMultiplePermissions) {
161 AddRequest(kPermissionB); 162 AddRequest(kPermissionB);
162 AddRequest(kPermissionC); 163 AddRequest(kPermissionC);
163 164
164 accept_states_.push_back(true); // A 165 accept_states_.push_back(true); // A
165 accept_states_.push_back(true); // B 166 accept_states_.push_back(true); // B
166 accept_states_.push_back(true); // C 167 accept_states_.push_back(true); // C
167 168
168 [controller_ showAtAnchor:NSZeroPoint 169 [controller_ showWithDelegate:this
169 withDelegate:this 170 forRequests:requests_
170 forRequests:requests_ 171 acceptStates:accept_states_];
171 acceptStates:accept_states_];
172 172
173 EXPECT_TRUE(FindTextFieldWithString(kPermissionA)); 173 EXPECT_TRUE(FindTextFieldWithString(kPermissionA));
174 EXPECT_TRUE(FindTextFieldWithString(kPermissionB)); 174 EXPECT_TRUE(FindTextFieldWithString(kPermissionB));
175 EXPECT_TRUE(FindTextFieldWithString(kPermissionC)); 175 EXPECT_TRUE(FindTextFieldWithString(kPermissionC));
176 176
177 EXPECT_FALSE(FindButtonWithTitle(IDS_PERMISSION_ALLOW)); 177 EXPECT_FALSE(FindButtonWithTitle(IDS_PERMISSION_ALLOW));
178 EXPECT_FALSE(FindButtonWithTitle(IDS_PERMISSION_DENY)); 178 EXPECT_FALSE(FindButtonWithTitle(IDS_PERMISSION_DENY));
179 EXPECT_TRUE(FindButtonWithTitle(IDS_OK)); 179 EXPECT_TRUE(FindButtonWithTitle(IDS_OK));
180 } 180 }
181 181
182 TEST_F(PermissionBubbleControllerTest, ShowMultiplePermissionsAllow) { 182 TEST_F(PermissionBubbleControllerTest, ShowMultiplePermissionsAllow) {
183 AddRequest(kPermissionB); 183 AddRequest(kPermissionB);
184 184
185 accept_states_.push_back(true); // A 185 accept_states_.push_back(true); // A
186 accept_states_.push_back(true); // B 186 accept_states_.push_back(true); // B
187 187
188 [controller_ showAtAnchor:NSZeroPoint 188 [controller_ showWithDelegate:this
189 withDelegate:this 189 forRequests:requests_
190 forRequests:requests_ 190 acceptStates:accept_states_];
191 acceptStates:accept_states_];
192 191
193 // Test that all menus have 'Allow' visible. 192 // Test that all menus have 'Allow' visible.
194 EXPECT_TRUE(FindMenuButtonWithTitle(IDS_PERMISSION_ALLOW)); 193 EXPECT_TRUE(FindMenuButtonWithTitle(IDS_PERMISSION_ALLOW));
195 EXPECT_FALSE(FindMenuButtonWithTitle(IDS_PERMISSION_DENY)); 194 EXPECT_FALSE(FindMenuButtonWithTitle(IDS_PERMISSION_DENY));
196 195
197 EXPECT_TRUE(FindButtonWithTitle(IDS_OK)); 196 EXPECT_TRUE(FindButtonWithTitle(IDS_OK));
198 EXPECT_FALSE(FindButtonWithTitle(IDS_PERMISSION_ALLOW)); 197 EXPECT_FALSE(FindButtonWithTitle(IDS_PERMISSION_ALLOW));
199 EXPECT_FALSE(FindButtonWithTitle(IDS_PERMISSION_DENY)); 198 EXPECT_FALSE(FindButtonWithTitle(IDS_PERMISSION_DENY));
200 } 199 }
201 200
202 TEST_F(PermissionBubbleControllerTest, ShowMultiplePermissionsBlock) { 201 TEST_F(PermissionBubbleControllerTest, ShowMultiplePermissionsBlock) {
203 AddRequest(kPermissionB); 202 AddRequest(kPermissionB);
204 203
205 accept_states_.push_back(false); // A 204 accept_states_.push_back(false); // A
206 accept_states_.push_back(false); // B 205 accept_states_.push_back(false); // B
207 206
208 [controller_ showAtAnchor:NSZeroPoint 207 [controller_ showWithDelegate:this
209 withDelegate:this 208 forRequests:requests_
210 forRequests:requests_ 209 acceptStates:accept_states_];
211 acceptStates:accept_states_];
212 210
213 // Test that all menus have 'Block' visible. 211 // Test that all menus have 'Block' visible.
214 EXPECT_TRUE(FindMenuButtonWithTitle(IDS_PERMISSION_DENY)); 212 EXPECT_TRUE(FindMenuButtonWithTitle(IDS_PERMISSION_DENY));
215 EXPECT_FALSE(FindMenuButtonWithTitle(IDS_PERMISSION_ALLOW)); 213 EXPECT_FALSE(FindMenuButtonWithTitle(IDS_PERMISSION_ALLOW));
216 214
217 EXPECT_TRUE(FindButtonWithTitle(IDS_OK)); 215 EXPECT_TRUE(FindButtonWithTitle(IDS_OK));
218 EXPECT_FALSE(FindButtonWithTitle(IDS_PERMISSION_ALLOW)); 216 EXPECT_FALSE(FindButtonWithTitle(IDS_PERMISSION_ALLOW));
219 EXPECT_FALSE(FindButtonWithTitle(IDS_PERMISSION_DENY)); 217 EXPECT_FALSE(FindButtonWithTitle(IDS_PERMISSION_DENY));
220 } 218 }
221 219
222 TEST_F(PermissionBubbleControllerTest, ShowMultiplePermissionsMixed) { 220 TEST_F(PermissionBubbleControllerTest, ShowMultiplePermissionsMixed) {
223 AddRequest(kPermissionB); 221 AddRequest(kPermissionB);
224 AddRequest(kPermissionC); 222 AddRequest(kPermissionC);
225 223
226 accept_states_.push_back(false); // A 224 accept_states_.push_back(false); // A
227 accept_states_.push_back(false); // B 225 accept_states_.push_back(false); // B
228 accept_states_.push_back(true); // C 226 accept_states_.push_back(true); // C
229 227
230 [controller_ showAtAnchor:NSZeroPoint 228 [controller_ showWithDelegate:this
231 withDelegate:this 229 forRequests:requests_
232 forRequests:requests_ 230 acceptStates:accept_states_];
233 acceptStates:accept_states_];
234 231
235 // Test that both 'allow' and 'deny' are visible. 232 // Test that both 'allow' and 'deny' are visible.
236 EXPECT_TRUE(FindMenuButtonWithTitle(IDS_PERMISSION_DENY)); 233 EXPECT_TRUE(FindMenuButtonWithTitle(IDS_PERMISSION_DENY));
237 EXPECT_TRUE(FindMenuButtonWithTitle(IDS_PERMISSION_ALLOW)); 234 EXPECT_TRUE(FindMenuButtonWithTitle(IDS_PERMISSION_ALLOW));
238 235
239 EXPECT_TRUE(FindButtonWithTitle(IDS_OK)); 236 EXPECT_TRUE(FindButtonWithTitle(IDS_OK));
240 EXPECT_FALSE(FindButtonWithTitle(IDS_PERMISSION_ALLOW)); 237 EXPECT_FALSE(FindButtonWithTitle(IDS_PERMISSION_ALLOW));
241 EXPECT_FALSE(FindButtonWithTitle(IDS_PERMISSION_DENY)); 238 EXPECT_FALSE(FindButtonWithTitle(IDS_PERMISSION_DENY));
242 } 239 }
243 240
244 TEST_F(PermissionBubbleControllerTest, OK) { 241 TEST_F(PermissionBubbleControllerTest, OK) {
245 AddRequest(kPermissionB); 242 AddRequest(kPermissionB);
246 243
247 accept_states_.push_back(true); // A 244 accept_states_.push_back(true); // A
248 accept_states_.push_back(true); // B 245 accept_states_.push_back(true); // B
249 246
250 [controller_ showAtAnchor:NSZeroPoint 247 [controller_ showWithDelegate:this
251 withDelegate:this 248 forRequests:requests_
252 forRequests:requests_ 249 acceptStates:accept_states_];
253 acceptStates:accept_states_];
254 250
255 EXPECT_CALL(*this, Accept()).Times(1); 251 EXPECT_CALL(*this, Accept()).Times(1);
256 [FindButtonWithTitle(IDS_OK) performClick:nil]; 252 [FindButtonWithTitle(IDS_OK) performClick:nil];
257 } 253 }
258 254
259 TEST_F(PermissionBubbleControllerTest, Allow) { 255 TEST_F(PermissionBubbleControllerTest, Allow) {
260 [controller_ showAtAnchor:NSZeroPoint 256 [controller_ showWithDelegate:this
261 withDelegate:this 257 forRequests:requests_
262 forRequests:requests_ 258 acceptStates:accept_states_];
263 acceptStates:accept_states_];
264 259
265 EXPECT_CALL(*this, Accept()).Times(1); 260 EXPECT_CALL(*this, Accept()).Times(1);
266 [FindButtonWithTitle(IDS_PERMISSION_ALLOW) performClick:nil]; 261 [FindButtonWithTitle(IDS_PERMISSION_ALLOW) performClick:nil];
267 } 262 }
268 263
269 TEST_F(PermissionBubbleControllerTest, Deny) { 264 TEST_F(PermissionBubbleControllerTest, Deny) {
270 [controller_ showAtAnchor:NSZeroPoint 265 [controller_ showWithDelegate:this
271 withDelegate:this 266 forRequests:requests_
272 forRequests:requests_ 267 acceptStates:accept_states_];
273 acceptStates:accept_states_];
274 268
275 EXPECT_CALL(*this, Deny()).Times(1); 269 EXPECT_CALL(*this, Deny()).Times(1);
276 [FindButtonWithTitle(IDS_PERMISSION_DENY) performClick:nil]; 270 [FindButtonWithTitle(IDS_PERMISSION_DENY) performClick:nil];
277 } 271 }
278 272
279 TEST_F(PermissionBubbleControllerTest, ChangePermissionSelection) { 273 TEST_F(PermissionBubbleControllerTest, ChangePermissionSelection) {
280 AddRequest(kPermissionB); 274 AddRequest(kPermissionB);
281 275
282 accept_states_.push_back(true); // A 276 accept_states_.push_back(true); // A
283 accept_states_.push_back(false); // B 277 accept_states_.push_back(false); // B
284 278
285 [controller_ showAtAnchor:NSZeroPoint 279 [controller_ showWithDelegate:this
286 withDelegate:this 280 forRequests:requests_
287 forRequests:requests_ 281 acceptStates:accept_states_];
288 acceptStates:accept_states_];
289 282
290 EXPECT_CALL(*this, ToggleAccept(0, false)).Times(1); 283 EXPECT_CALL(*this, ToggleAccept(0, false)).Times(1);
291 EXPECT_CALL(*this, ToggleAccept(1, true)).Times(1); 284 EXPECT_CALL(*this, ToggleAccept(1, true)).Times(1);
292 NSButton* menu_a = FindMenuButtonWithTitle(IDS_PERMISSION_ALLOW); 285 NSButton* menu_a = FindMenuButtonWithTitle(IDS_PERMISSION_ALLOW);
293 NSButton* menu_b = FindMenuButtonWithTitle(IDS_PERMISSION_DENY); 286 NSButton* menu_b = FindMenuButtonWithTitle(IDS_PERMISSION_DENY);
294 ChangePermissionMenuSelection(menu_a, IDS_PERMISSION_DENY); 287 ChangePermissionMenuSelection(menu_a, IDS_PERMISSION_DENY);
295 ChangePermissionMenuSelection(menu_b, IDS_PERMISSION_ALLOW); 288 ChangePermissionMenuSelection(menu_b, IDS_PERMISSION_ALLOW);
296 } 289 }
297 290
298 TEST_F(PermissionBubbleControllerTest, EscapeCloses) { 291 TEST_F(PermissionBubbleControllerTest, EscapeCloses) {
299 [controller_ showAtAnchor:NSZeroPoint 292 [controller_ showWithDelegate:this
300 withDelegate:this 293 forRequests:requests_
301 forRequests:requests_ 294 acceptStates:accept_states_];
302 acceptStates:accept_states_];
303 295
304 EXPECT_TRUE([[controller_ window] isVisible]); 296 EXPECT_TRUE([[controller_ window] isVisible]);
305 [[controller_ window] 297 [[controller_ window]
306 performKeyEquivalent:cocoa_test_event_utils::KeyEventWithKeyCode( 298 performKeyEquivalent:cocoa_test_event_utils::KeyEventWithKeyCode(
307 kVK_Escape, '\e', NSKeyDown, 0)]; 299 kVK_Escape, '\e', NSKeyDown, 0)];
308 EXPECT_FALSE([[controller_ window] isVisible]); 300 EXPECT_FALSE([[controller_ window] isVisible]);
309 } 301 }
310 302
311 TEST_F(PermissionBubbleControllerTest, EnterFullscreen) { 303 TEST_F(PermissionBubbleControllerTest, EnterFullscreen) {
312 [controller_ showAtAnchor:NSZeroPoint 304 [controller_ showWithDelegate:this
313 withDelegate:this 305 forRequests:requests_
314 forRequests:requests_ 306 acceptStates:accept_states_];
315 acceptStates:accept_states_];
316 307
317 EXPECT_TRUE([[controller_ window] isVisible]); 308 EXPECT_TRUE([[controller_ window] isVisible]);
318 309
319 // Post the "enter fullscreen" notification. 310 // Post the "enter fullscreen" notification.
320 NSNotificationCenter* center = [NSNotificationCenter defaultCenter]; 311 NSNotificationCenter* center = [NSNotificationCenter defaultCenter];
321 [center postNotificationName:NSWindowWillEnterFullScreenNotification 312 [center postNotificationName:NSWindowWillEnterFullScreenNotification
322 object:test_window()]; 313 object:test_window()];
323 314
324 EXPECT_TRUE([[controller_ window] isVisible]); 315 EXPECT_TRUE([[controller_ window] isVisible]);
325 } 316 }
326 317
327 TEST_F(PermissionBubbleControllerTest, ExitFullscreen) { 318 TEST_F(PermissionBubbleControllerTest, ExitFullscreen) {
328 [controller_ showAtAnchor:NSZeroPoint 319 [controller_ showWithDelegate:this
329 withDelegate:this 320 forRequests:requests_
330 forRequests:requests_ 321 acceptStates:accept_states_];
331 acceptStates:accept_states_];
332 322
333 EXPECT_TRUE([[controller_ window] isVisible]); 323 EXPECT_TRUE([[controller_ window] isVisible]);
334 324
335 // Post the "enter fullscreen" notification. 325 // Post the "enter fullscreen" notification.
336 NSNotificationCenter* center = [NSNotificationCenter defaultCenter]; 326 NSNotificationCenter* center = [NSNotificationCenter defaultCenter];
337 [center postNotificationName:NSWindowWillExitFullScreenNotification 327 [center postNotificationName:NSWindowWillExitFullScreenNotification
338 object:test_window()]; 328 object:test_window()];
339 329
340 EXPECT_TRUE([[controller_ window] isVisible]); 330 EXPECT_TRUE([[controller_ window] isVisible]);
341 } 331 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698