• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "chrome/browser/extensions/browser_action_test_util.h"
6 
7 #include "base/strings/utf_string_conversions.h"
8 #include "chrome/browser/extensions/extension_action_manager.h"
9 #include "chrome/browser/ui/browser.h"
10 #include "chrome/browser/ui/browser_window.h"
11 #include "chrome/browser/ui/views/extensions/extension_popup.h"
12 #include "chrome/browser/ui/views/toolbar/browser_action_view.h"
13 #include "chrome/browser/ui/views/toolbar/browser_actions_container.h"
14 #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
15 #include "ui/gfx/image/image.h"
16 #include "ui/gfx/rect.h"
17 #include "ui/gfx/size.h"
18 
19 namespace {
20 
GetContainer(Browser * browser)21 BrowserActionsContainer* GetContainer(Browser* browser) {
22   return browser->window()->GetBrowserWindowTesting()->GetToolbarView()->
23       browser_actions();
24 }
25 
26 }  // namespace
27 
NumberOfBrowserActions()28 int BrowserActionTestUtil::NumberOfBrowserActions() {
29   return GetContainer(browser_)->num_browser_actions();
30 }
31 
VisibleBrowserActions()32 int BrowserActionTestUtil::VisibleBrowserActions() {
33   return GetContainer(browser_)->VisibleBrowserActions();
34 }
35 
GetExtensionAction(int index)36 ExtensionAction* BrowserActionTestUtil::GetExtensionAction(int index) {
37   return extensions::ExtensionActionManager::Get(browser_->profile())->
38       GetBrowserAction(*GetContainer(browser_)->GetBrowserActionViewAt(index)->
39                        button()->extension());
40 }
41 
InspectPopup(int index)42 void BrowserActionTestUtil::InspectPopup(int index) {
43   GetContainer(browser_)->InspectPopup(GetExtensionAction(index));
44 }
45 
HasIcon(int index)46 bool BrowserActionTestUtil::HasIcon(int index) {
47   return !GetContainer(browser_)->GetBrowserActionViewAt(index)->button()->
48       GetImage(views::Button::STATE_NORMAL).isNull();
49 }
50 
GetIcon(int index)51 gfx::Image BrowserActionTestUtil::GetIcon(int index) {
52   gfx::ImageSkia icon = GetContainer(browser_)->GetBrowserActionViewAt(index)->
53       button()->GetIconForTest();
54   return gfx::Image(icon);
55 }
56 
Press(int index)57 void BrowserActionTestUtil::Press(int index) {
58   GetContainer(browser_)->TestExecuteBrowserAction(index);
59 }
60 
GetExtensionId(int index)61 std::string BrowserActionTestUtil::GetExtensionId(int index) {
62   BrowserActionButton* button =
63       GetContainer(browser_)->GetBrowserActionViewAt(index)->button();
64   return button->extension()->id();
65 }
66 
GetTooltip(int index)67 std::string BrowserActionTestUtil::GetTooltip(int index) {
68   base::string16 text;
69   GetContainer(browser_)->GetBrowserActionViewAt(index)->button()->
70     GetTooltipText(gfx::Point(), &text);
71   return base::UTF16ToUTF8(text);
72 }
73 
GetPopupNativeView()74 gfx::NativeView BrowserActionTestUtil::GetPopupNativeView() {
75   return GetContainer(browser_)->TestGetPopup()->GetWidget()->GetNativeView();
76 }
77 
HasPopup()78 bool BrowserActionTestUtil::HasPopup() {
79   return GetContainer(browser_)->TestGetPopup() != NULL;
80 }
81 
GetPopupBounds()82 gfx::Rect BrowserActionTestUtil::GetPopupBounds() {
83   return GetContainer(browser_)->TestGetPopup()->bounds();
84 }
85 
HidePopup()86 bool BrowserActionTestUtil::HidePopup() {
87   GetContainer(browser_)->HidePopup();
88   return !HasPopup();
89 }
90 
SetIconVisibilityCount(size_t icons)91 void BrowserActionTestUtil::SetIconVisibilityCount(size_t icons) {
92   GetContainer(browser_)->TestSetIconVisibilityCount(icons);
93 }
94 
GetMinPopupSize()95 gfx::Size BrowserActionTestUtil::GetMinPopupSize() {
96   return gfx::Size(ExtensionPopup::kMinWidth, ExtensionPopup::kMinHeight);
97 }
98 
GetMaxPopupSize()99 gfx::Size BrowserActionTestUtil::GetMaxPopupSize() {
100   return gfx::Size(ExtensionPopup::kMaxWidth, ExtensionPopup::kMaxHeight);
101 }
102