root/chrome/browser/ui/views/toolbar/browser_action_test_util_views.cc

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. GetContainer
  2. NumberOfBrowserActions
  3. VisibleBrowserActions
  4. GetExtensionAction
  5. HasIcon
  6. GetIcon
  7. Press
  8. GetExtensionId
  9. GetTooltip
  10. HasPopup
  11. GetPopupBounds
  12. HidePopup
  13. SetIconVisibilityCount
  14. GetMinPopupSize
  15. GetMaxPopupSize

// Copyright 2013 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/extensions/browser_action_test_util.h"

#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/extensions/extension_action_manager.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/views/extensions/extension_popup.h"
#include "chrome/browser/ui/views/toolbar/browser_action_view.h"
#include "chrome/browser/ui/views/toolbar/browser_actions_container.h"
#include "chrome/browser/ui/views/toolbar/toolbar_view.h"
#include "ui/gfx/image/image.h"
#include "ui/gfx/rect.h"
#include "ui/gfx/size.h"

namespace {

BrowserActionsContainer* GetContainer(Browser* browser) {
  BrowserActionsContainer* container =
      browser->window()->GetBrowserWindowTesting()->GetToolbarView()->
          browser_actions();
  return container;
}

}  // namespace

int BrowserActionTestUtil::NumberOfBrowserActions() {
  return GetContainer(browser_)->num_browser_actions();
}

int BrowserActionTestUtil::VisibleBrowserActions() {
  return GetContainer(browser_)->VisibleBrowserActions();
}

ExtensionAction* BrowserActionTestUtil::GetExtensionAction(int index) {
  return extensions::ExtensionActionManager::Get(browser_->profile())->
      GetBrowserAction(*GetContainer(browser_)->GetBrowserActionViewAt(index)->
                       button()->extension());
}

bool BrowserActionTestUtil::HasIcon(int index) {
  return GetContainer(browser_)->GetBrowserActionViewAt(index)->button()->
      HasIcon();
}

gfx::Image BrowserActionTestUtil::GetIcon(int index) {
  gfx::ImageSkia icon = GetContainer(browser_)->GetBrowserActionViewAt(index)->
      button()->GetIconForTest();
  return gfx::Image(icon);
}

void BrowserActionTestUtil::Press(int index) {
  GetContainer(browser_)->TestExecuteBrowserAction(index);
}

std::string BrowserActionTestUtil::GetExtensionId(int index) {
  BrowserActionButton* button =
      GetContainer(browser_)->GetBrowserActionViewAt(index)->button();
  return button->extension()->id();
}

std::string BrowserActionTestUtil::GetTooltip(int index) {
  base::string16 text;
  GetContainer(browser_)->GetBrowserActionViewAt(index)->button()->
    GetTooltipText(gfx::Point(), &text);
  return base::UTF16ToUTF8(text);
}

bool BrowserActionTestUtil::HasPopup() {
  return GetContainer(browser_)->TestGetPopup() != NULL;
}

gfx::Rect BrowserActionTestUtil::GetPopupBounds() {
  return GetContainer(browser_)->TestGetPopup()->bounds();
}

bool BrowserActionTestUtil::HidePopup() {
  BrowserActionsContainer* container = GetContainer(browser_);
  container->HidePopup();
  return !HasPopup();
}

void BrowserActionTestUtil::SetIconVisibilityCount(size_t icons) {
  GetContainer(browser_)->TestSetIconVisibilityCount(icons);
}

gfx::Size BrowserActionTestUtil::GetMinPopupSize() {
  return gfx::Size(ExtensionPopup::kMinWidth, ExtensionPopup::kMinHeight);
}

gfx::Size BrowserActionTestUtil::GetMaxPopupSize() {
  return gfx::Size(ExtensionPopup::kMaxWidth, ExtensionPopup::kMaxHeight);
}

/* [<][>][^][v][top][bottom][index][help] */