Home | History | Annotate | Download | only in toolbar
      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 
     21 BrowserActionsContainer* GetContainer(Browser* browser) {
     22   return browser->window()->GetBrowserWindowTesting()->GetToolbarView()->
     23       browser_actions();
     24 }
     25 
     26 }  // namespace
     27 
     28 int BrowserActionTestUtil::NumberOfBrowserActions() {
     29   return GetContainer(browser_)->num_browser_actions();
     30 }
     31 
     32 int BrowserActionTestUtil::VisibleBrowserActions() {
     33   return GetContainer(browser_)->VisibleBrowserActions();
     34 }
     35 
     36 ExtensionAction* BrowserActionTestUtil::GetExtensionAction(int index) {
     37   return extensions::ExtensionActionManager::Get(browser_->profile())->
     38       GetBrowserAction(*GetContainer(browser_)->GetBrowserActionViewAt(index)->
     39                        button()->extension());
     40 }
     41 
     42 void BrowserActionTestUtil::InspectPopup(int index) {
     43   GetContainer(browser_)->InspectPopup(GetExtensionAction(index));
     44 }
     45 
     46 bool BrowserActionTestUtil::HasIcon(int index) {
     47   return !GetContainer(browser_)->GetBrowserActionViewAt(index)->button()->
     48       GetImage(views::Button::STATE_NORMAL).isNull();
     49 }
     50 
     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 
     57 void BrowserActionTestUtil::Press(int index) {
     58   GetContainer(browser_)->TestExecuteBrowserAction(index);
     59 }
     60 
     61 std::string BrowserActionTestUtil::GetExtensionId(int index) {
     62   BrowserActionButton* button =
     63       GetContainer(browser_)->GetBrowserActionViewAt(index)->button();
     64   return button->extension()->id();
     65 }
     66 
     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 
     74 gfx::NativeView BrowserActionTestUtil::GetPopupNativeView() {
     75   return GetContainer(browser_)->TestGetPopup()->GetWidget()->GetNativeView();
     76 }
     77 
     78 bool BrowserActionTestUtil::HasPopup() {
     79   return GetContainer(browser_)->TestGetPopup() != NULL;
     80 }
     81 
     82 gfx::Rect BrowserActionTestUtil::GetPopupBounds() {
     83   return GetContainer(browser_)->TestGetPopup()->bounds();
     84 }
     85 
     86 bool BrowserActionTestUtil::HidePopup() {
     87   GetContainer(browser_)->HidePopup();
     88   return !HasPopup();
     89 }
     90 
     91 void BrowserActionTestUtil::SetIconVisibilityCount(size_t icons) {
     92   GetContainer(browser_)->TestSetIconVisibilityCount(icons);
     93 }
     94 
     95 gfx::Size BrowserActionTestUtil::GetMinPopupSize() {
     96   return gfx::Size(ExtensionPopup::kMinWidth, ExtensionPopup::kMinHeight);
     97 }
     98 
     99 gfx::Size BrowserActionTestUtil::GetMaxPopupSize() {
    100   return gfx::Size(ExtensionPopup::kMaxWidth, ExtensionPopup::kMaxHeight);
    101 }
    102