summaryrefslogtreecommitdiffstats
path: root/chrome/test/automation
diff options
context:
space:
mode:
authorbauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-11 12:42:51 +0000
committerbauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-11 12:42:51 +0000
commit5ea92a92e9fa26334db821da688d3c46e295d19c (patch)
treeac387512f3f23544d62c11c6e95669d5ca158dff /chrome/test/automation
parentf4db3ef5fe811ed8668a05a7be740a9bb60374ac (diff)
downloadchromium_src-5ea92a92e9fa26334db821da688d3c46e295d19c.zip
chromium_src-5ea92a92e9fa26334db821da688d3c46e295d19c.tar.gz
chromium_src-5ea92a92e9fa26334db821da688d3c46e295d19c.tar.bz2
Reland r46681: Use IPC to wait for download in DownloadTest.
Add AutomationMsg_WaitForDownloadShelfVisibilityChange and use it in UITestBase for the download tests. This should decrease flakiness of download tests. TEST=DownloadTest.*, especially DownloadTest.[Dont]CloseNewTab* BUG=43066 Review URL: http://codereview.chromium.org/2051002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46909 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test/automation')
-rw-r--r--chrome/test/automation/automation_messages_internal.h7
-rw-r--r--chrome/test/automation/browser_proxy.cc13
-rw-r--r--chrome/test/automation/browser_proxy.h3
3 files changed, 23 insertions, 0 deletions
diff --git a/chrome/test/automation/automation_messages_internal.h b/chrome/test/automation/automation_messages_internal.h
index 77f9d56..9f96c5a 100644
--- a/chrome/test/automation/automation_messages_internal.h
+++ b/chrome/test/automation/automation_messages_internal.h
@@ -1396,4 +1396,11 @@ IPC_BEGIN_MESSAGES(Automation)
IPC_SYNC_MESSAGE_ROUTED3_1(AutomationMsg_DeleteCookie, GURL, std::string,
int, bool)
+ // Waits for the download shelf to appear or disappear (depending on
+ // |visibility|) and sets |success| to true on success.
+ IPC_SYNC_MESSAGE_ROUTED2_1(AutomationMsg_WaitForDownloadShelfVisibilityChange,
+ int /* browser handle */,
+ bool /* visibility */,
+ bool /* success */)
+
IPC_END_MESSAGES(Automation)
diff --git a/chrome/test/automation/browser_proxy.cc b/chrome/test/automation/browser_proxy.cc
index 1b275d8..6456cec 100644
--- a/chrome/test/automation/browser_proxy.cc
+++ b/chrome/test/automation/browser_proxy.cc
@@ -398,6 +398,19 @@ bool BrowserProxy::SetShelfVisible(bool is_visible) {
is_visible));
}
+bool BrowserProxy::WaitForDownloadShelfVisibilityChange(bool visibility) {
+ if (!is_valid())
+ return false;
+
+ bool result = false;
+
+ if (!sender_->Send(new AutomationMsg_WaitForDownloadShelfVisibilityChange(
+ 0, handle_, visibility, &result)))
+ return false;
+
+ return result;
+}
+
bool BrowserProxy::SetIntPreference(const std::wstring& name, int value) {
if (!is_valid())
return false;
diff --git a/chrome/test/automation/browser_proxy.h b/chrome/test/automation/browser_proxy.h
index d0bb4d0..198004a 100644
--- a/chrome/test/automation/browser_proxy.h
+++ b/chrome/test/automation/browser_proxy.h
@@ -178,6 +178,9 @@ class BrowserProxy : public AutomationResourceProxy {
// Shows or hides the download shelf.
bool SetShelfVisible(bool is_visible) WARN_UNUSED_RESULT;
+ // Waits for the download shelf to appear or disappear.
+ bool WaitForDownloadShelfVisibilityChange(bool visibility) WARN_UNUSED_RESULT;
+
// Sets the int value of the specified preference.
bool SetIntPreference(const std::wstring& name, int value) WARN_UNUSED_RESULT;