// Copyright (c) 2010 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.
#ifndef CHROME_BROWSER_EXTENSIONS_BROWSER_ACTION_TEST_UTIL_H_
#define CHROME_BROWSER_EXTENSIONS_BROWSER_ACTION_TEST_UTIL_H_
#pragma once
#include <string>
#include "build/build_config.h"
class Browser;
namespace gfx {
class Rect;
class Size;
} // namespace gfx
class BrowserActionTestUtil {
public:
explicit BrowserActionTestUtil(Browser* browser) : browser_(browser) {}
// Returns the number of browser action buttons in the window toolbar.
int NumberOfBrowserActions();
// Returns the number of browser action currently visible.
int VisibleBrowserActions();
#if defined(TOOLKIT_VIEWS)
// Waits for a browser action at |index| to get updated.
void WaitForBrowserActionUpdated(int index);
#endif
// Returns whether the browser action at |index| has a non-null icon. Note
// that the icon is loaded asynchronously, in which case you can wait for it
// to load by calling WaitForBrowserActionUpdated.
bool HasIcon(int index);
// Simulates a user click on the browser action button at |index|.
void Press(int index);
// Returns the extension id of the extension at |index|.
std::string GetExtensionId(int index);
// Returns the current tooltip for the browser action button.
std::string GetTooltip(int index);
// Returns whether a browser action popup is being shown currently.
bool HasPopup();
// Returns the bounds of the current browser action popup.
gfx::Rect GetPopupBounds();
// Hides the given popup and returns whether the hide was successful.
bool HidePopup();
// Set how many icons should be visible.
void SetIconVisibilityCount(size_t icons);
// Returns the minimum allowed size of an extension popup.
static gfx::Size GetMinPopupSize();
// Returns the maximum allowed size of an extension popup.
static gfx::Size GetMaxPopupSize();
private:
Browser* browser_; // weak
};
#endif // CHROME_BROWSER_EXTENSIONS_BROWSER_ACTION_TEST_UTIL_H_