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