| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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/scoped_nsobject.h" | 7 #import "base/scoped_nsobject.h" |
| 8 #include "chrome/app/chrome_dll_resource.h" | 8 #include "chrome/app/chrome_dll_resource.h" |
| 9 #include "chrome/browser/cocoa/browser_test_helper.h" | 9 #include "chrome/browser/cocoa/browser_test_helper.h" |
| 10 #import "chrome/browser/cocoa/cocoa_test_helper.h" | 10 #import "chrome/browser/cocoa/cocoa_test_helper.h" |
| 11 #import "chrome/browser/cocoa/toolbar_controller.h" | 11 #import "chrome/browser/cocoa/toolbar_controller.h" |
| 12 #import "chrome/browser/cocoa/view_resizer_pong.h" |
| 12 #include "chrome/common/pref_names.h" | 13 #include "chrome/common/pref_names.h" |
| 13 #include "chrome/common/pref_service.h" | 14 #include "chrome/common/pref_service.h" |
| 14 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
| 15 | 16 |
| 16 namespace { | 17 namespace { |
| 17 | 18 |
| 18 class ToolbarControllerTest : public testing::Test { | 19 class ToolbarControllerTest : public testing::Test { |
| 19 public: | 20 public: |
| 20 | 21 |
| 21 // Indexes that match the ordering returned by the private ToolbarController | 22 // Indexes that match the ordering returned by the private ToolbarController |
| 22 // |-toolbarViews| method. | 23 // |-toolbarViews| method. |
| 23 enum { | 24 enum { |
| 24 kBackIndex, kForwardIndex, kReloadIndex, kHomeIndex, kStarIndex, kGoIndex, | 25 kBackIndex, kForwardIndex, kReloadIndex, kHomeIndex, kStarIndex, kGoIndex, |
| 25 kPageIndex, kWrenchIndex, kLocationIndex, | 26 kPageIndex, kWrenchIndex, kLocationIndex, |
| 26 }; | 27 }; |
| 27 | 28 |
| 28 ToolbarControllerTest() { | 29 ToolbarControllerTest() { |
| 29 Browser* browser = helper_.browser(); | 30 Browser* browser = helper_.browser(); |
| 30 CommandUpdater* updater = browser->command_updater(); | 31 CommandUpdater* updater = browser->command_updater(); |
| 31 // The default state for the commands is true, set a couple to false to | 32 // The default state for the commands is true, set a couple to false to |
| 32 // ensure they get picked up correct on initialization | 33 // ensure they get picked up correct on initialization |
| 33 updater->UpdateCommandEnabled(IDC_BACK, false); | 34 updater->UpdateCommandEnabled(IDC_BACK, false); |
| 34 updater->UpdateCommandEnabled(IDC_FORWARD, false); | 35 updater->UpdateCommandEnabled(IDC_FORWARD, false); |
| 36 resizeDelegate_.reset([[ViewResizerPong alloc] init]); |
| 35 bar_.reset( | 37 bar_.reset( |
| 36 [[ToolbarController alloc] initWithModel:browser->toolbar_model() | 38 [[ToolbarController alloc] initWithModel:browser->toolbar_model() |
| 37 commands:browser->command_updater() | 39 commands:browser->command_updater() |
| 38 profile:helper_.profile() | 40 profile:helper_.profile() |
| 39 webContentView:nil | 41 resizeDelegate:resizeDelegate_.get() |
| 40 infoBarsView:nil | |
| 41 bookmarkDelegate:nil]); | 42 bookmarkDelegate:nil]); |
| 42 EXPECT_TRUE([bar_ view]); | 43 EXPECT_TRUE([bar_ view]); |
| 43 NSView* parent = [cocoa_helper_.window() contentView]; | 44 NSView* parent = [cocoa_helper_.window() contentView]; |
| 44 [parent addSubview:[bar_ view]]; | 45 [parent addSubview:[bar_ view]]; |
| 45 } | 46 } |
| 46 | 47 |
| 47 // Make sure the enabled state of the view is the same as the corresponding | 48 // Make sure the enabled state of the view is the same as the corresponding |
| 48 // command in the updater. The views are in the declaration order of outlets. | 49 // command in the updater. The views are in the declaration order of outlets. |
| 49 void CompareState(CommandUpdater* updater, NSArray* views) { | 50 void CompareState(CommandUpdater* updater, NSArray* views) { |
| 50 EXPECT_EQ(updater->IsCommandEnabled(IDC_BACK), | 51 EXPECT_EQ(updater->IsCommandEnabled(IDC_BACK), |
| 51 [[views objectAtIndex:kBackIndex] isEnabled] ? true : false); | 52 [[views objectAtIndex:kBackIndex] isEnabled] ? true : false); |
| 52 EXPECT_EQ(updater->IsCommandEnabled(IDC_FORWARD), | 53 EXPECT_EQ(updater->IsCommandEnabled(IDC_FORWARD), |
| 53 [[views objectAtIndex:kForwardIndex] isEnabled] ? true : false); | 54 [[views objectAtIndex:kForwardIndex] isEnabled] ? true : false); |
| 54 EXPECT_EQ(updater->IsCommandEnabled(IDC_RELOAD), | 55 EXPECT_EQ(updater->IsCommandEnabled(IDC_RELOAD), |
| 55 [[views objectAtIndex:kReloadIndex] isEnabled] ? true : false); | 56 [[views objectAtIndex:kReloadIndex] isEnabled] ? true : false); |
| 56 EXPECT_EQ(updater->IsCommandEnabled(IDC_HOME), | 57 EXPECT_EQ(updater->IsCommandEnabled(IDC_HOME), |
| 57 [[views objectAtIndex:kHomeIndex] isEnabled] ? true : false); | 58 [[views objectAtIndex:kHomeIndex] isEnabled] ? true : false); |
| 58 EXPECT_EQ(updater->IsCommandEnabled(IDC_STAR), | 59 EXPECT_EQ(updater->IsCommandEnabled(IDC_STAR), |
| 59 [[views objectAtIndex:kStarIndex] isEnabled] ? true : false); | 60 [[views objectAtIndex:kStarIndex] isEnabled] ? true : false); |
| 60 } | 61 } |
| 61 | 62 |
| 62 CocoaTestHelper cocoa_helper_; // Inits Cocoa, creates window, etc... | 63 CocoaTestHelper cocoa_helper_; // Inits Cocoa, creates window, etc... |
| 63 BrowserTestHelper helper_; | 64 BrowserTestHelper helper_; |
| 65 scoped_nsobject<ViewResizerPong> resizeDelegate_; |
| 64 scoped_nsobject<ToolbarController> bar_; | 66 scoped_nsobject<ToolbarController> bar_; |
| 65 }; | 67 }; |
| 66 | 68 |
| 67 // Test the initial state that everything is sync'd up | 69 // Test the initial state that everything is sync'd up |
| 68 TEST_F(ToolbarControllerTest, InitialState) { | 70 TEST_F(ToolbarControllerTest, InitialState) { |
| 69 CommandUpdater* updater = helper_.browser()->command_updater(); | 71 CommandUpdater* updater = helper_.browser()->command_updater(); |
| 70 CompareState(updater, [bar_ toolbarViews]); | 72 CompareState(updater, [bar_ toolbarViews]); |
| 71 } | 73 } |
| 72 | 74 |
| 73 // Make sure awakeFromNib created a bookmarkBarController | 75 // Make sure awakeFromNib created a bookmarkBarController |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 177 | 179 |
| 178 // Toggle the pref and make sure the buttons changed state and the other | 180 // Toggle the pref and make sure the buttons changed state and the other |
| 179 // views moved (or in the case of the location bar, it changed width). | 181 // views moved (or in the case of the location bar, it changed width). |
| 180 prefs->SetBoolean(prefs::kShowPageOptionsButtons, !showButtons); | 182 prefs->SetBoolean(prefs::kShowPageOptionsButtons, !showButtons); |
| 181 EXPECT_EQ(showButtons, [pageButton isHidden]); | 183 EXPECT_EQ(showButtons, [pageButton isHidden]); |
| 182 EXPECT_EQ(showButtons, [wrenchButton isHidden]); | 184 EXPECT_EQ(showButtons, [wrenchButton isHidden]); |
| 183 EXPECT_NE(NSMinX(originalGoFrame), NSMinX([goButton frame])); | 185 EXPECT_NE(NSMinX(originalGoFrame), NSMinX([goButton frame])); |
| 184 EXPECT_NE(NSWidth(originalLocationBarFrame), NSWidth([locationBar frame])); | 186 EXPECT_NE(NSWidth(originalLocationBarFrame), NSWidth([locationBar frame])); |
| 185 } | 187 } |
| 186 | 188 |
| 189 TEST_F(ToolbarControllerTest, BookmarkBarResizes) { |
| 190 NSView* bookmarkBarView = [[bar_ bookmarkBarController] view]; |
| 191 ASSERT_EQ(0, NSHeight([bookmarkBarView frame])); |
| 192 [resizeDelegate_ setHeight:-1]; |
| 193 |
| 194 // Resize the bookmarkbar to 30px. The toolbar should ask the delegate to |
| 195 // resize to 64px. |
| 196 [bar_ resizeView:bookmarkBarView newHeight:30]; |
| 197 EXPECT_EQ(64, [resizeDelegate_ height]); |
| 198 EXPECT_EQ(30, NSHeight([bookmarkBarView frame])); |
| 199 |
| 200 // Resize the bookmarkbar back to 0px. Toolbar should be at 39px. |
| 201 [bar_ resizeView:bookmarkBarView newHeight:0]; |
| 202 EXPECT_EQ(39, [resizeDelegate_ height]); |
| 203 EXPECT_EQ(0, NSHeight([bookmarkBarView frame])); |
| 204 |
| 205 // Resize the bookmarkbar to 5px. Toolbar should stay at 39px. |
| 206 [resizeDelegate_ setHeight:-1]; |
| 207 [bar_ resizeView:bookmarkBarView newHeight:5]; |
| 208 EXPECT_EQ(39, [resizeDelegate_ height]); |
| 209 EXPECT_EQ(5, NSHeight([bookmarkBarView frame])); |
| 210 |
| 211 // Resize the bookmarkbar to 6px. Toolbar should grow to 40px. |
| 212 [bar_ resizeView:bookmarkBarView newHeight:6]; |
| 213 EXPECT_EQ(40, [resizeDelegate_ height]); |
| 214 EXPECT_EQ(6, NSHeight([bookmarkBarView frame])); |
| 215 } |
| 216 |
| 187 } // namespace | 217 } // namespace |
| OLD | NEW |