summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/toolbar_controller_unittest.mm
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/cocoa/toolbar_controller_unittest.mm')
-rw-r--r--chrome/browser/cocoa/toolbar_controller_unittest.mm237
1 files changed, 0 insertions, 237 deletions
diff --git a/chrome/browser/cocoa/toolbar_controller_unittest.mm b/chrome/browser/cocoa/toolbar_controller_unittest.mm
deleted file mode 100644
index 43fbafb..0000000
--- a/chrome/browser/cocoa/toolbar_controller_unittest.mm
+++ /dev/null
@@ -1,237 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#import <Cocoa/Cocoa.h>
-
-#import "base/scoped_nsobject.h"
-#include "chrome/app/chrome_command_ids.h"
-#include "chrome/browser/cocoa/browser_test_helper.h"
-#import "chrome/browser/cocoa/cocoa_test_helper.h"
-#import "chrome/browser/cocoa/gradient_button_cell.h"
-#import "chrome/browser/cocoa/toolbar_controller.h"
-#import "chrome/browser/cocoa/view_resizer_pong.h"
-#include "chrome/browser/prefs/pref_service.h"
-#include "chrome/common/pref_names.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "testing/platform_test.h"
-
-// An NSView that fakes out hitTest:.
-@interface HitView : NSView {
- id hitTestReturn_;
-}
-@end
-
-@implementation HitView
-
-- (void)setHitTestReturn:(id)rtn {
- hitTestReturn_ = rtn;
-}
-
-- (NSView *)hitTest:(NSPoint)aPoint {
- return hitTestReturn_;
-}
-
-@end
-
-
-namespace {
-
-class ToolbarControllerTest : public CocoaTest {
- public:
-
- // Indexes that match the ordering returned by the private ToolbarController
- // |-toolbarViews| method.
- enum {
- kBackIndex, kForwardIndex, kReloadIndex, kHomeIndex,
- kWrenchIndex, kLocationIndex, kBrowserActionContainerViewIndex
- };
-
- ToolbarControllerTest() {
- Browser* browser = helper_.browser();
- CommandUpdater* updater = browser->command_updater();
- // The default state for the commands is true, set a couple to false to
- // ensure they get picked up correct on initialization
- updater->UpdateCommandEnabled(IDC_BACK, false);
- updater->UpdateCommandEnabled(IDC_FORWARD, false);
- resizeDelegate_.reset([[ViewResizerPong alloc] init]);
- bar_.reset(
- [[ToolbarController alloc] initWithModel:browser->toolbar_model()
- commands:browser->command_updater()
- profile:helper_.profile()
- browser:browser
- resizeDelegate:resizeDelegate_.get()]);
- EXPECT_TRUE([bar_ view]);
- NSView* parent = [test_window() contentView];
- [parent addSubview:[bar_ view]];
- }
-
- // Make sure the enabled state of the view is the same as the corresponding
- // command in the updater. The views are in the declaration order of outlets.
- void CompareState(CommandUpdater* updater, NSArray* views) {
- EXPECT_EQ(updater->IsCommandEnabled(IDC_BACK),
- [[views objectAtIndex:kBackIndex] isEnabled] ? true : false);
- EXPECT_EQ(updater->IsCommandEnabled(IDC_FORWARD),
- [[views objectAtIndex:kForwardIndex] isEnabled] ? true : false);
- EXPECT_EQ(updater->IsCommandEnabled(IDC_RELOAD),
- [[views objectAtIndex:kReloadIndex] isEnabled] ? true : false);
- EXPECT_EQ(updater->IsCommandEnabled(IDC_HOME),
- [[views objectAtIndex:kHomeIndex] isEnabled] ? true : false);
- }
-
- BrowserTestHelper helper_;
- scoped_nsobject<ViewResizerPong> resizeDelegate_;
- scoped_nsobject<ToolbarController> bar_;
-};
-
-TEST_VIEW(ToolbarControllerTest, [bar_ view])
-
-// Test the initial state that everything is sync'd up
-TEST_F(ToolbarControllerTest, InitialState) {
- CommandUpdater* updater = helper_.browser()->command_updater();
- CompareState(updater, [bar_ toolbarViews]);
-}
-
-// Make sure a "titlebar only" toolbar with location bar works.
-TEST_F(ToolbarControllerTest, TitlebarOnly) {
- NSView* view = [bar_ view];
-
- [bar_ setHasToolbar:NO hasLocationBar:YES];
- EXPECT_NE(view, [bar_ view]);
-
- // Simulate a popup going fullscreen and back by performing the reparenting
- // that happens during fullscreen transitions
- NSView* superview = [view superview];
- [view removeFromSuperview];
- [superview addSubview:view];
-
- [bar_ setHasToolbar:YES hasLocationBar:YES];
- EXPECT_EQ(view, [bar_ view]);
-
- // Leave it off to make sure that's fine
- [bar_ setHasToolbar:NO hasLocationBar:YES];
-}
-
-// Make sure it works in the completely undecorated case.
-TEST_F(ToolbarControllerTest, NoLocationBar) {
- NSView* view = [bar_ view];
-
- [bar_ setHasToolbar:NO hasLocationBar:NO];
- EXPECT_NE(view, [bar_ view]);
- EXPECT_TRUE([[bar_ view] isHidden]);
-
- // Simulate a popup going fullscreen and back by performing the reparenting
- // that happens during fullscreen transitions
- NSView* superview = [view superview];
- [view removeFromSuperview];
- [superview addSubview:view];
-}
-
-// Make some changes to the enabled state of a few of the buttons and ensure
-// that we're still in sync.
-TEST_F(ToolbarControllerTest, UpdateEnabledState) {
- CommandUpdater* updater = helper_.browser()->command_updater();
- EXPECT_FALSE(updater->IsCommandEnabled(IDC_BACK));
- EXPECT_FALSE(updater->IsCommandEnabled(IDC_FORWARD));
- updater->UpdateCommandEnabled(IDC_BACK, true);
- updater->UpdateCommandEnabled(IDC_FORWARD, true);
- CompareState(updater, [bar_ toolbarViews]);
-}
-
-// Focus the location bar and make sure that it's the first responder.
-TEST_F(ToolbarControllerTest, FocusLocation) {
- NSWindow* window = test_window();
- [window makeFirstResponder:[window contentView]];
- EXPECT_EQ([window firstResponder], [window contentView]);
- [bar_ focusLocationBar:YES];
- EXPECT_NE([window firstResponder], [window contentView]);
- NSView* locationBar = [[bar_ toolbarViews] objectAtIndex:kLocationIndex];
- EXPECT_EQ([window firstResponder], [(id)locationBar currentEditor]);
-}
-
-TEST_F(ToolbarControllerTest, LoadingState) {
- // In its initial state, the reload button has a tag of
- // IDC_RELOAD. When loading, it should be IDC_STOP.
- NSButton* reload = [[bar_ toolbarViews] objectAtIndex:kReloadIndex];
- EXPECT_EQ([reload tag], IDC_RELOAD);
- [bar_ setIsLoading:YES force:YES];
- EXPECT_EQ([reload tag], IDC_STOP);
- [bar_ setIsLoading:NO force:YES];
- EXPECT_EQ([reload tag], IDC_RELOAD);
-}
-
-// Check that toggling the state of the home button changes the visible
-// state of the home button and moves the other items accordingly.
-TEST_F(ToolbarControllerTest, ToggleHome) {
- PrefService* prefs = helper_.profile()->GetPrefs();
- bool showHome = prefs->GetBoolean(prefs::kShowHomeButton);
- NSView* homeButton = [[bar_ toolbarViews] objectAtIndex:kHomeIndex];
- EXPECT_EQ(showHome, ![homeButton isHidden]);
-
- NSView* locationBar = [[bar_ toolbarViews] objectAtIndex:kLocationIndex];
- NSRect originalLocationBarFrame = [locationBar frame];
-
- // Toggle the pref and make sure the button changed state and the other
- // views moved.
- prefs->SetBoolean(prefs::kShowHomeButton, !showHome);
- EXPECT_EQ(showHome, [homeButton isHidden]);
- EXPECT_NE(NSMinX(originalLocationBarFrame), NSMinX([locationBar frame]));
- EXPECT_NE(NSWidth(originalLocationBarFrame), NSWidth([locationBar frame]));
-}
-
-// Ensure that we don't toggle the buttons when we have a strip marked as not
-// having the full toolbar. Also ensure that the location bar doesn't change
-// size.
-TEST_F(ToolbarControllerTest, DontToggleWhenNoToolbar) {
- [bar_ setHasToolbar:NO hasLocationBar:YES];
- NSView* homeButton = [[bar_ toolbarViews] objectAtIndex:kHomeIndex];
- NSView* locationBar = [[bar_ toolbarViews] objectAtIndex:kLocationIndex];
- NSRect locationBarFrame = [locationBar frame];
- EXPECT_EQ([homeButton isHidden], YES);
- [bar_ showOptionalHomeButton];
- EXPECT_EQ([homeButton isHidden], YES);
- NSRect newLocationBarFrame = [locationBar frame];
- EXPECT_TRUE(NSEqualRects(locationBarFrame, newLocationBarFrame));
- newLocationBarFrame = [locationBar frame];
- EXPECT_TRUE(NSEqualRects(locationBarFrame, newLocationBarFrame));
-}
-
-TEST_F(ToolbarControllerTest, BookmarkBubblePoint) {
- const NSPoint starPoint = [bar_ bookmarkBubblePoint];
- const NSRect barFrame =
- [[bar_ view] convertRect:[[bar_ view] bounds] toView:nil];
-
- // Make sure the star is completely inside the location bar.
- EXPECT_TRUE(NSPointInRect(starPoint, barFrame));
-}
-
-TEST_F(ToolbarControllerTest, HoverButtonForEvent) {
- scoped_nsobject<HitView> view([[HitView alloc]
- initWithFrame:NSMakeRect(0,0,100,100)]);
- [bar_ setView:view];
- NSEvent* event = [NSEvent mouseEventWithType:NSMouseMoved
- location:NSMakePoint(10,10)
- modifierFlags:0
- timestamp:0
- windowNumber:0
- context:nil
- eventNumber:0
- clickCount:0
- pressure:0.0];
-
- // NOT a match.
- [view setHitTestReturn:bar_.get()];
- EXPECT_FALSE([bar_ hoverButtonForEvent:event]);
-
- // Not yet...
- scoped_nsobject<NSButton> button([[NSButton alloc] init]);
- [view setHitTestReturn:button];
- EXPECT_FALSE([bar_ hoverButtonForEvent:event]);
-
- // Now!
- scoped_nsobject<GradientButtonCell> cell([[GradientButtonCell alloc] init]);
- [button setCell:cell.get()];
- EXPECT_TRUE([bar_ hoverButtonForEvent:nil]);
-}
-
-} // namespace