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 #import <Cocoa/Cocoa.h> | 5 #import <Cocoa/Cocoa.h> |
6 | 6 |
7 #import "base/memory/scoped_nsobject.h" | 7 #import "base/memory/scoped_nsobject.h" |
8 #include "chrome/app/chrome_command_ids.h" | 8 #include "chrome/app/chrome_command_ids.h" |
| 9 #include "chrome/browser/command_updater.h" |
| 10 #include "chrome/browser/ui/browser_command_controller.h" |
| 11 #include "chrome/browser/ui/browser_commands.h" |
9 #include "chrome/browser/ui/cocoa/cocoa_profile_test.h" | 12 #include "chrome/browser/ui/cocoa/cocoa_profile_test.h" |
10 #import "chrome/browser/ui/cocoa/gradient_button_cell.h" | 13 #import "chrome/browser/ui/cocoa/gradient_button_cell.h" |
11 #import "chrome/browser/ui/cocoa/toolbar/toolbar_controller.h" | 14 #import "chrome/browser/ui/cocoa/toolbar/toolbar_controller.h" |
12 #import "chrome/browser/ui/cocoa/view_resizer_pong.h" | 15 #import "chrome/browser/ui/cocoa/view_resizer_pong.h" |
13 #include "chrome/browser/prefs/pref_service.h" | 16 #include "chrome/browser/prefs/pref_service.h" |
14 #include "chrome/common/pref_names.h" | 17 #include "chrome/common/pref_names.h" |
15 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" |
16 #include "testing/platform_test.h" | 19 #include "testing/platform_test.h" |
17 | 20 |
18 // An NSView that fakes out hitTest:. | 21 // An NSView that fakes out hitTest:. |
(...skipping 24 matching lines...) Expand all Loading... |
43 // |-toolbarViews| method. | 46 // |-toolbarViews| method. |
44 enum { | 47 enum { |
45 kBackIndex, kForwardIndex, kReloadIndex, kHomeIndex, | 48 kBackIndex, kForwardIndex, kReloadIndex, kHomeIndex, |
46 kWrenchIndex, kLocationIndex, kBrowserActionContainerViewIndex | 49 kWrenchIndex, kLocationIndex, kBrowserActionContainerViewIndex |
47 }; | 50 }; |
48 | 51 |
49 virtual void SetUp() { | 52 virtual void SetUp() { |
50 CocoaProfileTest::SetUp(); | 53 CocoaProfileTest::SetUp(); |
51 ASSERT_TRUE(browser()); | 54 ASSERT_TRUE(browser()); |
52 | 55 |
53 CommandUpdater* updater = browser()->command_updater(); | 56 CommandUpdater* updater = |
| 57 browser()->command_controller()->command_updater(); |
54 // The default state for the commands is true, set a couple to false to | 58 // The default state for the commands is true, set a couple to false to |
55 // ensure they get picked up correct on initialization | 59 // ensure they get picked up correct on initialization |
56 updater->UpdateCommandEnabled(IDC_BACK, false); | 60 updater->UpdateCommandEnabled(IDC_BACK, false); |
57 updater->UpdateCommandEnabled(IDC_FORWARD, false); | 61 updater->UpdateCommandEnabled(IDC_FORWARD, false); |
58 resizeDelegate_.reset([[ViewResizerPong alloc] init]); | 62 resizeDelegate_.reset([[ViewResizerPong alloc] init]); |
59 bar_.reset( | 63 bar_.reset( |
60 [[ToolbarController alloc] initWithModel:browser()->toolbar_model() | 64 [[ToolbarController alloc] initWithModel:browser()->toolbar_model() |
61 commands:browser()->command_updater() | 65 commands:browser()->command_controller()
->command_updater() |
62 profile:profile() | 66 profile:profile() |
63 browser:browser() | 67 browser:browser() |
64 resizeDelegate:resizeDelegate_.get()]); | 68 resizeDelegate:resizeDelegate_.get()]); |
65 EXPECT_TRUE([bar_ view]); | 69 EXPECT_TRUE([bar_ view]); |
66 NSView* parent = [test_window() contentView]; | 70 NSView* parent = [test_window() contentView]; |
67 [parent addSubview:[bar_ view]]; | 71 [parent addSubview:[bar_ view]]; |
68 } | 72 } |
69 | 73 |
70 // Make sure the enabled state of the view is the same as the corresponding | 74 // Make sure the enabled state of the view is the same as the corresponding |
71 // command in the updater. The views are in the declaration order of outlets. | 75 // command in the updater. The views are in the declaration order of outlets. |
72 void CompareState(CommandUpdater* updater, NSArray* views) { | 76 void CompareState(CommandUpdater* updater, NSArray* views) { |
73 EXPECT_EQ(updater->IsCommandEnabled(IDC_BACK), | 77 EXPECT_EQ(updater->IsCommandEnabled(IDC_BACK), |
74 [[views objectAtIndex:kBackIndex] isEnabled] ? true : false); | 78 [[views objectAtIndex:kBackIndex] isEnabled] ? true : false); |
75 EXPECT_EQ(updater->IsCommandEnabled(IDC_FORWARD), | 79 EXPECT_EQ(updater->IsCommandEnabled(IDC_FORWARD), |
76 [[views objectAtIndex:kForwardIndex] isEnabled] ? true : false); | 80 [[views objectAtIndex:kForwardIndex] isEnabled] ? true : false); |
77 EXPECT_EQ(updater->IsCommandEnabled(IDC_RELOAD), | 81 EXPECT_EQ(updater->IsCommandEnabled(IDC_RELOAD), |
78 [[views objectAtIndex:kReloadIndex] isEnabled] ? true : false); | 82 [[views objectAtIndex:kReloadIndex] isEnabled] ? true : false); |
79 EXPECT_EQ(updater->IsCommandEnabled(IDC_HOME), | 83 EXPECT_EQ(updater->IsCommandEnabled(IDC_HOME), |
80 [[views objectAtIndex:kHomeIndex] isEnabled] ? true : false); | 84 [[views objectAtIndex:kHomeIndex] isEnabled] ? true : false); |
81 } | 85 } |
82 | 86 |
83 scoped_nsobject<ViewResizerPong> resizeDelegate_; | 87 scoped_nsobject<ViewResizerPong> resizeDelegate_; |
84 scoped_nsobject<ToolbarController> bar_; | 88 scoped_nsobject<ToolbarController> bar_; |
85 }; | 89 }; |
86 | 90 |
87 TEST_VIEW(ToolbarControllerTest, [bar_ view]) | 91 TEST_VIEW(ToolbarControllerTest, [bar_ view]) |
88 | 92 |
89 // Test the initial state that everything is sync'd up | 93 // Test the initial state that everything is sync'd up |
90 TEST_F(ToolbarControllerTest, InitialState) { | 94 TEST_F(ToolbarControllerTest, InitialState) { |
91 CommandUpdater* updater = browser()->command_updater(); | 95 CommandUpdater* updater = browser()->command_controller()->command_updater(); |
92 CompareState(updater, [bar_ toolbarViews]); | 96 CompareState(updater, [bar_ toolbarViews]); |
93 } | 97 } |
94 | 98 |
95 // Make sure a "titlebar only" toolbar with location bar works. | 99 // Make sure a "titlebar only" toolbar with location bar works. |
96 // Crashy, http://crbug.com/122836 | 100 // Crashy, http://crbug.com/122836 |
97 TEST_F(ToolbarControllerTest, DISABLED_TitlebarOnly) { | 101 TEST_F(ToolbarControllerTest, DISABLED_TitlebarOnly) { |
98 NSView* view = [bar_ view]; | 102 NSView* view = [bar_ view]; |
99 | 103 |
100 [bar_ setHasToolbar:NO hasLocationBar:YES]; | 104 [bar_ setHasToolbar:NO hasLocationBar:YES]; |
101 EXPECT_NE(view, [bar_ view]); | 105 EXPECT_NE(view, [bar_ view]); |
(...skipping 22 matching lines...) Expand all Loading... |
124 // Simulate a popup going fullscreen and back by performing the reparenting | 128 // Simulate a popup going fullscreen and back by performing the reparenting |
125 // that happens during fullscreen transitions | 129 // that happens during fullscreen transitions |
126 NSView* superview = [view superview]; | 130 NSView* superview = [view superview]; |
127 [view removeFromSuperview]; | 131 [view removeFromSuperview]; |
128 [superview addSubview:view]; | 132 [superview addSubview:view]; |
129 } | 133 } |
130 | 134 |
131 // Make some changes to the enabled state of a few of the buttons and ensure | 135 // Make some changes to the enabled state of a few of the buttons and ensure |
132 // that we're still in sync. | 136 // that we're still in sync. |
133 TEST_F(ToolbarControllerTest, UpdateEnabledState) { | 137 TEST_F(ToolbarControllerTest, UpdateEnabledState) { |
134 CommandUpdater* updater = browser()->command_updater(); | 138 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_BACK)); |
135 EXPECT_FALSE(updater->IsCommandEnabled(IDC_BACK)); | 139 EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FORWARD)); |
136 EXPECT_FALSE(updater->IsCommandEnabled(IDC_FORWARD)); | 140 chrome::UpdateCommandEnabled(browser(), IDC_BACK, true); |
137 updater->UpdateCommandEnabled(IDC_BACK, true); | 141 chrome::UpdateCommandEnabled(browser(), IDC_FORWARD, true); |
138 updater->UpdateCommandEnabled(IDC_FORWARD, true); | 142 CommandUpdater* updater = browser()->command_controller()->command_updater(); |
139 CompareState(updater, [bar_ toolbarViews]); | 143 CompareState(updater, [bar_ toolbarViews]); |
140 } | 144 } |
141 | 145 |
142 // Focus the location bar and make sure that it's the first responder. | 146 // Focus the location bar and make sure that it's the first responder. |
143 TEST_F(ToolbarControllerTest, FocusLocation) { | 147 TEST_F(ToolbarControllerTest, FocusLocation) { |
144 NSWindow* window = test_window(); | 148 NSWindow* window = test_window(); |
145 [window makeFirstResponder:[window contentView]]; | 149 [window makeFirstResponder:[window contentView]]; |
146 EXPECT_EQ([window firstResponder], [window contentView]); | 150 EXPECT_EQ([window firstResponder], [window contentView]); |
147 [bar_ focusLocationBar:YES]; | 151 [bar_ focusLocationBar:YES]; |
148 EXPECT_NE([window firstResponder], [window contentView]); | 152 EXPECT_NE([window firstResponder], [window contentView]); |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
229 [view setHitTestReturn:button]; | 233 [view setHitTestReturn:button]; |
230 EXPECT_FALSE([bar_ hoverButtonForEvent:event]); | 234 EXPECT_FALSE([bar_ hoverButtonForEvent:event]); |
231 | 235 |
232 // Now! | 236 // Now! |
233 scoped_nsobject<GradientButtonCell> cell([[GradientButtonCell alloc] init]); | 237 scoped_nsobject<GradientButtonCell> cell([[GradientButtonCell alloc] init]); |
234 [button setCell:cell.get()]; | 238 [button setCell:cell.get()]; |
235 EXPECT_TRUE([bar_ hoverButtonForEvent:nil]); | 239 EXPECT_TRUE([bar_ hoverButtonForEvent:nil]); |
236 } | 240 } |
237 | 241 |
238 } // namespace | 242 } // namespace |
OLD | NEW |