1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
// Copyright 2014 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 "chrome/browser/ui/toolbar/test_toolbar_actions_bar_helper.h"
#import "base/mac/scoped_nsobject.h"
#import "chrome/browser/ui/cocoa/extensions/browser_actions_container_view.h"
#import "chrome/browser/ui/cocoa/extensions/browser_actions_controller.h"
#import "chrome/browser/ui/cocoa/cocoa_test_helper.h"
namespace {
// The cocoa implementation of the TestToolbarActionsBarHelper, which creates
// (and owns) a BrowserActionsController and BrowserActionsContainerView for
// testing purposes.
class TestToolbarActionsBarHelperCocoa : public TestToolbarActionsBarHelper {
public:
TestToolbarActionsBarHelperCocoa(Browser* browser,
TestToolbarActionsBarHelperCocoa* mainBar);
~TestToolbarActionsBarHelperCocoa() override;
private:
// TestToolbarActionsBarHelper:
ToolbarActionsBar* GetToolbarActionsBar() override;
// The owned BrowserActionsContainerView and BrowserActionsController; the
// mac implementation of the ToolbarActionsBar delegate and view.
base::scoped_nsobject<BrowserActionsContainerView> containerView_;
base::scoped_nsobject<BrowserActionsController> controller_;
DISALLOW_COPY_AND_ASSIGN(TestToolbarActionsBarHelperCocoa);
};
TestToolbarActionsBarHelperCocoa::TestToolbarActionsBarHelperCocoa(
Browser* browser,
TestToolbarActionsBarHelperCocoa* mainBar) {
// Make sure that Cocoa has been bootstrapped.
CocoaTest::BootstrapCocoa();
containerView_.reset([[BrowserActionsContainerView alloc]
initWithFrame:NSMakeRect(0, 0, 0, 15)]);
BrowserActionsController* mainController =
mainBar ? mainBar->controller_.get() : nil;
controller_.reset([[BrowserActionsController alloc]
initWithBrowser:browser
containerView:containerView_.get()
mainController:mainController]);
}
TestToolbarActionsBarHelperCocoa::~TestToolbarActionsBarHelperCocoa() {}
ToolbarActionsBar* TestToolbarActionsBarHelperCocoa::GetToolbarActionsBar() {
return [controller_ toolbarActionsBar];
}
} // namespace
scoped_ptr<TestToolbarActionsBarHelper> TestToolbarActionsBarHelper::Create(
Browser* browser,
TestToolbarActionsBarHelper* main_bar) {
return make_scoped_ptr(new TestToolbarActionsBarHelperCocoa(
browser,
static_cast<TestToolbarActionsBarHelperCocoa*>(main_bar)));
}
|