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

Side by Side Diff: chrome/browser/ui/cocoa/chrome_browser_window_unittest.mm

Issue 9230011: Better fix for Lion dictionary popover cmd-W bug. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 8 years, 11 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 | Annotate | Revision Log
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 #import <Cocoa/Cocoa.h> 5 #import <Cocoa/Cocoa.h>
6 6
7 #include "base/debug/debugger.h" 7 #include "base/debug/debugger.h"
8 #include "chrome/app/chrome_command_ids.h" 8 #include "chrome/app/chrome_command_ids.h"
9 #import "chrome/browser/ui/cocoa/chrome_browser_window.h" 9 #import "chrome/browser/ui/cocoa/chrome_browser_window.h"
10 #import "chrome/browser/ui/cocoa/cocoa_test_helper.h" 10 #import "chrome/browser/ui/cocoa/cocoa_test_helper.h"
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 #import "testing/gtest_mac.h" 12 #import "testing/gtest_mac.h"
13 #include "testing/platform_test.h" 13 #include "testing/platform_test.h"
14 14
15 // An NSWindowDelegate that implements -commandDispatch:.
16 @interface TestDelegateWithCommandDispatch : NSObject {
17 }
18 - (void)commandDispatch:(id)sender;
19 @end
20 @implementation TestDelegateWithCommandDispatch
21 - (void)commandDispatch:(id)sender {
22 }
23 @end
24
25 // An NSWindowDelegate that doesn't implement -commandDispatch:.
26 @interface TestDelegateWithoutCommandDispatch : NSObject {
27 }
28 @end
29 @implementation TestDelegateWithoutCommandDispatch
30 @end
31
32 class ChromeBrowserWindowTest : public CocoaTest { 15 class ChromeBrowserWindowTest : public CocoaTest {
33 public: 16 public:
34 virtual void SetUp() { 17 virtual void SetUp() {
35 CocoaTest::SetUp(); 18 CocoaTest::SetUp();
36 // Create a window. 19 // Create a window.
37 const NSUInteger mask = NSTitledWindowMask | NSClosableWindowMask | 20 const NSUInteger mask = NSTitledWindowMask | NSClosableWindowMask |
38 NSMiniaturizableWindowMask | NSResizableWindowMask; 21 NSMiniaturizableWindowMask | NSResizableWindowMask;
39 window_ = [[ChromeBrowserWindow alloc] 22 window_ = [[ChromeBrowserWindow alloc]
40 initWithContentRect:NSMakeRect(0, 0, 800, 600) 23 initWithContentRect:NSMakeRect(0, 0, 800, 600)
41 styleMask:mask 24 styleMask:mask
(...skipping 13 matching lines...) Expand all
55 38
56 ChromeBrowserWindow* window_; 39 ChromeBrowserWindow* window_;
57 }; 40 };
58 41
59 // Baseline test that the window creates, displays, closes, and 42 // Baseline test that the window creates, displays, closes, and
60 // releases. 43 // releases.
61 TEST_F(ChromeBrowserWindowTest, ShowAndClose) { 44 TEST_F(ChromeBrowserWindowTest, ShowAndClose) {
62 [window_ display]; 45 [window_ display];
63 } 46 }
64 47
65 // Tests routing of -performClose:.
66 TEST_F(ChromeBrowserWindowTest, PerformCloseTest) {
67 scoped_nsobject<NSMenuItem> zoom_item(
68 [[NSMenuItem alloc] initWithTitle:@"Zoom"
69 action:@selector(performZoom:)
70 keyEquivalent:@""]);
71 scoped_nsobject<NSMenuItem> close_item(
72 [[NSMenuItem alloc] initWithTitle:@"Close"
73 action:@selector(performClose:)
74 keyEquivalent:@""]);
75 scoped_nsobject<NSMenuItem> close_tab_item(
76 [[NSMenuItem alloc] initWithTitle:@"Close Tab"
77 action:@selector(performClose:)
78 keyEquivalent:@""]);
79 [close_tab_item setTag:IDC_CLOSE_TAB];
80
81 scoped_nsobject<id> delegate1(
82 [[TestDelegateWithCommandDispatch alloc] init]);
83 scoped_nsobject<id> delegate2(
84 [[TestDelegateWithoutCommandDispatch alloc] init]);
85
86 struct {
87 id delegate;
88 id sender;
89 BOOL should_route;
90 } cases[] = {
91 { delegate1, delegate1, NO },
92 { delegate1, window_, NO },
93 { delegate1, zoom_item, NO },
94 { delegate1, close_item, NO },
95 { delegate1, close_tab_item, YES },
96 { delegate2, close_tab_item, NO },
97 };
98
99 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) {
100 [window_ setDelegate:cases[i].delegate];
101 EXPECT_EQ(cases[i].should_route,
102 [window_ performCloseShouldRouteToCommandDispatch:cases[i].sender]);
103 }
104 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/chrome_browser_window.mm ('k') | chrome/browser/ui/cocoa/fullscreen_window.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698