| Index: chrome/browser/ui/cocoa/wrench_menu_controller_unittest.mm
|
| ===================================================================
|
| --- chrome/browser/ui/cocoa/wrench_menu_controller_unittest.mm (revision 71447)
|
| +++ chrome/browser/ui/cocoa/wrench_menu_controller_unittest.mm (working copy)
|
| @@ -1,84 +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.
|
| -
|
| -#include "base/scoped_nsobject.h"
|
| -#include "chrome/app/chrome_command_ids.h"
|
| -#include "chrome/browser/ui/cocoa/browser_test_helper.h"
|
| -#import "chrome/browser/ui/cocoa/cocoa_test_helper.h"
|
| -#import "chrome/browser/ui/cocoa/toolbar_controller.h"
|
| -#import "chrome/browser/ui/cocoa/wrench_menu_controller.h"
|
| -#import "chrome/browser/ui/cocoa/view_resizer_pong.h"
|
| -#include "chrome/browser/ui/toolbar/wrench_menu_model.h"
|
| -#include "testing/gmock/include/gmock/gmock.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -#include "testing/platform_test.h"
|
| -
|
| -// Override to avoid dealing with run loops in the testing environment.
|
| -@implementation WrenchMenuController (UnitTesting)
|
| -- (void)dispatchCommandInternal:(NSInteger)tag {
|
| - [self wrenchMenuModel]->ExecuteCommand(tag);
|
| -}
|
| -@end
|
| -
|
| -
|
| -namespace {
|
| -
|
| -class MockWrenchMenuModel : public WrenchMenuModel {
|
| - public:
|
| - MockWrenchMenuModel() : WrenchMenuModel() {}
|
| - ~MockWrenchMenuModel() {
|
| - // This dirty, ugly hack gets around a bug in the test. In
|
| - // ~WrenchMenuModel(), there's a call to TabstripModel::RemoveObserver(this)
|
| - // which mysteriously leads to this crash: http://crbug.com/49206 . It
|
| - // seems that the vector of observers is getting hosed somewhere between
|
| - // |-[ToolbarController dealloc]| and ~MockWrenchMenuModel(). This line
|
| - // short-circuits the parent destructor to avoid this crash.
|
| - tabstrip_model_ = NULL;
|
| - }
|
| - MOCK_METHOD1(ExecuteCommand, void(int command_id));
|
| -};
|
| -
|
| -class WrenchMenuControllerTest : public CocoaTest {
|
| - public:
|
| - void SetUp() {
|
| - Browser* browser = helper_.browser();
|
| - resize_delegate_.reset([[ViewResizerPong alloc] init]);
|
| - toolbar_controller_.reset(
|
| - [[ToolbarController alloc] initWithModel:browser->toolbar_model()
|
| - commands:browser->command_updater()
|
| - profile:helper_.profile()
|
| - browser:browser
|
| - resizeDelegate:resize_delegate_.get()]);
|
| - EXPECT_TRUE([toolbar_controller_ view]);
|
| - NSView* parent = [test_window() contentView];
|
| - [parent addSubview:[toolbar_controller_ view]];
|
| - }
|
| -
|
| - WrenchMenuController* controller() {
|
| - return [toolbar_controller_ wrenchMenuController];
|
| - }
|
| -
|
| - BrowserTestHelper helper_;
|
| - scoped_nsobject<ViewResizerPong> resize_delegate_;
|
| - MockWrenchMenuModel fake_model_;
|
| - scoped_nsobject<ToolbarController> toolbar_controller_;
|
| -};
|
| -
|
| -TEST_F(WrenchMenuControllerTest, Initialized) {
|
| - EXPECT_TRUE([controller() menu]);
|
| - EXPECT_GE([[controller() menu] numberOfItems], 5);
|
| -}
|
| -
|
| -TEST_F(WrenchMenuControllerTest, DispatchSimple) {
|
| - scoped_nsobject<NSButton> button([[NSButton alloc] init]);
|
| - [button setTag:IDC_ZOOM_PLUS];
|
| -
|
| - // Set fake model to test dispatching.
|
| - EXPECT_CALL(fake_model_, ExecuteCommand(IDC_ZOOM_PLUS));
|
| - [controller() setModel:&fake_model_];
|
| -
|
| - [controller() dispatchWrenchMenuCommand:button.get()];
|
| -}
|
| -
|
| -} // namespace
|
|
|