browser_action_test_util_views.cc revision f2477e01787aa58f445919b809d89e252beef54f
116c440a377b7ec8b722a2e2c7c864f75c95bd305Ted Kremenek// Copyright 2013 The Chromium Authors. All rights reserved. 216c440a377b7ec8b722a2e2c7c864f75c95bd305Ted Kremenek// Use of this source code is governed by a BSD-style license that can be 316c440a377b7ec8b722a2e2c7c864f75c95bd305Ted Kremenek// found in the LICENSE file. 416c440a377b7ec8b722a2e2c7c864f75c95bd305Ted Kremenek 516c440a377b7ec8b722a2e2c7c864f75c95bd305Ted Kremenek#include "chrome/browser/extensions/browser_action_test_util.h" 616c440a377b7ec8b722a2e2c7c864f75c95bd305Ted Kremenek 716c440a377b7ec8b722a2e2c7c864f75c95bd305Ted Kremenek#include "base/strings/utf_string_conversions.h" 816c440a377b7ec8b722a2e2c7c864f75c95bd305Ted Kremenek#include "chrome/browser/extensions/extension_action_manager.h" 916c440a377b7ec8b722a2e2c7c864f75c95bd305Ted Kremenek#include "chrome/browser/ui/browser.h" 102e331b938b38057e333fab0ba841130ea8467794Douglas Gregor#include "chrome/browser/ui/browser_window.h" 112e331b938b38057e333fab0ba841130ea8467794Douglas Gregor#include "chrome/browser/ui/views/extensions/extension_popup.h" 122e331b938b38057e333fab0ba841130ea8467794Douglas Gregor#include "chrome/browser/ui/views/toolbar/browser_action_view.h" 1316c440a377b7ec8b722a2e2c7c864f75c95bd305Ted Kremenek#include "chrome/browser/ui/views/toolbar/browser_actions_container.h" 1416c440a377b7ec8b722a2e2c7c864f75c95bd305Ted Kremenek#include "chrome/browser/ui/views/toolbar/toolbar_view.h" 1516c440a377b7ec8b722a2e2c7c864f75c95bd305Ted Kremenek#include "ui/gfx/image/image.h" 160a90d32523bfe5fa63e11b648686c9699f786d15Ted Kremenek#include "ui/gfx/rect.h" 1716c440a377b7ec8b722a2e2c7c864f75c95bd305Ted Kremenek#include "ui/gfx/size.h" 18ed122735639d83c10f18c28c7fd117bfcd0f62cbTed Kremenek 197eaa8ae8692c5cd3eed8cb334fe5346470522091Douglas Gregornamespace { 2016c440a377b7ec8b722a2e2c7c864f75c95bd305Ted Kremenek 216931900f43cea558c6974075256c07728dbfecc6Douglas GregorBrowserActionsContainer* GetContainer(Browser* browser) { 22283cae37b03047c14ef918503bc46b08405c3b69Douglas Gregor BrowserActionsContainer* container = 23283cae37b03047c14ef918503bc46b08405c3b69Douglas Gregor browser->window()->GetBrowserWindowTesting()->GetToolbarView()-> 241f60d9ea523fc321d811fe880ba9a1ec74fa8f9bDouglas Gregor browser_actions(); 25007a7c9d8dcdb2e9cd94b6075108bfc4c90e6ccdTed Kremenek return container; 26edc8aa68ef91aeea686c5aadf64ef902c38318ddTed Kremenek} 2716c440a377b7ec8b722a2e2c7c864f75c95bd305Ted Kremenek 2816c440a377b7ec8b722a2e2c7c864f75c95bd305Ted Kremenek} // namespace 291f60d9ea523fc321d811fe880ba9a1ec74fa8f9bDouglas Gregor 3016c440a377b7ec8b722a2e2c7c864f75c95bd305Ted Kremenekint BrowserActionTestUtil::NumberOfBrowserActions() { 315bfb8c128c2ac8eb4032afc180cdc400a0f953caDouglas Gregor return GetContainer(browser_)->num_browser_actions(); 325bfb8c128c2ac8eb4032afc180cdc400a0f953caDouglas Gregor} 335bfb8c128c2ac8eb4032afc180cdc400a0f953caDouglas Gregor 345bfb8c128c2ac8eb4032afc180cdc400a0f953caDouglas Gregorint BrowserActionTestUtil::VisibleBrowserActions() { 3516c440a377b7ec8b722a2e2c7c864f75c95bd305Ted Kremenek return GetContainer(browser_)->VisibleBrowserActions(); 3616c440a377b7ec8b722a2e2c7c864f75c95bd305Ted Kremenek} 37e77f443dbca8cdc23e5aa94a2653367e4a7cbe47Ted Kremenek 38e77f443dbca8cdc23e5aa94a2653367e4a7cbe47Ted KremenekExtensionAction* BrowserActionTestUtil::GetExtensionAction(int index) { 39e77f443dbca8cdc23e5aa94a2653367e4a7cbe47Ted Kremenek return extensions::ExtensionActionManager::Get(browser_->profile())-> 40e77f443dbca8cdc23e5aa94a2653367e4a7cbe47Ted Kremenek GetBrowserAction(*GetContainer(browser_)->GetBrowserActionViewAt(index)-> 41387475d0c18aaeb022108de9d33b6c9fb7998843Sean Hunt button()->extension()); 42387475d0c18aaeb022108de9d33b6c9fb7998843Sean Hunt} 43387475d0c18aaeb022108de9d33b6c9fb7998843Sean Hunt 44e77f443dbca8cdc23e5aa94a2653367e4a7cbe47Ted Kremenekbool BrowserActionTestUtil::HasIcon(int index) { 45e77f443dbca8cdc23e5aa94a2653367e4a7cbe47Ted Kremenek return GetContainer(browser_)->GetBrowserActionViewAt(index)->button()-> 46e77f443dbca8cdc23e5aa94a2653367e4a7cbe47Ted Kremenek HasIcon(); 47e77f443dbca8cdc23e5aa94a2653367e4a7cbe47Ted Kremenek} 48e77f443dbca8cdc23e5aa94a2653367e4a7cbe47Ted Kremenek 49a60ed47da13393796d8552b9fdca12abbb3eea42Ted Kremenekgfx::Image BrowserActionTestUtil::GetIcon(int index) { 50a60ed47da13393796d8552b9fdca12abbb3eea42Ted Kremenek gfx::ImageSkia icon = GetContainer(browser_)->GetBrowserActionViewAt(index)-> 51e77f443dbca8cdc23e5aa94a2653367e4a7cbe47Ted Kremenek button()->GetIconForTest(); 52e77f443dbca8cdc23e5aa94a2653367e4a7cbe47Ted Kremenek return gfx::Image(icon); 53e77f443dbca8cdc23e5aa94a2653367e4a7cbe47Ted Kremenek} 54e77f443dbca8cdc23e5aa94a2653367e4a7cbe47Ted Kremenek 55e77f443dbca8cdc23e5aa94a2653367e4a7cbe47Ted Kremenekvoid BrowserActionTestUtil::Press(int index) { 56a60ed47da13393796d8552b9fdca12abbb3eea42Ted Kremenek GetContainer(browser_)->TestExecuteBrowserAction(index); 57007a7c9d8dcdb2e9cd94b6075108bfc4c90e6ccdTed Kremenek} 5854d67caeee4fdce81f07163832f1163d5f2af5d2Daniel Dunbar 59007a7c9d8dcdb2e9cd94b6075108bfc4c90e6ccdTed Kremenekstd::string BrowserActionTestUtil::GetExtensionId(int index) { 60dec0984fce504a39a7f085774fb67cfd9957be58Jeffrey Yasskin BrowserActionButton* button = 61007a7c9d8dcdb2e9cd94b6075108bfc4c90e6ccdTed Kremenek GetContainer(browser_)->GetBrowserActionViewAt(index)->button(); 625bfb8c128c2ac8eb4032afc180cdc400a0f953caDouglas Gregor return button->extension()->id(); 63edc8aa68ef91aeea686c5aadf64ef902c38318ddTed Kremenek} 64edc8aa68ef91aeea686c5aadf64ef902c38318ddTed Kremenek 65a60ed47da13393796d8552b9fdca12abbb3eea42Ted Kremenekstd::string BrowserActionTestUtil::GetTooltip(int index) { 66a60ed47da13393796d8552b9fdca12abbb3eea42Ted Kremenek string16 text; 6754d67caeee4fdce81f07163832f1163d5f2af5d2Daniel Dunbar GetContainer(browser_)->GetBrowserActionViewAt(index)->button()-> 6897b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor GetTooltipText(gfx::Point(), &text); 6997b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor return UTF16ToUTF8(text); 7097b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor} 7197b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor 7297b9872d5775446cb8aca1380e437649fe848d91Douglas Gregorbool BrowserActionTestUtil::HasPopup() { 7397b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor return GetContainer(browser_)->TestGetPopup() != NULL; 7497b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor} 7597b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor 7697b9872d5775446cb8aca1380e437649fe848d91Douglas Gregorgfx::Rect BrowserActionTestUtil::GetPopupBounds() { 7797b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor return GetContainer(browser_)->TestGetPopup()->bounds(); 7897b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor} 7997b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor 8097b9872d5775446cb8aca1380e437649fe848d91Douglas Gregorbool BrowserActionTestUtil::HidePopup() { 8197b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor BrowserActionsContainer* container = GetContainer(browser_); 8297b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor container->HidePopup(); 8397b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor return !HasPopup(); 8497b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor} 8597b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor 8697b9872d5775446cb8aca1380e437649fe848d91Douglas Gregorvoid BrowserActionTestUtil::SetIconVisibilityCount(size_t icons) { 8797b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor GetContainer(browser_)->TestSetIconVisibilityCount(icons); 8897b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor} 8997b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor 9097b9872d5775446cb8aca1380e437649fe848d91Douglas Gregorgfx::Size BrowserActionTestUtil::GetMinPopupSize() { 9197b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor return gfx::Size(ExtensionPopup::kMinWidth, ExtensionPopup::kMinHeight); 9297b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor} 9397b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor 9497b9872d5775446cb8aca1380e437649fe848d91Douglas Gregorgfx::Size BrowserActionTestUtil::GetMaxPopupSize() { 9597b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor return gfx::Size(ExtensionPopup::kMaxWidth, ExtensionPopup::kMaxHeight); 9697b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor} 9797b9872d5775446cb8aca1380e437649fe848d91Douglas Gregor