summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/browser_action_apitest.cc
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-19 21:09:14 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-19 21:09:14 +0000
commitcff386ccf5eb4de8bc409b85da0855e610824b24 (patch)
tree0a1b9d4c4abc26258d4b0f1cc9bac4bf326913de /chrome/browser/extensions/browser_action_apitest.cc
parent76fbe717255e22a0d326b518165750e8d27a82cb (diff)
downloadchromium_src-cff386ccf5eb4de8bc409b85da0855e610824b24.zip
chromium_src-cff386ccf5eb4de8bc409b85da0855e610824b24.tar.gz
chromium_src-cff386ccf5eb4de8bc409b85da0855e610824b24.tar.bz2
Port BrowserActionApiTest.BrowserActionPopup to linux.
Also make the test proprely wait for the EXTENSION_HOST_DID_STOP_LOADING signal. BUG=29710 TEST=compiles Review URL: http://codereview.chromium.org/515065 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36544 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/browser_action_apitest.cc')
-rw-r--r--chrome/browser/extensions/browser_action_apitest.cc26
1 files changed, 15 insertions, 11 deletions
diff --git a/chrome/browser/extensions/browser_action_apitest.cc b/chrome/browser/extensions/browser_action_apitest.cc
index 0ef8f9b..1eb1a3b 100644
--- a/chrome/browser/extensions/browser_action_apitest.cc
+++ b/chrome/browser/extensions/browser_action_apitest.cc
@@ -22,6 +22,8 @@
#include "chrome/common/extensions/extension_action.h"
#include "chrome/test/ui_test_utils.h"
+static const int kTimeoutMs = 60 * 1000; // 1 minute
+
class BrowserActionApiTest : public ExtensionApiTest {
public:
BrowserActionApiTest() {}
@@ -32,16 +34,23 @@ class BrowserActionApiTest : public ExtensionApiTest {
return BrowserActionTestUtil(browser());
}
-// TODO(estade): http://crbug.com/29710 port to Linux
-#if !defined(TOOLKIT_GTK)
gfx::Rect OpenPopup(int index) {
- ResultCatcher catcher;
- GetBrowserActionsBar().Press(index);
+ {
+ NotificationRegistrar registrar;
+ registrar.Add(this, NotificationType::EXTENSION_HOST_DID_STOP_LOADING,
+ NotificationService::AllSources());
+ GetBrowserActionsBar().Press(index);
+ // If the popup is already showing then we needn't wait for the
+ // notification before proceeding.
+ if (!GetBrowserActionsBar().HasPopup()) {
+ MessageLoop::current()->PostDelayedTask(
+ FROM_HERE, new MessageLoop::QuitTask, kTimeoutMs);
+ }
+ ui_test_utils::RunMessageLoop();
+ }
EXPECT_TRUE(GetBrowserActionsBar().HasPopup());
- EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
return GetBrowserActionsBar().GetPopupBounds();
}
-#endif // !defined(TOOLKIT_GTK)
};
IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, Basic) {
@@ -141,14 +150,10 @@ IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, TabSpecificBrowserActionState) {
EXPECT_EQ("hi!", GetBrowserActionsBar().GetTooltip(0));
}
-// TODO(estade): http://crbug.com/29710 port to Linux
-#if !defined(TOOLKIT_GTK)
IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, BrowserActionPopup) {
ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII(
"browser_action/popup")));
- ResultCatcher catcher;
-
// The extension's popup's size grows by |growFactor| each click.
const int growFactor = 500;
gfx::Size minSize = BrowserActionTestUtil::GetMinPopupSize();
@@ -173,4 +178,3 @@ IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, BrowserActionPopup) {
EXPECT_EQ(maxSize, bounds.size());
EXPECT_TRUE(GetBrowserActionsBar().HidePopup());
}
-#endif // !defined(TOOLKIT_GTK)