browser_action_test_util_views.cc revision a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7
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
19namespace {
20
21BrowserActionsContainer* GetContainer(Browser* browser) {
22  BrowserActionsContainer* container =
23      browser->window()->GetBrowserWindowTesting()->GetToolbarView()->
24          browser_actions();
25  return container;
26}
27
28}  // namespace
29
30int BrowserActionTestUtil::NumberOfBrowserActions() {
31  return GetContainer(browser_)->num_browser_actions();
32}
33
34int BrowserActionTestUtil::VisibleBrowserActions() {
35  return GetContainer(browser_)->VisibleBrowserActions();
36}
37
38ExtensionAction* BrowserActionTestUtil::GetExtensionAction(int index) {
39  return extensions::ExtensionActionManager::Get(browser_->profile())->
40      GetBrowserAction(*GetContainer(browser_)->GetBrowserActionViewAt(index)->
41                       button()->extension());
42}
43
44bool BrowserActionTestUtil::HasIcon(int index) {
45  return GetContainer(browser_)->GetBrowserActionViewAt(index)->button()->
46      HasIcon();
47}
48
49gfx::Image BrowserActionTestUtil::GetIcon(int index) {
50  gfx::ImageSkia icon = GetContainer(browser_)->GetBrowserActionViewAt(index)->
51      button()->GetIconForTest();
52  return gfx::Image(icon);
53}
54
55void BrowserActionTestUtil::Press(int index) {
56  GetContainer(browser_)->TestExecuteBrowserAction(index);
57}
58
59std::string BrowserActionTestUtil::GetExtensionId(int index) {
60  BrowserActionButton* button =
61      GetContainer(browser_)->GetBrowserActionViewAt(index)->button();
62  return button->extension()->id();
63}
64
65std::string BrowserActionTestUtil::GetTooltip(int index) {
66  base::string16 text;
67  GetContainer(browser_)->GetBrowserActionViewAt(index)->button()->
68    GetTooltipText(gfx::Point(), &text);
69  return UTF16ToUTF8(text);
70}
71
72bool BrowserActionTestUtil::HasPopup() {
73  return GetContainer(browser_)->TestGetPopup() != NULL;
74}
75
76gfx::Rect BrowserActionTestUtil::GetPopupBounds() {
77  return GetContainer(browser_)->TestGetPopup()->bounds();
78}
79
80bool BrowserActionTestUtil::HidePopup() {
81  BrowserActionsContainer* container = GetContainer(browser_);
82  container->HidePopup();
83  return !HasPopup();
84}
85
86void BrowserActionTestUtil::SetIconVisibilityCount(size_t icons) {
87  GetContainer(browser_)->TestSetIconVisibilityCount(icons);
88}
89
90gfx::Size BrowserActionTestUtil::GetMinPopupSize() {
91  return gfx::Size(ExtensionPopup::kMinWidth, ExtensionPopup::kMinHeight);
92}
93
94gfx::Size BrowserActionTestUtil::GetMaxPopupSize() {
95  return gfx::Size(ExtensionPopup::kMaxWidth, ExtensionPopup::kMaxHeight);
96}
97