Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Unified Diff: remoting/test/remote_desktop_browsertest.h

Issue 22887025: Refactor remote_desktop_browsertest: (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@browser_tests_a
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: remoting/test/remote_desktop_browsertest.h
diff --git a/remoting/test/remote_desktop_browsertest.h b/remoting/test/remote_desktop_browsertest.h
index 5b4e1bb34bb40cdab1ae8c3f956c052e9d0ae9ec..f6ad8a1e59486d73ed5c828cbbb3894b45d671a1 100644
--- a/remoting/test/remote_desktop_browsertest.h
+++ b/remoting/test/remote_desktop_browsertest.h
@@ -37,12 +37,24 @@ class RemoteDesktopBrowserTest : public ExtensionBrowserTest {
RemoteDesktopBrowserTest();
virtual ~RemoteDesktopBrowserTest();
+ // InProcessBrowserTest Overrides
virtual void SetUp() OVERRIDE;
protected:
+ // InProcessBrowserTest Overrides
virtual void SetUpInProcessBrowserTestFixture() OVERRIDE;
+
+ // InProcessBrowserTest Overrides
virtual void TearDownInProcessBrowserTestFixture() OVERRIDE;
+
+ /* */
+ /* The following helpers each perform a simple task. */
+ /* */
+
+ // Verify the test has access to the internet (specifically google.com)
+ void VerifyInternetAccess();
+
// Install the chromoting extension from a crx file.
void InstallChromotingApp();
@@ -55,9 +67,6 @@ class RemoteDesktopBrowserTest : public ExtensionBrowserTest {
// Launch the chromoting app.
void LaunchChromotingApp();
- // Verify the test has access to the internet (specifically google.com)
- void VerifyInternetAccess();
-
// Authorize: grant extended access permission to the user's computer.
void Authorize();
@@ -67,17 +76,23 @@ class RemoteDesktopBrowserTest : public ExtensionBrowserTest {
// Approve: grant the chromoting app necessary permissions.
void Approve();
- // Whether to perform the cleanup tasks (uninstalling chromoting, etc).
- // This is useful for diagnostic purposes.
- bool NoCleanup() { return no_cleanup_; }
- // Whether to install the chromoting extension before running the test cases.
- // This is useful for diagnostic purposes.
- bool NoInstall() { return no_install_; }
+ /* */
+ /* The following helpers each perform a composite task. */
+ /* */
- private:
- void ParseCommandLine();
+ // Install the chromoting extension
+ void Install();
+
+ // Clean up after the test.
+ void Cleanup();
+ // Perform all the auth steps: authorization, authenticattion, etc.
+ // It starts from the chromoting main page unauthenticated and ends up back
+ // on the chromoting main page authenticated and ready to go.
+ void Auth();
+
+ private:
// Change behavior of the default host resolver to allow DNS lookup
// to proceed instead of being blocked by the test infrastructure.
void EnableDNSLookupForThisTest(
@@ -86,12 +101,27 @@ class RemoteDesktopBrowserTest : public ExtensionBrowserTest {
// We need to reset the DNS lookup when we finish, or the test will fail.
void DisableDNSLookupForThisTest();
+ void ParseCommandLine();
+
+
+ /* */
+ /* Accessor methods. */
+ /* */
+
// Helper to get the path to the crx file of the webapp to be tested.
base::FilePath WebAppCrxPath() { return webapp_crx_; }
// Helper to get the extension ID of the installed chromoting webapp.
std::string ChromotingID() { return chromoting_id_; }
+ // Whether to perform the cleanup tasks (uninstalling chromoting, etc).
+ // This is useful for diagnostic purposes.
+ bool NoCleanup() { return no_cleanup_; }
+
+ // Whether to install the chromoting extension before running the test cases.
+ // This is useful for diagnostic purposes.
+ bool NoInstall() { return no_install_; }
+
// Helper to construct the starting URL of the installed chromoting webapp.
GURL Chromoting_Main_URL() {
return GURL("chrome-extension://" + ChromotingID() + "/main.html");
@@ -102,64 +132,29 @@ class RemoteDesktopBrowserTest : public ExtensionBrowserTest {
return browser()->tab_strip_model()->GetActiveWebContents()->GetURL();
}
+
+ /* */
+ /* Helpers to execute javascript code on a web page. */
+ /* */
+
// Helper to execute a javascript code snippet on the current page.
- void ExecuteScript(const std::string& script) {
- ASSERT_TRUE(content::ExecuteScript(
- browser()->tab_strip_model()->GetActiveWebContents(), script));
- }
+ void ExecuteScript(const std::string& script);
// Helper to execute a javascript code snippet on the current page and
// wait for page load to complete.
- void ExecuteScriptAndWait(const std::string& script) {
- content::WindowedNotificationObserver observer(
- content::NOTIFICATION_LOAD_STOP,
- content::Source<content::NavigationController>(
- &browser()->tab_strip_model()->GetActiveWebContents()->
- GetController()));
-
- ExecuteScript(script);
-
- observer.Wait();
- }
+ void ExecuteScriptAndWait(const std::string& script);
// Helper to execute a javascript code snippet on the current page and
// wait until the target url is loaded. This is used when the target page
// is loaded after multiple redirections.
- void ExecuteScriptAndWaitUntil(
- const std::string& script, const GURL& target) {
- content::WindowedNotificationObserver observer(
- content::NOTIFICATION_LOAD_STOP,
- content::Source<content::NavigationController>(
- &browser()->tab_strip_model()->GetActiveWebContents()->
- GetController()));
-
- ExecuteScript(script);
-
- observer.Wait();
-
- // TODO: is there a better way to wait for all the redirections to complete?
- while (GetCurrentURL() != target) {
- content::WindowedNotificationObserver(
- content::NOTIFICATION_LOAD_STOP,
- content::Source<content::NavigationController>(
- &browser()->tab_strip_model()->GetActiveWebContents()->
- GetController())).Wait();
- }
- }
+ void ExecuteScriptAndWaitUntil(const std::string& script, const GURL& target);
// Helper to execute a javascript code snippet on the current page and
// extract the boolean result.
- bool ExecuteScriptAndExtractBool(const std::string& script) {
- bool result;
- // Using a private assert function because ASSERT_TRUE can only be used in
- // void returning functions.
- _ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
- browser()->tab_strip_model()->GetActiveWebContents(),
- "window.domAutomationController.send(" + script + ");",
- &result));
-
- return result;
- }
+ bool ExecuteScriptAndExtractBool(const std::string& script);
+
+ // Helper to navigate to a given url.
+ void NavigateToURLAndWait(const GURL& url);
// Helper to check whether a html element with the given name exists on
// the current page.
@@ -168,17 +163,10 @@ class RemoteDesktopBrowserTest : public ExtensionBrowserTest {
"document.getElementById(\"" + name + "\") != null");
}
- // Helper to navigate to a given url.
- void NavigateToURLAndWait(const GURL& url) {
- content::WindowedNotificationObserver observer(
- content::NOTIFICATION_LOAD_STOP,
- content::Source<content::NavigationController>(
- &browser()->tab_strip_model()->GetActiveWebContents()->
- GetController()));
-
- ui_test_utils::NavigateToURL(browser(), url);
- observer.Wait();
- }
+
+ /* */
+ /* Fields */
+ /* */
// This test needs to make live DNS requests for access to
// GAIA and sync server URLs under google.com. We use a scoped version

Powered by Google App Engine
This is Rietveld 408576698