summaryrefslogtreecommitdiffstats
path: root/chrome/test/automation
diff options
context:
space:
mode:
authorphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-16 08:39:54 +0000
committerphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-16 08:39:54 +0000
commit6fd3535a1593f4c73c938c7aa7e35eb976ccf280 (patch)
tree9a67ff8878ad611c4a35e728a613c451bb25008f /chrome/test/automation
parentb22b5167bd0a7494a78195d04b5a77ff185de5ae (diff)
downloadchromium_src-6fd3535a1593f4c73c938c7aa7e35eb976ccf280.zip
chromium_src-6fd3535a1593f4c73c938c7aa7e35eb976ccf280.tar.gz
chromium_src-6fd3535a1593f4c73c938c7aa7e35eb976ccf280.tar.bz2
[GTTF] Make automation framework more solid by making sure that
important return values are not ignored. The macro used here, WARN_UNUSED_RESULT, takes effect only for GCC, but that's enough since we have bots for all platforms. Adding these warnings already detected some cases where a return value was ignored. In some of them the test was trying to get the information about success "some other way", in some it could sometimes confuse test failure with test success. TEST=ui_tests BUG=none Review URL: http://codereview.chromium.org/948002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41696 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test/automation')
-rw-r--r--chrome/test/automation/automation_proxy.h42
-rw-r--r--chrome/test/automation/automation_proxy_uitest.cc39
-rw-r--r--chrome/test/automation/browser_proxy.h93
-rw-r--r--chrome/test/automation/tab_proxy.h115
4 files changed, 159 insertions, 130 deletions
diff --git a/chrome/test/automation/automation_proxy.h b/chrome/test/automation/automation_proxy.h
index 281de66..35c6d6e 100644
--- a/chrome/test/automation/automation_proxy.h
+++ b/chrome/test/automation/automation_proxy.h
@@ -10,6 +10,7 @@
#include "app/message_box_flags.h"
#include "app/gfx/native_widget_types.h"
#include "base/basictypes.h"
+#include "base/compiler_specific.h"
#include "base/process_util.h"
#include "base/scoped_ptr.h"
#include "base/time.h"
@@ -80,54 +81,57 @@ class AutomationProxy : public IPC::Channel::Listener,
// Waits for any initial page loads to complete.
// NOTE: this only fires once for a run of the application.
// Returns true if the load is successful
- bool WaitForInitialLoads();
+ bool WaitForInitialLoads() WARN_UNUSED_RESULT;
// Waits for the initial destinations tab to report that it has finished
// querying. |load_time| is filled in with how long it took, in milliseconds.
// NOTE: this only fires once for a run of the application.
// Returns true if the load is successful.
- bool WaitForInitialNewTabUILoad(int* load_time);
+ bool WaitForInitialNewTabUILoad(int* load_time) WARN_UNUSED_RESULT;
// Open a new browser window of type |type|, returning true on success. |show|
// identifies whether the window should be shown. Returns true on success.
- bool OpenNewBrowserWindow(Browser::Type type, bool show);
+ bool OpenNewBrowserWindow(Browser::Type type, bool show) WARN_UNUSED_RESULT;
// Fills the number of open browser windows into the given variable, returning
// true on success. False likely indicates an IPC error.
- bool GetBrowserWindowCount(int* num_windows);
+ bool GetBrowserWindowCount(int* num_windows) WARN_UNUSED_RESULT;
// Block the thread until the window count becomes the provided value.
// Returns true on success.
- bool WaitForWindowCountToBecome(int target_count, int wait_timeout);
+ bool WaitForWindowCountToBecome(int target_count,
+ int wait_timeout) WARN_UNUSED_RESULT;
// Fills the number of open normal browser windows (normal type and
// non-incognito mode) into the given variable, returning true on success.
// False likely indicates an IPC error.
- bool GetNormalBrowserWindowCount(int* num_windows);
+ bool GetNormalBrowserWindowCount(int* num_windows) WARN_UNUSED_RESULT;
// Gets the locale of the chrome browser, currently all browsers forked from
// the main chrome share the same UI locale, returning true on success.
// False likely indicates an IPC error.
- bool GetBrowserLocale(string16* locale);
+ bool GetBrowserLocale(string16* locale) WARN_UNUSED_RESULT;
// Returns whether an app modal dialog window is showing right now (i.e., a
// javascript alert), and what buttons it contains.
bool GetShowingAppModalDialog(bool* showing_app_modal_dialog,
- MessageBoxFlags::DialogButton* button);
+ MessageBoxFlags::DialogButton* button) WARN_UNUSED_RESULT;
// Simulates a click on a dialog button.
- bool ClickAppModalDialogButton(MessageBoxFlags::DialogButton button);
+ bool ClickAppModalDialogButton(
+ MessageBoxFlags::DialogButton button) WARN_UNUSED_RESULT;
// Block the thread until a modal dialog is displayed. Returns true on
// success.
- bool WaitForAppModalDialog(int wait_timeout);
+ bool WaitForAppModalDialog(int wait_timeout) WARN_UNUSED_RESULT;
// Returns true if one of the tabs in any window displays given url.
- bool IsURLDisplayed(GURL url);
+ bool IsURLDisplayed(GURL url) WARN_UNUSED_RESULT;
// Get the duration of the last |event_name| in the browser. Returns
// false if the IPC failed to send.
- bool GetMetricEventDuration(const std::string& event_name, int* duration_ms);
+ bool GetMetricEventDuration(const std::string& event_name,
+ int* duration_ms) WARN_UNUSED_RESULT;
// Returns the BrowserProxy for the browser window at the given index,
// transferring ownership of the pointer to the caller.
@@ -158,7 +162,7 @@ class AutomationProxy : public IPC::Channel::Listener,
// Tells the browser to enable or disable network request filtering. Returns
// false if the message fails to send to the browser.
- bool SetFilteredInet(bool enabled);
+ bool SetFilteredInet(bool enabled) WARN_UNUSED_RESULT;
// Returns the number of times a network request filter was used to service a
// network request. Returns -1 on error.
@@ -166,7 +170,7 @@ class AutomationProxy : public IPC::Channel::Listener,
// Sends the browser a new proxy configuration to start using. Returns true
// if the proxy config was successfully sent, false otherwise.
- bool SendProxyConfig(const std::string& new_proxy_config);
+ bool SendProxyConfig(const std::string& new_proxy_config) WARN_UNUSED_RESULT;
// These methods are intended to be called by the background thread
// to signal that the given event has occurred, and that any corresponding
@@ -179,12 +183,12 @@ class AutomationProxy : public IPC::Channel::Listener,
// Set whether or not running the save page as... command show prompt the
// user for a download path. Returns true if the message is successfully
// sent.
- bool SavePackageShouldPromptUser(bool should_prompt);
+ bool SavePackageShouldPromptUser(bool should_prompt) WARN_UNUSED_RESULT;
// Installs the extension crx. Returns true only if extension was installed
// and loaded successfully.
// Note: Overinstalls will fail.
- bool InstallExtension(const FilePath& crx_file);
+ bool InstallExtension(const FilePath& crx_file) WARN_UNUSED_RESULT;
// Gets a list of all enabled extensions' base directories.
// Returns true on success.
@@ -194,7 +198,7 @@ class AutomationProxy : public IPC::Channel::Listener,
// Logs in through the Chrome OS login wizard with given |username|
// and |password|. Returns true on success.
bool LoginWithUserAndPass(const std::string& username,
- const std::string& password);
+ const std::string& password) WARN_UNUSED_RESULT;
#endif
// Returns the ID of the automation IPC channel, so that it can be
// passed to the app as a launch parameter.
@@ -205,9 +209,9 @@ class AutomationProxy : public IPC::Channel::Listener,
#endif
// AutomationMessageSender implementations.
- virtual bool Send(IPC::Message* message);
+ virtual bool Send(IPC::Message* message) WARN_UNUSED_RESULT;
virtual bool SendWithTimeout(IPC::Message* message, int timeout,
- bool* is_timeout);
+ bool* is_timeout) WARN_UNUSED_RESULT;
// Wrapper over AutomationHandleTracker::InvalidateHandle. Receives the
// message from AutomationProxy, unpacks the messages and routes that call to
diff --git a/chrome/test/automation/automation_proxy_uitest.cc b/chrome/test/automation/automation_proxy_uitest.cc
index 4c08fe2..0767ca7 100644
--- a/chrome/test/automation/automation_proxy_uitest.cc
+++ b/chrome/test/automation/automation_proxy_uitest.cc
@@ -281,7 +281,8 @@ TEST_F(AutomationProxyTest, NavigateToURL) {
FilePath filename(test_data_directory_);
filename = filename.AppendASCII("title2.html");
- tab->NavigateToURL(net::FilePathToFileURL(filename));
+ ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_SUCCESS,
+ tab->NavigateToURL(net::FilePathToFileURL(filename)));
ASSERT_TRUE(tab->GetTabTitle(&title));
ASSERT_STREQ(L"Title Of Awesomeness", title.c_str());
@@ -298,8 +299,9 @@ TEST_F(AutomationProxyTest, NavigateToURLWithTimeout1) {
filename = filename.AppendASCII("title2.html");
bool is_timeout;
- tab->NavigateToURLWithTimeout(net::FilePathToFileURL(filename),
- 1, 5000, &is_timeout);
+ ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_SUCCESS,
+ tab->NavigateToURLWithTimeout(net::FilePathToFileURL(filename),
+ 1, 5000, &is_timeout));
ASSERT_FALSE(is_timeout);
std::wstring title;
@@ -309,9 +311,10 @@ TEST_F(AutomationProxyTest, NavigateToURLWithTimeout1) {
// Use timeout high enough to allow the browser to create a url request job.
const int kLowTimeoutMs = 250;
ASSERT_GE(URLRequestSlowHTTPJob::kDelayMs, kLowTimeoutMs);
- tab->NavigateToURLWithTimeout(
- URLRequestSlowHTTPJob::GetMockUrl(filename),
- 1, kLowTimeoutMs, &is_timeout);
+ ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_ERROR,
+ tab->NavigateToURLWithTimeout(
+ URLRequestSlowHTTPJob::GetMockUrl(filename),
+ 1, kLowTimeoutMs, &is_timeout));
ASSERT_TRUE(is_timeout);
}
@@ -329,15 +332,17 @@ TEST_F(AutomationProxyTest, NavigateToURLWithTimeout2) {
// Use timeout high enough to allow the browser to create a url request job.
const int kLowTimeoutMs = 250;
ASSERT_GE(URLRequestSlowHTTPJob::kDelayMs, kLowTimeoutMs);
- tab->NavigateToURLWithTimeout(
- URLRequestSlowHTTPJob::GetMockUrl(filename1),
- 1, kLowTimeoutMs, &is_timeout);
+ ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_ERROR,
+ tab->NavigateToURLWithTimeout(
+ URLRequestSlowHTTPJob::GetMockUrl(filename1),
+ 1, kLowTimeoutMs, &is_timeout));
ASSERT_TRUE(is_timeout);
FilePath filename2(test_data_directory_);
filename2 = filename2.AppendASCII("title1.html");
- tab->NavigateToURLWithTimeout(net::FilePathToFileURL(filename2),
- 1, 5000, &is_timeout);
+ ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_SUCCESS,
+ tab->NavigateToURLWithTimeout(net::FilePathToFileURL(filename2),
+ 1, 5000, &is_timeout));
ASSERT_FALSE(is_timeout);
}
@@ -1431,7 +1436,8 @@ TEST_F(AutomationProxyTest, DISABLED_AppModalDialogTest) {
"data:text/html,<html><head><script>function onload() {"
"setTimeout(\"alert('hello');\", 1000); }</script></head>"
"<body onload='onload()'></body></html>";
- tab->NavigateToURL(GURL(content));
+ ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_SUCCESS,
+ tab->NavigateToURL(GURL(content)));
EXPECT_TRUE(automation()->WaitForAppModalDialog(3000));
EXPECT_TRUE(automation()->GetShowingAppModalDialog(&modal_dialog_showing,
&button));
@@ -1458,7 +1464,8 @@ TEST_F(AutomationProxyTest, DISABLED_AppModalDialogTest) {
"data:text/html,<html><head><script>var result = -1; function onload() {"
"setTimeout(\"result = confirm('hello') ? 0 : 1;\", 1000);} </script>"
"</head><body onload='onload()'></body></html>";
- tab->NavigateToURL(GURL(content));
+ ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_SUCCESS,
+ tab->NavigateToURL(GURL(content)));
EXPECT_TRUE(automation()->WaitForAppModalDialog(3000));
EXPECT_TRUE(automation()->GetShowingAppModalDialog(&modal_dialog_showing,
&button));
@@ -1478,7 +1485,8 @@ TEST_F(AutomationProxyTest, DISABLED_AppModalDialogTest) {
EXPECT_EQ(0, result);
// Try again.
- tab->NavigateToURL(GURL(content));
+ ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_SUCCESS,
+ tab->NavigateToURL(GURL(content)));
EXPECT_TRUE(automation()->WaitForAppModalDialog(3000));
EXPECT_TRUE(automation()->GetShowingAppModalDialog(&modal_dialog_showing,
&button));
@@ -1518,7 +1526,8 @@ TEST_F(AutomationProxyTest5, TestLifetimeOfDomAutomationController) {
FilePath filename(test_data_directory_);
filename = filename.AppendASCII("dom_automation_test_with_popup.html");
- tab->NavigateToURL(net::FilePathToFileURL(filename));
+ ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_SUCCESS,
+ tab->NavigateToURL(net::FilePathToFileURL(filename)));
// Allow some time for the popup to show up and close.
PlatformThread::Sleep(2000);
diff --git a/chrome/test/automation/browser_proxy.h b/chrome/test/automation/browser_proxy.h
index 04e6288..674cf83 100644
--- a/chrome/test/automation/browser_proxy.h
+++ b/chrome/test/automation/browser_proxy.h
@@ -13,6 +13,7 @@
#include <string>
+#include "base/compiler_specific.h"
#include "chrome/browser/browser.h"
#include "chrome/common/content_settings.h"
#include "chrome/test/automation/automation_handle_tracker.h"
@@ -40,55 +41,56 @@ class BrowserProxy : public AutomationResourceProxy {
// Activates the tab corresponding to (zero-based) tab_index. Returns true if
// successful.
- bool ActivateTab(int tab_index);
+ bool ActivateTab(int tab_index) WARN_UNUSED_RESULT;
// Like ActivateTab, but returns false if response is not received before
// the specified timeout.
bool ActivateTabWithTimeout(int tab_index, uint32 timeout_ms,
- bool* is_timeout);
+ bool* is_timeout) WARN_UNUSED_RESULT;
// Bring the browser window to the front, activating it. Returns true on
// success.
- bool BringToFront();
+ bool BringToFront() WARN_UNUSED_RESULT;
// Like BringToFront, but returns false if action is not completed before
// the specified timeout.
- bool BringToFrontWithTimeout(uint32 timeout_ms, bool* is_timeout);
+ bool BringToFrontWithTimeout(uint32 timeout_ms,
+ bool* is_timeout) WARN_UNUSED_RESULT;
// Checks to see if a navigation command is active or not. Can also
// return false if action is not completed before the specified
// timeout; is_timeout will be set in those cases.
bool IsPageMenuCommandEnabledWithTimeout(int id, uint32 timeout_ms,
- bool* is_timeout);
+ bool* is_timeout) WARN_UNUSED_RESULT;
// Append a new tab to the TabStrip. The new tab is selected.
// The new tab navigates to the given tab_url.
// Returns true if successful.
// TODO(mpcomplete): If the navigation results in an auth challenge, the
// TabProxy we attach won't know about it. See bug 666730.
- bool AppendTab(const GURL& tab_url);
+ bool AppendTab(const GURL& tab_url) WARN_UNUSED_RESULT;
// Gets the (zero-based) index of the currently active tab. Returns true if
// successful.
- bool GetActiveTabIndex(int* active_tab_index) const;
+ bool GetActiveTabIndex(int* active_tab_index) const WARN_UNUSED_RESULT;
// Like GetActiveTabIndex, but returns false if active tab is not received
// before the specified timeout.
bool GetActiveTabIndexWithTimeout(int* active_tab_index, uint32 timeout_ms,
- bool* is_timeout) const;
+ bool* is_timeout) const WARN_UNUSED_RESULT;
// Returns the number of tabs in the given window. Returns true if
// the call was successful.
- bool GetTabCount(int* num_tabs) const;
+ bool GetTabCount(int* num_tabs) const WARN_UNUSED_RESULT;
// Like GetTabCount, but returns false if tab count is not received within the
// before timeout.
bool GetTabCountWithTimeout(int* num_tabs, uint32 timeout_ms,
- bool* is_timeout) const;
+ bool* is_timeout) const WARN_UNUSED_RESULT;
// Returns the type of the given window. Returns true if the call was
// successful.
- bool GetType(Browser::Type* type) const;
+ bool GetType(Browser::Type* type) const WARN_UNUSED_RESULT;
// Returns the TabProxy for the tab at the given index, transferring
// ownership of the pointer to the caller. On failure, returns NULL.
@@ -127,7 +129,7 @@ class BrowserProxy : public AutomationResourceProxy {
// focus. This leads to a flaky test behavior in circumstances when the
// desktop screen is locked or the test is being executed over a remote
// desktop.
- bool ApplyAccelerator(int id);
+ bool ApplyAccelerator(int id) WARN_UNUSED_RESULT;
// Performs a drag operation between the start and end points (both defined
// in window coordinates). |flags| specifies which buttons are pressed for
@@ -135,7 +137,7 @@ class BrowserProxy : public AutomationResourceProxy {
virtual bool SimulateDrag(const gfx::Point& start,
const gfx::Point& end,
int flags,
- bool press_escape_en_route);
+ bool press_escape_en_route) WARN_UNUSED_RESULT;
// Like SimulateDrag, but returns false if response is not received before
// the specified timeout.
@@ -143,106 +145,113 @@ class BrowserProxy : public AutomationResourceProxy {
const gfx::Point& end,
int flags, uint32 timeout_ms,
bool* is_timeout,
- bool press_escape_en_route);
+ bool press_escape_en_route)
+ WARN_UNUSED_RESULT;
// Block the thread until the tab count is |count|.
// |wait_timeout| is the timeout, in milliseconds, for waiting.
// Returns true on success.
- bool WaitForTabCountToBecome(int count, int wait_timeout);
+ bool WaitForTabCountToBecome(int count, int wait_timeout) WARN_UNUSED_RESULT;
// Block the thread until the specified tab is the active tab.
// |wait_timeout| is the timeout, in milliseconds, for waiting.
// Returns false if the tab does not become active.
- bool WaitForTabToBecomeActive(int tab, int wait_timeout);
+ bool WaitForTabToBecomeActive(int tab, int wait_timeout) WARN_UNUSED_RESULT;
// Opens the FindInPage box. Note: If you just want to search within a tab
// you don't need to call this function, just use FindInPage(...) directly.
- bool OpenFindInPage();
+ bool OpenFindInPage() WARN_UNUSED_RESULT;
// Get the x, y coordinates for the Find window. If animating, |x| and |y|
// will be -1, -1. Returns false on failure.
- bool GetFindWindowLocation(int* x, int* y);
+ bool GetFindWindowLocation(int* x, int* y) WARN_UNUSED_RESULT;
// Returns whether the Find window is fully visible If animating, |is_visible|
// will be false. Returns false on failure.
- bool IsFindWindowFullyVisible(bool* is_visible);
+ bool IsFindWindowFullyVisible(bool* is_visible) WARN_UNUSED_RESULT;
// Run the specified command in the browser (see browser_commands.cc for the
// list of supported commands). Returns true if the command was successfully
// dispatched, false otherwise.
- bool RunCommandAsync(int browser_command) const;
+ bool RunCommandAsync(int browser_command) const WARN_UNUSED_RESULT;
// Run the specified command in the browser (see browser_commands.cc for the
// list of supported commands). Returns true if the command was successfully
// dispatched and executed, false otherwise.
- bool RunCommand(int browser_command) const;
+ bool RunCommand(int browser_command) const WARN_UNUSED_RESULT;
// Returns whether the Bookmark bar is visible and whether we are animating
// it into position. Returns false on failure.
- bool GetBookmarkBarVisibility(bool* is_visible, bool* is_animating);
+ bool GetBookmarkBarVisibility(bool* is_visible,
+ bool* is_animating) WARN_UNUSED_RESULT;
// Get the bookmarks as a JSON string and put it in |json_string|.
// Return true on success.
- bool GetBookmarksAsJSON(std::string* json_string);
+ bool GetBookmarksAsJSON(std::string* json_string) WARN_UNUSED_RESULT;
// Wait for the bookmarks to load. Called implicitly by GetBookmarksAsJSON().
- bool WaitForBookmarkModelToLoad();
+ bool WaitForBookmarkModelToLoad() WARN_UNUSED_RESULT;
// Editing of the bookmark model. Bookmarks are referenced by id.
// Bookmark or group (folder) creation:
- bool AddBookmarkGroup(int64 parent_id, int index, std::wstring& title);
+ bool AddBookmarkGroup(int64 parent_id, int index,
+ std::wstring& title) WARN_UNUSED_RESULT;
bool AddBookmarkURL(int64 parent_id, int index,
- std::wstring& title, const GURL& url);
+ std::wstring& title, const GURL& url) WARN_UNUSED_RESULT;
// Bookmark editing:
- bool ReparentBookmark(int64 id, int64 new_parent_id, int index);
- bool SetBookmarkTitle(int64 id, std::wstring& title);
- bool SetBookmarkURL(int64 id, const GURL& url);
+ bool ReparentBookmark(int64 id, int64 new_parent_id,
+ int index) WARN_UNUSED_RESULT;
+ bool SetBookmarkTitle(int64 id, std::wstring& title) WARN_UNUSED_RESULT;
+ bool SetBookmarkURL(int64 id, const GURL& url) WARN_UNUSED_RESULT;
// Finally, bookmark deletion:
- bool RemoveBookmark(int64 id);
+ bool RemoveBookmark(int64 id) WARN_UNUSED_RESULT;
// Fills |*is_visible| with whether the browser's download shelf is currently
// visible. The return value indicates success. On failure, |*is_visible| is
// unchanged.
- bool IsShelfVisible(bool* is_visible);
+ bool IsShelfVisible(bool* is_visible) WARN_UNUSED_RESULT;
// Shows or hides the download shelf.
- bool SetShelfVisible(bool is_visible);
+ bool SetShelfVisible(bool is_visible) WARN_UNUSED_RESULT;
// Sets the int value of the specified preference.
- bool SetIntPreference(const std::wstring& name, int value);
+ bool SetIntPreference(const std::wstring& name, int value) WARN_UNUSED_RESULT;
// Sets the string value of the specified preference.
- bool SetStringPreference(const std::wstring& name, const std::wstring& value);
+ bool SetStringPreference(const std::wstring& name,
+ const std::wstring& value) WARN_UNUSED_RESULT;
// Gets the boolean value of the specified preference.
- bool GetBooleanPreference(const std::wstring& name, bool* value);
+ bool GetBooleanPreference(const std::wstring& name,
+ bool* value) WARN_UNUSED_RESULT;
// Sets the boolean value of the specified preference.
- bool SetBooleanPreference(const std::wstring& name, bool value);
+ bool SetBooleanPreference(const std::wstring& name,
+ bool value) WARN_UNUSED_RESULT;
// Sets default content settings.
bool SetDefaultContentSetting(ContentSettingsType content_type,
- ContentSetting setting);
+ ContentSetting setting) WARN_UNUSED_RESULT;
// Sets content settings for a particular host (overriding the default).
bool SetContentSetting(const std::string& host,
ContentSettingsType content_type,
- ContentSetting setting);
+ ContentSetting setting) WARN_UNUSED_RESULT;
// Simulates a termination the browser session (as if the user logged off the
// mahine).
- bool TerminateSession();
+ bool TerminateSession() WARN_UNUSED_RESULT;
// Sets |is_fullscreen| to whether the browser is currently in fullscreen
// mode.
- bool IsFullscreen(bool* is_fullscreen);
+ bool IsFullscreen(bool* is_fullscreen) WARN_UNUSED_RESULT;
// Sets |is_visible| to whether the browser's fullscreen bubble is visible.
- bool IsFullscreenBubbleVisible(bool* is_visible);
+ bool IsFullscreenBubbleVisible(bool* is_visible) WARN_UNUSED_RESULT;
// Shuts down the session service for the browser's profile. Returns true
// on success.
- bool ShutdownSessionService();
+ bool ShutdownSessionService() WARN_UNUSED_RESULT;
protected:
virtual ~BrowserProxy() {}
diff --git a/chrome/test/automation/tab_proxy.h b/chrome/test/automation/tab_proxy.h
index 326f0dc..8fe9318 100644
--- a/chrome/test/automation/tab_proxy.h
+++ b/chrome/test/automation/tab_proxy.h
@@ -14,6 +14,7 @@
#include <string>
#include <vector>
+#include "base/compiler_specific.h"
#include "base/observer_list.h"
#include "chrome/browser/download/save_package.h"
#include "chrome/browser/tab_contents/navigation_entry.h"
@@ -55,16 +56,16 @@ class TabProxy : public AutomationResourceProxy {
: AutomationResourceProxy(tracker, sender, handle) {}
// Gets the current url of the tab.
- bool GetCurrentURL(GURL* url) const;
+ bool GetCurrentURL(GURL* url) const WARN_UNUSED_RESULT;
// Gets the title of the tab.
- bool GetTabTitle(std::wstring* title) const;
+ bool GetTabTitle(std::wstring* title) const WARN_UNUSED_RESULT;
// Gets the tabstrip index of the tab.
- bool GetTabIndex(int* index) const;
+ bool GetTabIndex(int* index) const WARN_UNUSED_RESULT;
// Gets the number of constrained window for this tab.
- bool GetConstrainedWindowCount(int* count) const;
+ bool GetConstrainedWindowCount(int* count) const WARN_UNUSED_RESULT;
// Executes a javascript in a frame's context whose xpath is provided as the
// first parameter and extract the values from the resulting json string.
@@ -75,16 +76,16 @@ class TabProxy : public AutomationResourceProxy {
// will result in value = 24
bool ExecuteAndExtractString(const std::wstring& frame_xpath,
const std::wstring& jscript,
- std::wstring* value);
+ std::wstring* value) WARN_UNUSED_RESULT;
bool ExecuteAndExtractBool(const std::wstring& frame_xpath,
const std::wstring& jscript,
- bool* value);
+ bool* value) WARN_UNUSED_RESULT;
bool ExecuteAndExtractInt(const std::wstring& frame_xpath,
const std::wstring& jscript,
- int* value);
+ int* value) WARN_UNUSED_RESULT;
bool ExecuteAndExtractValue(const std::wstring& frame_xpath,
const std::wstring& jscript,
- Value** value);
+ Value** value) WARN_UNUSED_RESULT;
// Configure extension automation mode. When extension automation
// mode is turned on, the automation host can overtake extension API calls
@@ -108,20 +109,20 @@ class TabProxy : public AutomationResourceProxy {
// write tests where some functionality continues to function as normal,
// and other functionality is mocked out by the test.
bool SetEnableExtensionAutomation(
- const std::vector<std::string>& functions_enabled);
+ const std::vector<std::string>& functions_enabled) WARN_UNUSED_RESULT;
// Navigates to a url. This method accepts the same kinds of URL input that
// can be passed to Chrome on the command line. This is a synchronous call and
// hence blocks until the navigation completes.
AutomationMsg_NavigationResponseValues NavigateToURL(
- const GURL& url);
+ const GURL& url) WARN_UNUSED_RESULT;
// Navigates to a url. This method accepts the same kinds of URL input that
// can be passed to Chrome on the command line. This is a synchronous call and
// hence blocks until the |number_of_navigations| navigations complete.
AutomationMsg_NavigationResponseValues
- NavigateToURLBlockUntilNavigationsComplete(const GURL& url,
- int number_of_navigations);
+ NavigateToURLBlockUntilNavigationsComplete(
+ const GURL& url, int number_of_navigations) WARN_UNUSED_RESULT;
// Navigates to a url. This is same as NavigateToURL with a timeout option.
// The function blocks until the |number_of_navigations| navigations
@@ -129,16 +130,17 @@ class TabProxy : public AutomationResourceProxy {
// is_timeout is set to true.
AutomationMsg_NavigationResponseValues NavigateToURLWithTimeout(
const GURL& url, int number_of_navigations, uint32 timeout_ms,
- bool* is_timeout);
+ bool* is_timeout) WARN_UNUSED_RESULT;
// Navigates to a url in an externally hosted tab.
// This method accepts the same kinds of URL input that
// can be passed to Chrome on the command line. This is a synchronous call and
// hence blocks until the navigation completes.
AutomationMsg_NavigationResponseValues NavigateInExternalTab(
- const GURL& url, const GURL& referrer);
+ const GURL& url, const GURL& referrer) WARN_UNUSED_RESULT;
- AutomationMsg_NavigationResponseValues NavigateExternalTabAtIndex(int index);
+ AutomationMsg_NavigationResponseValues NavigateExternalTabAtIndex(
+ int index) WARN_UNUSED_RESULT;
// Navigates to a url. This is an asynchronous version of NavigateToURL.
// The function returns immediately after sending the LoadURL notification
@@ -146,42 +148,43 @@ class TabProxy : public AutomationResourceProxy {
// TODO(vibhor): Add a callback if needed in future.
// TODO(mpcomplete): If the navigation results in an auth challenge, the
// TabProxy we attach won't know about it. See bug 666730.
- bool NavigateToURLAsync(const GURL& url);
+ bool NavigateToURLAsync(const GURL& url) WARN_UNUSED_RESULT;
// Replaces a vector contents with the redirect chain out of the given URL.
// Returns true on success. Failure may be due to being unable to send the
// message, parse the response, or a failure of the history system in the
// browser.
- bool GetRedirectsFrom(const GURL& source_url, std::vector<GURL>* redirects);
+ bool GetRedirectsFrom(const GURL& source_url,
+ std::vector<GURL>* redirects) WARN_UNUSED_RESULT;
// Equivalent to hitting the Back button. This is a synchronous call and
// hence blocks until the navigation completes.
- AutomationMsg_NavigationResponseValues GoBack();
+ AutomationMsg_NavigationResponseValues GoBack() WARN_UNUSED_RESULT;
// Equivalent to hitting the Back button. This is a synchronous call and
// hence blocks until the |number_of_navigations| navigations complete.
AutomationMsg_NavigationResponseValues GoBackBlockUntilNavigationsComplete(
- int number_of_navigations);
+ int number_of_navigations) WARN_UNUSED_RESULT;
// Equivalent to hitting the Forward button. This is a synchronous call and
// hence blocks until the navigation completes.
- AutomationMsg_NavigationResponseValues GoForward();
+ AutomationMsg_NavigationResponseValues GoForward() WARN_UNUSED_RESULT;
// Equivalent to hitting the Forward button. This is a synchronous call and
// hence blocks until the |number_of_navigations| navigations complete.
AutomationMsg_NavigationResponseValues GoForwardBlockUntilNavigationsComplete(
- int number_of_navigations);
+ int number_of_navigations) WARN_UNUSED_RESULT;
// Equivalent to hitting the Reload button. This is a synchronous call and
// hence blocks until the navigation completes.
- AutomationMsg_NavigationResponseValues Reload();
+ AutomationMsg_NavigationResponseValues Reload() WARN_UNUSED_RESULT;
// Closes the tab. This is synchronous, but does NOT block until the tab has
// closed, rather it blocks until the browser has initiated the close. Use
// Close(true) if you need to block until tab completely closes.
//
// Note that this proxy is invalid after this call.
- bool Close();
+ bool Close() WARN_UNUSED_RESULT;
// Variant of close that allows you to specify whether you want to block
// until the tab has completely closed (wait_until_closed == true) or block
@@ -193,27 +196,28 @@ class TabProxy : public AutomationResourceProxy {
// when closing the last tab it is possible for the browser to shutdown BEFORE
// the tab has completely closed. In other words, this may NOT be sent for
// the last tab.
- bool Close(bool wait_until_closed);
+ bool Close(bool wait_until_closed) WARN_UNUSED_RESULT;
#if defined(OS_WIN)
// TODO(port): Use portable replacement for HWND.
// Gets the HWND that corresponds to the content area of this tab.
// Returns true if the call was successful.
- bool GetHWND(HWND* hwnd) const;
+ bool GetHWND(HWND* hwnd) const WARN_UNUSED_RESULT;
#endif // defined(OS_WIN)
// Gets the process ID that corresponds to the content area of this tab.
// Returns true if the call was successful. If the specified tab has no
// separate process for rendering its content, the return value is true but
// the process_id is 0.
- bool GetProcessID(int* process_id) const;
+ bool GetProcessID(int* process_id) const WARN_UNUSED_RESULT;
// Supply or cancel authentication to a login prompt. These are synchronous
// calls and hence block until the load finishes (or another login prompt
// appears, in the case of invalid login info).
- bool SetAuth(const std::wstring& username, const std::wstring& password);
- bool CancelAuth();
+ bool SetAuth(const std::wstring& username,
+ const std::wstring& password) WARN_UNUSED_RESULT;
+ bool CancelAuth() WARN_UNUSED_RESULT;
// Checks if this tab has a login prompt waiting for auth. This will be
// true if a navigation results in a login prompt, and if an attempted login
@@ -224,7 +228,7 @@ class TabProxy : public AutomationResourceProxy {
// TODO(mpcomplete): we have no way of knowing if auth is needed after either
// NavigateToURLAsync, or after appending a tab with an URL that triggers
// auth.
- bool NeedsAuth() const;
+ bool NeedsAuth() const WARN_UNUSED_RESULT;
// Starts a search within the current tab. The parameter |search_string|
// specifies what string to search for, |forward| specifies whether to search
@@ -236,11 +240,11 @@ class TabProxy : public AutomationResourceProxy {
int FindInPage(const std::wstring& search_string, FindInPageDirection forward,
FindInPageCase match_case, bool find_next, int* ordinal);
- bool GetCookies(const GURL& url, std::string* cookies);
+ bool GetCookies(const GURL& url, std::string* cookies) WARN_UNUSED_RESULT;
bool GetCookieByName(const GURL& url,
const std::string& name,
- std::string* cookies);
- bool SetCookie(const GURL& url, const std::string& value);
+ std::string* cookies) WARN_UNUSED_RESULT;
+ bool SetCookie(const GURL& url, const std::string& value) WARN_UNUSED_RESULT;
// Sends a InspectElement message for the current tab. |x| and |y| are the
// coordinates that we want to simulate that the user is trying to inspect.
@@ -252,24 +256,26 @@ class TabProxy : public AutomationResourceProxy {
// The third parameter specifies the timeout length for the wait loop.
// Returns false if the count does not change.
bool WaitForChildWindowCountToChange(int count, int* new_count,
- int wait_timeout);
+ int wait_timeout) WARN_UNUSED_RESULT;
// Gets the number of popups blocked from this tab.
- bool GetBlockedPopupCount(int* count) const;
+ bool GetBlockedPopupCount(int* count) const WARN_UNUSED_RESULT;
// Blocks the thread until the number of blocked popup is equal to
// |target_count|.
- bool WaitForBlockedPopupCountToChangeTo(int target_count, int wait_timeout);
+ bool WaitForBlockedPopupCountToChangeTo(int target_count,
+ int wait_timeout) WARN_UNUSED_RESULT;
- bool GetDownloadDirectory(FilePath* download_directory);
+ bool GetDownloadDirectory(FilePath* download_directory) WARN_UNUSED_RESULT;
// Shows an interstitial page. Blocks until the interstitial page
// has been loaded. Return false if a failure happens.3
- bool ShowInterstitialPage(const std::string& html_text, int timeout_ms);
+ bool ShowInterstitialPage(const std::string& html_text,
+ int timeout_ms) WARN_UNUSED_RESULT;
// Hides the currently shown interstitial page. Blocks until the interstitial
// page has been hidden. Return false if a failure happens.
- bool HideInterstitialPage();
+ bool HideInterstitialPage() WARN_UNUSED_RESULT;
#if defined(OS_WIN)
// TODO(port): Use something portable.
@@ -277,41 +283,41 @@ class TabProxy : public AutomationResourceProxy {
// The container of an externally hosted tab calls this to reflect any
// accelerator keys that it did not process. This gives the tab a chance
// to handle the keys
- bool ProcessUnhandledAccelerator(const MSG& msg);
+ bool ProcessUnhandledAccelerator(const MSG& msg) WARN_UNUSED_RESULT;
#endif // defined(OS_WIN)
// Ask the tab to set focus to either the first or last element on the page.
- bool SetInitialFocus(bool reverse);
+ bool SetInitialFocus(bool reverse) WARN_UNUSED_RESULT;
// Waits for the tab to finish being restored. Returns true on success.
// timeout_ms gives the max amount of time to wait for restore to complete.
- bool WaitForTabToBeRestored(uint32 timeout_ms);
+ bool WaitForTabToBeRestored(uint32 timeout_ms) WARN_UNUSED_RESULT;
// Retrieves the different security states for the current tab.
bool GetSecurityState(SecurityStyle* security_style,
int* ssl_cert_status,
- int* mixed_content_state);
+ int* mixed_content_state) WARN_UNUSED_RESULT;
// Returns the type of the page currently showing (normal, interstitial,
// error).
- bool GetPageType(NavigationEntry::PageType* page_type);
+ bool GetPageType(NavigationEntry::PageType* page_type) WARN_UNUSED_RESULT;
// Simulates the user action on the SSL blocking page. if |proceed| is true,
// this is equivalent to clicking the 'Proceed' button, if false to 'Take me
// out of there' button.
- bool TakeActionOnSSLBlockingPage(bool proceed);
+ bool TakeActionOnSSLBlockingPage(bool proceed) WARN_UNUSED_RESULT;
// Prints the current page without user intervention.
- bool PrintNow();
+ bool PrintNow() WARN_UNUSED_RESULT;
// Sends off an asynchronous request for printing.
- bool PrintAsync();
+ bool PrintAsync() WARN_UNUSED_RESULT;
// Save the current web page. |file_name| is the HTML file name, and
// |dir_path| is the directory for saving resource files. |type| indicates
// which type we're saving as: HTML only or the complete web page.
bool SavePage(const FilePath& file_name, const FilePath& dir_path,
- SavePackage::SavePackageType type);
+ SavePackage::SavePackageType type) WARN_UNUSED_RESULT;
// Posts a message to the external tab.
void HandleMessageFromExternalHost(const std::string& message,
@@ -319,21 +325,22 @@ class TabProxy : public AutomationResourceProxy {
const std::string& target);
// Retrieves the number of info-bars currently showing in |count|.
- bool GetInfoBarCount(int* count);
+ bool GetInfoBarCount(int* count) WARN_UNUSED_RESULT;
// Waits for up to |wait_timeout| ms until the infobar count is |count|.
// Returns false if a timeout occurred before the count matched, or an
// error occurred retrieving the count.
- bool WaitForInfoBarCount(int count, int wait_timeout);
+ bool WaitForInfoBarCount(int count, int wait_timeout) WARN_UNUSED_RESULT;
// Causes a click on the "accept" button of the info-bar at |info_bar_index|.
// If |wait_for_navigation| is true, this call does not return until a
// navigation has occured.
- bool ClickInfoBarAccept(int info_bar_index, bool wait_for_navigation);
+ bool ClickInfoBarAccept(int info_bar_index,
+ bool wait_for_navigation) WARN_UNUSED_RESULT;
// Retrieves the time at which the last navigation occured. This is intended
// to be used with WaitForNavigation (see below).
- bool GetLastNavigationTime(int64* last_navigation_time);
+ bool GetLastNavigationTime(int64* last_navigation_time) WARN_UNUSED_RESULT;
// Waits for a new navigation if none as occurred since |last_navigation_time|
// The purpose of this function is for operations that causes asynchronous
@@ -343,13 +350,13 @@ class TabProxy : public AutomationResourceProxy {
// tab_proxy->GetLastNavigationTime(&last_nav_time);
// tab_proxy->SomeOperationThatTriggersAnAsynchronousNavigation();
// tab_proxy->WaitForNavigation(last_nav_time);
- bool WaitForNavigation(int64 last_navigation_time);
+ bool WaitForNavigation(int64 last_navigation_time) WARN_UNUSED_RESULT;
// Gets the current used encoding of the page in the tab.
- bool GetPageCurrentEncoding(std::string* encoding);
+ bool GetPageCurrentEncoding(std::string* encoding) WARN_UNUSED_RESULT;
// Uses the specified encoding to override encoding of the page in the tab.
- bool OverrideEncoding(const std::string& encoding);
+ bool OverrideEncoding(const std::string& encoding) WARN_UNUSED_RESULT;
#if defined(OS_WIN)
// Resizes the tab window.