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

Side by Side Diff: chrome/browser/ui/browser_command_controller_unittest.cc

Issue 2781633003: Allow keyboard shortcuts can be captured by webpage when toolbar is not visible (Closed)
Patch Set: Resolve review comments Created 3 years, 8 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/ui/browser_command_controller.h" 5 #include "chrome/browser/ui/browser_command_controller.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "build/build_config.h" 9 #include "build/build_config.h"
10 #include "chrome/app/chrome_command_ids.h" 10 #include "chrome/app/chrome_command_ids.h"
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 245
246 ////////////////////////////////////////////////////////////////////////////// 246 //////////////////////////////////////////////////////////////////////////////
247 class BrowserCommandControllerFullscreenTest; 247 class BrowserCommandControllerFullscreenTest;
248 248
249 // A test browser window that can toggle fullscreen state. 249 // A test browser window that can toggle fullscreen state.
250 class FullscreenTestBrowserWindow : public TestBrowserWindow, 250 class FullscreenTestBrowserWindow : public TestBrowserWindow,
251 ExclusiveAccessContext { 251 ExclusiveAccessContext {
252 public: 252 public:
253 FullscreenTestBrowserWindow( 253 FullscreenTestBrowserWindow(
254 BrowserCommandControllerFullscreenTest* test_browser) 254 BrowserCommandControllerFullscreenTest* test_browser)
255 : fullscreen_(false), test_browser_(test_browser) {} 255 : fullscreen_(false),
256 toolbar_showing_(false),
257 test_browser_(test_browser) {}
256 258
257 ~FullscreenTestBrowserWindow() override {} 259 ~FullscreenTestBrowserWindow() override {}
258 260
259 // TestBrowserWindow overrides: 261 // TestBrowserWindow overrides:
260 bool ShouldHideUIForFullscreen() const override { return fullscreen_; } 262 bool ShouldHideUIForFullscreen() const override { return fullscreen_; }
261 bool IsFullscreen() const override { return fullscreen_; } 263 bool IsFullscreen() const override { return fullscreen_; }
262 void EnterFullscreen(const GURL& url, 264 void EnterFullscreen(const GURL& url,
263 ExclusiveAccessBubbleType type) override { 265 ExclusiveAccessBubbleType type) override {
264 fullscreen_ = true; 266 fullscreen_ = true;
265 } 267 }
266 void ExitFullscreen() override { fullscreen_ = false; } 268 void ExitFullscreen() override { fullscreen_ = false; }
269 bool IsToolbarShowing() const override { return toolbar_showing_; }
267 270
268 ExclusiveAccessContext* GetExclusiveAccessContext() override { return this; } 271 ExclusiveAccessContext* GetExclusiveAccessContext() override { return this; }
269 272
270 // Exclusive access interface: 273 // Exclusive access interface:
271 Profile* GetProfile() override; 274 Profile* GetProfile() override;
272 content::WebContents* GetActiveWebContents() override; 275 content::WebContents* GetActiveWebContents() override;
273 void HideDownloadShelf() override {} 276 void HideDownloadShelf() override {}
274 void UnhideDownloadShelf() override {} 277 void UnhideDownloadShelf() override {}
275 void UpdateExclusiveAccessExitBubbleContent( 278 void UpdateExclusiveAccessExitBubbleContent(
276 const GURL& url, 279 const GURL& url,
277 ExclusiveAccessBubbleType bubble_type) override {} 280 ExclusiveAccessBubbleType bubble_type) override {}
278 void OnExclusiveAccessUserInput() override {} 281 void OnExclusiveAccessUserInput() override {}
279 282
283 void set_toolbar_showing(bool showing) { toolbar_showing_ = showing; }
284
280 private: 285 private:
281 bool fullscreen_; 286 bool fullscreen_;
287 bool toolbar_showing_;
282 BrowserCommandControllerFullscreenTest* test_browser_; 288 BrowserCommandControllerFullscreenTest* test_browser_;
283 289
284 DISALLOW_COPY_AND_ASSIGN(FullscreenTestBrowserWindow); 290 DISALLOW_COPY_AND_ASSIGN(FullscreenTestBrowserWindow);
285 }; 291 };
286 292
287 // Test that uses FullscreenTestBrowserWindow for its window. 293 // Test that uses FullscreenTestBrowserWindow for its window.
288 class BrowserCommandControllerFullscreenTest 294 class BrowserCommandControllerFullscreenTest
289 : public BrowserWithTestWindowTest { 295 : public BrowserWithTestWindowTest {
290 public: 296 public:
291 BrowserCommandControllerFullscreenTest() {} 297 BrowserCommandControllerFullscreenTest() {}
(...skipping 13 matching lines...) Expand all
305 Profile* FullscreenTestBrowserWindow::GetProfile() { 311 Profile* FullscreenTestBrowserWindow::GetProfile() {
306 return test_browser_->GetBrowser()->profile(); 312 return test_browser_->GetBrowser()->profile();
307 } 313 }
308 314
309 content::WebContents* FullscreenTestBrowserWindow::GetActiveWebContents() { 315 content::WebContents* FullscreenTestBrowserWindow::GetActiveWebContents() {
310 return test_browser_->GetBrowser()->tab_strip_model()->GetActiveWebContents(); 316 return test_browser_->GetBrowser()->tab_strip_model()->GetActiveWebContents();
311 } 317 }
312 318
313 TEST_F(BrowserCommandControllerFullscreenTest, 319 TEST_F(BrowserCommandControllerFullscreenTest,
314 UpdateCommandsForFullscreenMode) { 320 UpdateCommandsForFullscreenMode) {
321 const int commands_enabled_in_tab[] = {
msw 2017/04/05 23:55:11 I have a slight preference for a struct with bool
Hzj_jie 2017/04/06 02:37:59 Done.
322 IDC_OPEN_CURRENT_URL,
msw 2017/04/05 23:55:11 nit: use a consistent indentation level for these
Hzj_jie 2017/04/06 02:37:58 Weird, git cl format does not format all the lines
323 IDC_FOCUS_TOOLBAR,
324 IDC_FOCUS_LOCATION,
325 IDC_FOCUS_SEARCH,
326 IDC_FOCUS_MENU_BAR,
327 IDC_FOCUS_NEXT_PANE,
328 IDC_FOCUS_PREVIOUS_PANE,
329 IDC_FOCUS_BOOKMARKS,
330 IDC_DEVELOPER_MENU,
331 #if defined(GOOGLE_CHROME_BUILD)
332 IDC_FEEDBACK,
333 #endif
334 IDC_OPTIONS,
335 IDC_IMPORT_SETTINGS,
336 IDC_EDIT_SEARCH_ENGINES,
337 IDC_VIEW_PASSWORDS,
338 IDC_ABOUT,
339 IDC_SHOW_APP_MENU,
340 IDC_FULLSCREEN,
341 IDC_CLOSE_TAB,
342 IDC_CLOSE_WINDOW,
343 IDC_NEW_INCOGNITO_WINDOW,
344 IDC_NEW_TAB,
345 IDC_NEW_WINDOW,
346 IDC_SELECT_NEXT_TAB,
347 IDC_SELECT_PREVIOUS_TAB,
348 IDC_EXIT,
349 };
350 const int commands_disabled_in_tab[] = {
351 IDC_SHOW_AS_TAB,
352 };
353 const int commands_enabled_in_fullscreen[] = {
354 IDC_FULLSCREEN,
355 IDC_CLOSE_TAB,
356 IDC_CLOSE_WINDOW,
357 IDC_NEW_INCOGNITO_WINDOW,
358 IDC_NEW_TAB,
359 IDC_NEW_WINDOW,
360 IDC_SELECT_NEXT_TAB,
361 IDC_SELECT_PREVIOUS_TAB,
362 IDC_EXIT,
363 };
364 // Most commands are disabled in fullscreen.
365 const int commands_disabled_in_fullscreen[] = {
366 IDC_OPEN_CURRENT_URL,
367 IDC_SHOW_AS_TAB,
368 IDC_FOCUS_TOOLBAR,
369 IDC_FOCUS_LOCATION,
370 IDC_FOCUS_SEARCH,
371 IDC_FOCUS_MENU_BAR,
372 IDC_FOCUS_NEXT_PANE,
373 IDC_FOCUS_PREVIOUS_PANE,
374 IDC_FOCUS_BOOKMARKS,
375 IDC_DEVELOPER_MENU,
376 #if defined(GOOGLE_CHROME_BUILD)
377 IDC_FEEDBACK,
378 #endif
379 IDC_OPTIONS,
380 IDC_IMPORT_SETTINGS,
381 IDC_EDIT_SEARCH_ENGINES,
382 IDC_VIEW_PASSWORDS,
383 IDC_ABOUT,
384 IDC_SHOW_APP_MENU,
385 };
386
387 // The command shortcuts which are reserved by browser.
388 const int commands_reserved_in_tab[] = {
389 IDC_CLOSE_TAB,
390 IDC_CLOSE_WINDOW,
391 IDC_NEW_INCOGNITO_WINDOW,
392 IDC_NEW_TAB,
393 IDC_NEW_WINDOW,
394 IDC_SELECT_NEXT_TAB,
395 IDC_SELECT_PREVIOUS_TAB,
396 IDC_EXIT,
397 };
398 const int commands_unreserved_in_tab[] = {
399 IDC_FULLSCREEN,
400 };
401 // In fullscreen, only the exit fullscreen commands are reserved. All other
402 // shortcuts should be delivered to the web page. See http://crbug.com/680809.
403 const int commands_reserved_in_fullscreen[] = {
404 IDC_EXIT, IDC_FULLSCREEN,
405 };
406 const int commands_unreserved_in_fullscreen[] = {
407 IDC_CLOSE_TAB,
408 IDC_CLOSE_WINDOW,
409 IDC_NEW_INCOGNITO_WINDOW,
410 IDC_NEW_TAB,
411 IDC_NEW_WINDOW,
412 IDC_SELECT_NEXT_TAB,
413 IDC_SELECT_PREVIOUS_TAB,
414 };
415 const content::NativeWebKeyboardEvent key_event(
416 blink::WebInputEvent::TypeFirst, 0, 0);
315 // Defaults for a tabbed browser. 417 // Defaults for a tabbed browser.
316 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_OPEN_CURRENT_URL)); 418 for (size_t i = 0; i < arraysize(commands_enabled_in_tab); i++) {
317 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_SHOW_AS_TAB)); 419 EXPECT_TRUE(
msw 2017/04/05 23:55:11 Have you checked the output for a failure in this
Hzj_jie 2017/04/06 02:37:59 Done.
318 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_TOOLBAR)); 420 chrome::IsCommandEnabled(browser(), commands_enabled_in_tab[i]));
319 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_LOCATION)); 421 }
320 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_SEARCH)); 422 for (size_t i = 0; i < arraysize(commands_disabled_in_tab); i++) {
321 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_MENU_BAR)); 423 EXPECT_FALSE(
322 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_NEXT_PANE)); 424 chrome::IsCommandEnabled(browser(), commands_disabled_in_tab[i]));
323 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_PREVIOUS_PANE)); 425 }
324 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_BOOKMARKS)); 426 for (size_t i = 0; i < arraysize(commands_reserved_in_tab); i++) {
325 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_DEVELOPER_MENU)); 427 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
326 #if defined(GOOGLE_CHROME_BUILD) 428 commands_reserved_in_tab[i], key_event));
327 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FEEDBACK)); 429 }
328 #endif 430 for (size_t i = 0; i < arraysize(commands_unreserved_in_tab); i++) {
329 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_OPTIONS)); 431 EXPECT_FALSE(browser()->command_controller()->IsReservedCommandOrKey(
330 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_IMPORT_SETTINGS)); 432 commands_unreserved_in_tab[i], key_event));
331 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_EDIT_SEARCH_ENGINES)); 433 }
332 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_VIEW_PASSWORDS));
333 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_ABOUT));
334 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_SHOW_APP_MENU));
335 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FULLSCREEN));
336 434
337 // Simulate going fullscreen. 435 // Simulate going fullscreen.
338 chrome::ToggleFullscreenMode(browser()); 436 chrome::ToggleFullscreenMode(browser());
339 ASSERT_TRUE(browser()->window()->IsFullscreen()); 437 ASSERT_TRUE(browser()->window()->IsFullscreen());
340 browser()->command_controller()->FullscreenStateChanged(); 438 browser()->command_controller()->FullscreenStateChanged();
341 439
342 // Most commands are disabled in fullscreen. 440 #if defined(OS_MACOSX)
343 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_OPEN_CURRENT_URL)); 441 // Once the toolbar is not showing, the behavior on Mac OS should be
msw 2017/04/05 23:55:10 nit: 'When the'
Hzj_jie 2017/04/06 02:37:58 Done.
344 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_SHOW_AS_TAB)); 442 // consistent as other platforms.
msw 2017/04/05 23:55:10 nit: 'consistent with'
Hzj_jie 2017/04/06 02:37:58 Done.
345 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_TOOLBAR)); 443 static_cast<FullscreenTestBrowserWindow*>(window())->set_toolbar_showing(
346 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_LOCATION)); 444 false);
347 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_SEARCH));
348 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_MENU_BAR));
349 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_NEXT_PANE));
350 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_PREVIOUS_PANE));
351 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_BOOKMARKS));
352 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_DEVELOPER_MENU));
353 #if defined(GOOGLE_CHROME_BUILD)
354 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FEEDBACK));
355 #endif 445 #endif
356 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_OPTIONS)); 446 for (size_t i = 0; i < arraysize(commands_enabled_in_fullscreen); i++) {
357 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_IMPORT_SETTINGS)); 447 EXPECT_TRUE(
358 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_EDIT_SEARCH_ENGINES)); 448 chrome::IsCommandEnabled(browser(), commands_enabled_in_fullscreen[i]));
359 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_VIEW_PASSWORDS)); 449 }
360 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_ABOUT)); 450 for (size_t i = 0; i < arraysize(commands_disabled_in_fullscreen); i++) {
361 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_SHOW_APP_MENU)); 451 EXPECT_FALSE(chrome::IsCommandEnabled(browser(),
362 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FULLSCREEN)); 452 commands_disabled_in_fullscreen[i]));
453 }
454 for (size_t i = 0; i < arraysize(commands_reserved_in_fullscreen); i++) {
455 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
456 commands_reserved_in_fullscreen[i], key_event));
457 }
458 for (size_t i = 0; i < arraysize(commands_unreserved_in_fullscreen); i++) {
459 EXPECT_FALSE(browser()->command_controller()->IsReservedCommandOrKey(
460 commands_unreserved_in_fullscreen[i], key_event));
461 }
363 462
463 #if defined(OS_MACOSX)
464 // If the toolbar is visible, all the keyboard shortcuts should be preserved
msw 2017/04/05 23:55:11 nit: "When the toolbar is showing, commands should
Hzj_jie 2017/04/06 02:37:59 Done.
465 // by browser, include IDC_FULLSCREEN.
466 static_cast<FullscreenTestBrowserWindow*>(window())->set_toolbar_showing(
467 true);
468 for (size_t i = 0; i < arraysize(commands_reserved_in_tab); i++) {
469 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
470 commands_reserved_in_tab[i], key_event));
471 }
364 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey( 472 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
365 IDC_CLOSE_TAB, 473 IDC_FULLSCREEN, key_event));
366 content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0))); 474 for (size_t i = 0; i < arraysize(commands_unreserved_in_tab); i++) {
367 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey( 475 if (commands_unreserved_in_tab[i] != IDC_FULLSCREEN) {
msw 2017/04/05 23:55:11 aside: This is a bit odd, since the only value in
Hzj_jie 2017/04/06 02:37:59 Now all commands are in one structure, we do not h
368 IDC_CLOSE_WINDOW, 476 EXPECT_FALSE(browser()->command_controller()->IsReservedCommandOrKey(
369 content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0))); 477 commands_unreserved_in_tab[i], key_event));
370 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey( 478 }
371 IDC_NEW_INCOGNITO_WINDOW, 479 }
372 content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0))); 480 // Return to default state.
373 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey( 481 static_cast<FullscreenTestBrowserWindow*>(window())->set_toolbar_showing(
374 IDC_NEW_TAB, 482 false);
375 content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0))); 483 #endif
376 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
377 IDC_NEW_WINDOW,
378 content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
379 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
380 IDC_SELECT_NEXT_TAB,
381 content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
382 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
383 IDC_SELECT_PREVIOUS_TAB,
384 content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
385 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
386 IDC_EXIT,
387 content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
388 484
389 // Exit fullscreen. 485 // Exit fullscreen.
390 chrome::ToggleFullscreenMode(browser()); 486 chrome::ToggleFullscreenMode(browser());
391 ASSERT_FALSE(browser()->window()->IsFullscreen()); 487 ASSERT_FALSE(browser()->window()->IsFullscreen());
392 browser()->command_controller()->FullscreenStateChanged(); 488 browser()->command_controller()->FullscreenStateChanged();
393 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_OPEN_CURRENT_URL));
394 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_SHOW_AS_TAB));
395 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_TOOLBAR));
396 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_LOCATION));
397 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_SEARCH));
398 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_MENU_BAR));
399 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_NEXT_PANE));
400 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_PREVIOUS_PANE));
401 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_BOOKMARKS));
402 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_DEVELOPER_MENU));
403 #if defined(GOOGLE_CHROME_BUILD)
404 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FEEDBACK));
405 #endif
406 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_OPTIONS));
407 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_IMPORT_SETTINGS));
408 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_EDIT_SEARCH_ENGINES));
409 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_VIEW_PASSWORDS));
410 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_ABOUT));
411 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_SHOW_APP_MENU));
412 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FULLSCREEN));
413 489
414 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey( 490 for (size_t i = 0; i < arraysize(commands_enabled_in_tab); i++) {
415 IDC_CLOSE_TAB, 491 EXPECT_TRUE(
416 content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0))); 492 chrome::IsCommandEnabled(browser(), commands_enabled_in_tab[i]));
417 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey( 493 }
418 IDC_CLOSE_WINDOW, 494 for (size_t i = 0; i < arraysize(commands_disabled_in_tab); i++) {
419 content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0))); 495 EXPECT_FALSE(
420 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey( 496 chrome::IsCommandEnabled(browser(), commands_disabled_in_tab[i]));
421 IDC_NEW_INCOGNITO_WINDOW, 497 }
422 content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0))); 498 for (size_t i = 0; i < arraysize(commands_reserved_in_tab); i++) {
423 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey( 499 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
424 IDC_NEW_TAB, 500 commands_reserved_in_tab[i], key_event));
425 content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0))); 501 }
426 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey( 502 for (size_t i = 0; i < arraysize(commands_unreserved_in_tab); i++) {
427 IDC_NEW_WINDOW, 503 EXPECT_FALSE(browser()->command_controller()->IsReservedCommandOrKey(
428 content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0))); 504 commands_unreserved_in_tab[i], key_event));
429 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey( 505 }
430 IDC_SELECT_NEXT_TAB,
431 content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
432 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
433 IDC_SELECT_PREVIOUS_TAB,
434 content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
435 EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
436 IDC_EXIT,
437 content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
438 506
439 // Guest Profiles disallow some options. 507 // Guest Profiles disallow some options.
440 TestingProfile* testprofile = browser()->profile()->AsTestingProfile(); 508 TestingProfile* testprofile = browser()->profile()->AsTestingProfile();
441 EXPECT_TRUE(testprofile); 509 EXPECT_TRUE(testprofile);
442 testprofile->SetGuestSession(true); 510 testprofile->SetGuestSession(true);
443 511
444 browser()->command_controller()->FullscreenStateChanged(); 512 browser()->command_controller()->FullscreenStateChanged();
445 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_OPTIONS)); 513 EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_OPTIONS));
446 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_IMPORT_SETTINGS)); 514 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_IMPORT_SETTINGS));
447 } 515 }
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 564
497 TEST_F(BrowserCommandControllerTest, OnSigninAllowedPrefChange) { 565 TEST_F(BrowserCommandControllerTest, OnSigninAllowedPrefChange) {
498 chrome::BrowserCommandController command_controller(browser()); 566 chrome::BrowserCommandController command_controller(browser());
499 const CommandUpdater* command_updater = command_controller.command_updater(); 567 const CommandUpdater* command_updater = command_controller.command_updater();
500 568
501 // Check that the SYNC_SETUP command is updated on preference change. 569 // Check that the SYNC_SETUP command is updated on preference change.
502 EXPECT_TRUE(command_updater->IsCommandEnabled(IDC_SHOW_SYNC_SETUP)); 570 EXPECT_TRUE(command_updater->IsCommandEnabled(IDC_SHOW_SYNC_SETUP));
503 profile()->GetPrefs()->SetBoolean(prefs::kSigninAllowed, false); 571 profile()->GetPrefs()->SetBoolean(prefs::kSigninAllowed, false);
504 EXPECT_FALSE(command_updater->IsCommandEnabled(IDC_SHOW_SYNC_SETUP)); 572 EXPECT_FALSE(command_updater->IsCommandEnabled(IDC_SHOW_SYNC_SETUP));
505 } 573 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698