OLD | NEW |
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 <Carbon/Carbon.h> | 5 #include <Carbon/Carbon.h> |
6 #import <Cocoa/Cocoa.h> | 6 #import <Cocoa/Cocoa.h> |
7 | 7 |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/debug/debugger.h" | 9 #include "base/debug/debugger.h" |
10 #include "base/mac/scoped_nsautorelease_pool.h" | 10 #include "base/mac/scoped_nsautorelease_pool.h" |
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
301 NSMenuItem* new_tab_window_item = CreateMenuItem(menu, IDC_NEW_WINDOW); | 301 NSMenuItem* new_tab_window_item = CreateMenuItem(menu, IDC_NEW_WINDOW); |
302 NSMenuItem* new_tab_incognito_window_item = | 302 NSMenuItem* new_tab_incognito_window_item = |
303 CreateMenuItem(menu, IDC_NEW_INCOGNITO_WINDOW); | 303 CreateMenuItem(menu, IDC_NEW_INCOGNITO_WINDOW); |
304 NSMenuItem* close_window_menu_item = CreateMenuItem(menu, IDC_CLOSE_WINDOW); | 304 NSMenuItem* close_window_menu_item = CreateMenuItem(menu, IDC_CLOSE_WINDOW); |
305 NSMenuItem* find_menu_item = CreateMenuItem(menu, IDC_FIND); | 305 NSMenuItem* find_menu_item = CreateMenuItem(menu, IDC_FIND); |
306 NSMenuItem* find_previous_menu_item = CreateMenuItem(menu, IDC_FIND_PREVIOUS); | 306 NSMenuItem* find_previous_menu_item = CreateMenuItem(menu, IDC_FIND_PREVIOUS); |
307 NSMenuItem* find_next_menu_item = CreateMenuItem(menu, IDC_FIND_NEXT); | 307 NSMenuItem* find_next_menu_item = CreateMenuItem(menu, IDC_FIND_NEXT); |
308 NSMenuItem* fullscreen_menu_item = CreateMenuItem(menu, IDC_FULLSCREEN); | 308 NSMenuItem* fullscreen_menu_item = CreateMenuItem(menu, IDC_FULLSCREEN); |
309 NSMenuItem* presentation_menu_item = | 309 NSMenuItem* presentation_menu_item = |
310 CreateMenuItem(menu, IDC_PRESENTATION_MODE); | 310 CreateMenuItem(menu, IDC_PRESENTATION_MODE); |
| 311 NSMenuItem* sync_menu_item = CreateMenuItem(menu, IDC_SHOW_SYNC_SETUP); |
311 NSMenuItem* dev_tools_item = CreateMenuItem(menu, IDC_DEV_TOOLS); | 312 NSMenuItem* dev_tools_item = CreateMenuItem(menu, IDC_DEV_TOOLS); |
312 NSMenuItem* dev_tools_console_item = | 313 NSMenuItem* dev_tools_console_item = |
313 CreateMenuItem(menu, IDC_DEV_TOOLS_CONSOLE); | 314 CreateMenuItem(menu, IDC_DEV_TOOLS_CONSOLE); |
314 | 315 |
315 PanelCocoa* native_window = static_cast<PanelCocoa*>(panel->native_panel()); | 316 PanelCocoa* native_window = static_cast<PanelCocoa*>(panel->native_panel()); |
316 PanelWindowControllerCocoa* panel_controller = native_window->controller_; | 317 PanelWindowControllerCocoa* panel_controller = native_window->controller_; |
317 for (NSMenuItem *item in [menu itemArray]) | 318 for (NSMenuItem *item in [menu itemArray]) |
318 [item setTarget:panel_controller]; | 319 [item setTarget:panel_controller]; |
319 | 320 |
320 [menu update]; // Trigger validation of menu items. | 321 [menu update]; // Trigger validation of menu items. |
321 EXPECT_FALSE([close_tab_menu_item isEnabled]); | 322 EXPECT_FALSE([close_tab_menu_item isEnabled]); |
322 EXPECT_TRUE([close_window_menu_item isEnabled]); | 323 EXPECT_TRUE([close_window_menu_item isEnabled]); |
323 // No find support. Panels don't have a find bar. | 324 // No find support. Panels don't have a find bar. |
324 EXPECT_FALSE([find_menu_item isEnabled]); | 325 EXPECT_FALSE([find_menu_item isEnabled]); |
325 EXPECT_FALSE([find_previous_menu_item isEnabled]); | 326 EXPECT_FALSE([find_previous_menu_item isEnabled]); |
326 EXPECT_FALSE([find_next_menu_item isEnabled]); | 327 EXPECT_FALSE([find_next_menu_item isEnabled]); |
327 EXPECT_FALSE([fullscreen_menu_item isEnabled]); | 328 EXPECT_FALSE([fullscreen_menu_item isEnabled]); |
328 EXPECT_FALSE([presentation_menu_item isEnabled]); | 329 EXPECT_FALSE([presentation_menu_item isEnabled]); |
| 330 EXPECT_FALSE([sync_menu_item isEnabled]); |
329 // These are not enabled by Panel, so they are expected to be disabled for | 331 // These are not enabled by Panel, so they are expected to be disabled for |
330 // this unit_test. In real Chrome app, they are enabled by Chrome NSApp | 332 // this unit_test. In real Chrome app, they are enabled by Chrome NSApp |
331 // controller. PanelCocoaBrowsertest.MenuItems verifies that. | 333 // controller. PanelCocoaBrowsertest.MenuItems verifies that. |
332 EXPECT_FALSE([new_tab_menu_item isEnabled]); | 334 EXPECT_FALSE([new_tab_menu_item isEnabled]); |
333 EXPECT_FALSE([new_tab_window_item isEnabled]); | 335 EXPECT_FALSE([new_tab_window_item isEnabled]); |
334 EXPECT_FALSE([new_tab_incognito_window_item isEnabled]); | 336 EXPECT_FALSE([new_tab_incognito_window_item isEnabled]); |
335 | 337 |
336 EXPECT_TRUE([dev_tools_item isEnabled]); | 338 EXPECT_TRUE([dev_tools_item isEnabled]); |
337 EXPECT_TRUE([dev_tools_console_item isEnabled]); | 339 EXPECT_TRUE([dev_tools_console_item isEnabled]); |
338 | 340 |
| 341 // Verify that commandDispatch on an invalid menu item does not crash. |
| 342 [NSApp sendAction:[sync_menu_item action] |
| 343 to:[sync_menu_item target] |
| 344 from:sync_menu_item]; |
| 345 |
339 ClosePanelAndWait(panel); | 346 ClosePanelAndWait(panel); |
340 } | 347 } |
341 | 348 |
342 TEST_F(PanelCocoaTest, KeyEvent) { | 349 TEST_F(PanelCocoaTest, KeyEvent) { |
343 Panel* panel = CreateTestPanel("Test Panel"); | 350 Panel* panel = CreateTestPanel("Test Panel"); |
344 NSEvent* event = [NSEvent keyEventWithType:NSKeyDown | 351 NSEvent* event = [NSEvent keyEventWithType:NSKeyDown |
345 location:NSZeroPoint | 352 location:NSZeroPoint |
346 modifierFlags:NSControlKeyMask | 353 modifierFlags:NSControlKeyMask |
347 timestamp:0.0 | 354 timestamp:0.0 |
348 windowNumber:0 | 355 windowNumber:0 |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
394 EXPECT_NSEQ(frontmostWindow, [native_window->controller_ window]); | 401 EXPECT_NSEQ(frontmostWindow, [native_window->controller_ window]); |
395 | 402 |
396 native_window2->ActivatePanel(); | 403 native_window2->ActivatePanel(); |
397 chrome::testing::NSRunLoopRunAllPending(); | 404 chrome::testing::NSRunLoopRunAllPending(); |
398 frontmostWindow = [[NSApp orderedWindows] objectAtIndex:0]; | 405 frontmostWindow = [[NSApp orderedWindows] objectAtIndex:0]; |
399 EXPECT_NSEQ(frontmostWindow, [native_window2->controller_ window]); | 406 EXPECT_NSEQ(frontmostWindow, [native_window2->controller_ window]); |
400 | 407 |
401 ClosePanelAndWait(panel); | 408 ClosePanelAndWait(panel); |
402 ClosePanelAndWait(panel2); | 409 ClosePanelAndWait(panel2); |
403 } | 410 } |
OLD | NEW |