summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/browser_action_apitest.cc
diff options
context:
space:
mode:
authorkkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-14 21:42:57 +0000
committerkkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-14 21:42:57 +0000
commit51a9ec43d16c0c7decd9ae286ca15359a709a4af (patch)
treea24af3f3067a2a67ca6649ecc531a35ba9b6042c /chrome/browser/extensions/browser_action_apitest.cc
parent46dd2f69b4df18364e8a5fc22a63a8e1ec3f5419 (diff)
downloadchromium_src-51a9ec43d16c0c7decd9ae286ca15359a709a4af.zip
chromium_src-51a9ec43d16c0c7decd9ae286ca15359a709a4af.tar.gz
chromium_src-51a9ec43d16c0c7decd9ae286ca15359a709a4af.tar.bz2
Refactor browser action apitest and port for mac.
BUG=29709 TEST=none Review URL: http://codereview.chromium.org/443013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34498 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/browser_action_apitest.cc')
-rw-r--r--chrome/browser/extensions/browser_action_apitest.cc158
1 files changed, 23 insertions, 135 deletions
diff --git a/chrome/browser/extensions/browser_action_apitest.cc b/chrome/browser/extensions/browser_action_apitest.cc
index db9a9d2..30bcd50 100644
--- a/chrome/browser/extensions/browser_action_apitest.cc
+++ b/chrome/browser/extensions/browser_action_apitest.cc
@@ -10,6 +10,7 @@
#include "chrome/browser/browser.h"
#include "chrome/browser/browser_window.h"
+#include "chrome/browser/extensions/browser_action_test_util.h"
#include "chrome/browser/extensions/extension_apitest.h"
#include "chrome/browser/extensions/extension_browser_event_router.h"
#include "chrome/browser/extensions/extension_tabs_module.h"
@@ -23,137 +24,24 @@
#include "chrome/browser/views/browser_actions_container.h"
#include "chrome/browser/views/extensions/extension_popup.h"
#include "chrome/browser/views/toolbar_view.h"
-#elif defined(OS_LINUX)
-#include "chrome/browser/gtk/view_id_util.h"
#endif
-class BrowserActionTest : public ExtensionApiTest {
+class BrowserActionApiTest : public ExtensionApiTest {
public:
- BrowserActionTest() { }
- virtual ~BrowserActionTest() { }
+ BrowserActionApiTest() {}
+ virtual ~BrowserActionApiTest() {}
- int NumberOfBrowserActions() {
- int rv = -1;
-
-#if defined(OS_WIN) || defined(TOOLKIT_VIEWS)
- BrowserActionsContainer* browser_actions =
- browser()->window()->GetBrowserWindowTesting()->GetToolbarView()->
- browser_actions();
- if (browser_actions)
- rv = browser_actions->num_browser_actions();
-#elif defined(OS_LINUX)
- GtkWidget* toolbar = ViewIDUtil::GetWidget(
- GTK_WIDGET(browser()->window()->GetNativeHandle()),
- VIEW_ID_BROWSER_ACTION_TOOLBAR);
-
- if (toolbar) {
- GList* children = gtk_container_get_children(GTK_CONTAINER(toolbar));
- rv = g_list_length(children);
- g_list_free(children);
- }
-#endif
-
- EXPECT_NE(-1, rv);
- return rv;
- }
-
- bool IsIconNull(int index) {
-#if defined(OS_WIN) || defined(TOOLKIT_VIEWS)
- BrowserActionsContainer* browser_actions =
- browser()->window()->GetBrowserWindowTesting()->GetToolbarView()->
- browser_actions();
- // We can't ASSERT_TRUE in non-void functions.
- if (browser_actions) {
- return browser_actions->GetBrowserActionViewAt(index)->button()->icon().
- empty();
- } else {
- EXPECT_TRUE(false);
- }
-#elif defined(OS_LINUX)
- GtkWidget* button = GetButton(index);
- if (button)
- return gtk_button_get_image(GTK_BUTTON(button)) == NULL;
- else
- EXPECT_TRUE(false);
-#endif
-
- return false;
- }
-
- void ExecuteBrowserAction(int index) {
-#if defined(OS_WIN) || defined(TOOLKIT_VIEWS)
- BrowserActionsContainer* browser_actions =
- browser()->window()->GetBrowserWindowTesting()->GetToolbarView()->
- browser_actions();
- ASSERT_TRUE(browser_actions);
- browser_actions->TestExecuteBrowserAction(index);
-#elif defined(OS_LINUX) || defined(TOOLKIT_VIEWS)
- GtkWidget* button = GetButton(index);
- ASSERT_TRUE(button);
- gtk_button_clicked(GTK_BUTTON(button));
-#endif
- }
-
- std::string GetTooltip(int index) {
-#if defined(OS_WIN) || defined(TOOLKIT_VIEWS)
- BrowserActionsContainer* browser_actions =
- browser()->window()->GetBrowserWindowTesting()->GetToolbarView()->
- browser_actions();
- if (browser_actions) {
- std::wstring text;
- EXPECT_TRUE(browser_actions->GetBrowserActionViewAt(0)->button()->
- GetTooltipText(0, 0, &text));
- return WideToUTF8(text);
- }
-#elif defined(OS_LINUX)
- GtkWidget* button = GetButton(index);
- if (button) {
- gchar* text = gtk_widget_get_tooltip_text(button);
- std::string rv = std::string(text);
- g_free(text);
- return rv;
- }
-#endif
- EXPECT_TRUE(false);
- return std::string();
+ BrowserActionTestUtil GetBrowserActionsBar() {
+ return BrowserActionTestUtil(browser());
}
-
- private:
-#if defined(OS_LINUX) && !defined(TOOLKIT_VIEWS)
- GtkWidget* GetButton(int index) {
- GtkWidget* rv = NULL;
- GtkWidget* toolbar = ViewIDUtil::GetWidget(
- GTK_WIDGET(browser()->window()->GetNativeHandle()),
- VIEW_ID_BROWSER_ACTION_TOOLBAR);
-
- if (toolbar) {
- GList* children = gtk_container_get_children(GTK_CONTAINER(toolbar));
- rv = static_cast<GtkWidget*>(g_list_nth(children, index)->data);
- g_list_free(children);
- }
-
- return rv;
- }
-#endif
};
-#if defined(OS_MACOSX)
-// http://crbug.com/29709 port to Mac
-#define MAYBE_Basic DISABLED_Basic
-#define MAYBE_DynamicBrowserAction DISABLED_DynamicBrowserAction
-#define MAYBE_TabSpecificBrowserActionState DISABLED_TabSpecificBrowserActionState
-#else
-#define MAYBE_Basic Basic
-#define MAYBE_DynamicBrowserAction DynamicBrowserAction
-#define MAYBE_TabSpecificBrowserActionState TabSpecificBrowserActionState
-#endif
-
-IN_PROC_BROWSER_TEST_F(BrowserActionTest, MAYBE_Basic) {
+IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, Basic) {
StartHTTPServer();
ASSERT_TRUE(RunExtensionTest("browser_action")) << message_;
// Test that there is a browser action in the toolbar.
- ASSERT_EQ(1, NumberOfBrowserActions());
+ ASSERT_EQ(1, GetBrowserActionsBar().NumberOfBrowserActions());
// Tell the extension to update the browser action state.
ResultCatcher catcher;
@@ -189,12 +77,12 @@ IN_PROC_BROWSER_TEST_F(BrowserActionTest, MAYBE_Basic) {
ASSERT_TRUE(result);
}
-IN_PROC_BROWSER_TEST_F(BrowserActionTest, MAYBE_DynamicBrowserAction) {
+IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, DynamicBrowserAction) {
ASSERT_TRUE(RunExtensionTest("browser_action_no_icon")) << message_;
// Test that there is a browser action in the toolbar and that it has no icon.
- EXPECT_EQ(1, NumberOfBrowserActions());
- EXPECT_TRUE(IsIconNull(0));
+ ASSERT_EQ(1, GetBrowserActionsBar().NumberOfBrowserActions());
+ EXPECT_FALSE(GetBrowserActionsBar().HasIcon(0));
// Tell the extension to update the icon using setIcon({imageData:...}).
ResultCatcher catcher;
@@ -205,7 +93,7 @@ IN_PROC_BROWSER_TEST_F(BrowserActionTest, MAYBE_DynamicBrowserAction) {
ASSERT_TRUE(catcher.GetNextResult());
// Test that we received the changes.
- EXPECT_FALSE(IsIconNull(0));
+ EXPECT_TRUE(GetBrowserActionsBar().HasIcon(0));
// Tell the extension to update using setIcon({path:...});
ui_test_utils::NavigateToURL(browser(),
@@ -213,41 +101,41 @@ IN_PROC_BROWSER_TEST_F(BrowserActionTest, MAYBE_DynamicBrowserAction) {
ASSERT_TRUE(catcher.GetNextResult());
// Test that we received the changes.
- EXPECT_FALSE(IsIconNull(0));
+ EXPECT_TRUE(GetBrowserActionsBar().HasIcon(0));
// TODO(aa): Would be nice here to actually compare that the pixels change.
}
-IN_PROC_BROWSER_TEST_F(BrowserActionTest, MAYBE_TabSpecificBrowserActionState) {
+IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, TabSpecificBrowserActionState) {
ASSERT_TRUE(RunExtensionTest("browser_action_tab_specific_state")) <<
message_;
// Test that there is a browser action in the toolbar and that it has an icon.
- ASSERT_EQ(1, NumberOfBrowserActions());
- EXPECT_FALSE(IsIconNull(0));
+ ASSERT_EQ(1, GetBrowserActionsBar().NumberOfBrowserActions());
+ EXPECT_TRUE(GetBrowserActionsBar().HasIcon(0));
// Execute the action, its title should change.
ResultCatcher catcher;
- ExecuteBrowserAction(0);
+ GetBrowserActionsBar().Press(0);
ASSERT_TRUE(catcher.GetNextResult());
- EXPECT_EQ("Showing icon 2", GetTooltip(0));
+ EXPECT_EQ("Showing icon 2", GetBrowserActionsBar().GetTooltip(0));
// Open a new tab, the title should go back.
browser()->NewTab();
- EXPECT_EQ("hi!", GetTooltip(0));
+ EXPECT_EQ("hi!", GetBrowserActionsBar().GetTooltip(0));
// Go back to first tab, changed title should reappear.
browser()->SelectTabContentsAt(0, true);
- EXPECT_EQ("Showing icon 2", GetTooltip(0));
+ EXPECT_EQ("Showing icon 2", GetBrowserActionsBar().GetTooltip(0));
// Reload that tab, default title should come back.
ui_test_utils::NavigateToURL(browser(), GURL("about:blank"));
- EXPECT_EQ("hi!", GetTooltip(0));
+ EXPECT_EQ("hi!", GetBrowserActionsBar().GetTooltip(0));
}
// TODO(estade): http://crbug.com/29710 port to Mac & Linux
#if defined(OS_WIN)
-IN_PROC_BROWSER_TEST_F(BrowserActionTest, BrowserActionPopup) {
+IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, BrowserActionPopup) {
ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("popup")));
ResultCatcher catcher;
@@ -269,7 +157,7 @@ IN_PROC_BROWSER_TEST_F(BrowserActionTest, BrowserActionPopup) {
ASSERT_TRUE(browser_actions);
// Simulate a click on the browser action and verify the size of the resulting
// popup. The first one tries to be 0x0, so it should be the min values.
- ExecuteBrowserAction(0);
+ GetBrowserActionsBar().Press(0);
EXPECT_TRUE(browser_actions->TestGetPopup() != NULL);
ASSERT_TRUE(catcher.GetNextResult()) << catcher.message();
gfx::Rect bounds = browser_actions->TestGetPopup()->view()->bounds();