Home | History | Annotate | Download | only in extensions
      1 // Copyright (c) 2010 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 #ifndef CHROME_BROWSER_EXTENSIONS_BROWSER_ACTION_TEST_UTIL_H_
      6 #define CHROME_BROWSER_EXTENSIONS_BROWSER_ACTION_TEST_UTIL_H_
      7 
      8 #include <string>
      9 
     10 #include "build/build_config.h"
     11 #include "ui/gfx/native_widget_types.h"
     12 
     13 class Browser;
     14 class ExtensionAction;
     15 
     16 namespace gfx {
     17 class Image;
     18 class Rect;
     19 class Size;
     20 }  // namespace gfx
     21 
     22 class BrowserActionTestUtil {
     23  public:
     24   explicit BrowserActionTestUtil(Browser* browser) : browser_(browser) {}
     25 
     26   // Returns the number of browser action buttons in the window toolbar.
     27   int NumberOfBrowserActions();
     28 
     29   // Returns the number of browser action currently visible.
     30   int VisibleBrowserActions();
     31 
     32   // Returns the ExtensionAction for the given index.
     33   ExtensionAction* GetExtensionAction(int index);
     34 
     35   // Inspects the extension popup for the action at the given index.
     36   void InspectPopup(int index);
     37 
     38   // Returns whether the browser action at |index| has a non-null icon. Note
     39   // that the icon is loaded asynchronously, in which case you can wait for it
     40   // to load by calling WaitForBrowserActionUpdated.
     41   bool HasIcon(int index);
     42 
     43   // Returns icon for the browser action at |index|.
     44   gfx::Image GetIcon(int index);
     45 
     46   // Simulates a user click on the browser action button at |index|.
     47   void Press(int index);
     48 
     49   // Returns the extension id of the extension at |index|.
     50   std::string GetExtensionId(int index);
     51 
     52   // Returns the current tooltip for the browser action button.
     53   std::string GetTooltip(int index);
     54 
     55   gfx::NativeView GetPopupNativeView();
     56 
     57   // Returns whether a browser action popup is being shown currently.
     58   bool HasPopup();
     59 
     60   // Returns the bounds of the current browser action popup.
     61   gfx::Rect GetPopupBounds();
     62 
     63   // Hides the given popup and returns whether the hide was successful.
     64   bool HidePopup();
     65 
     66   // Set how many icons should be visible.
     67   void SetIconVisibilityCount(size_t icons);
     68 
     69   // Returns the minimum allowed size of an extension popup.
     70   static gfx::Size GetMinPopupSize();
     71 
     72   // Returns the maximum allowed size of an extension popup.
     73   static gfx::Size GetMaxPopupSize();
     74 
     75  private:
     76   Browser* browser_;  // weak
     77 };
     78 
     79 #endif  // CHROME_BROWSER_EXTENSIONS_BROWSER_ACTION_TEST_UTIL_H_
     80