Index: chrome/test/remoting/remote_desktop_browsertest.cc |
diff --git a/chrome/test/remoting/remote_desktop_browsertest.cc b/chrome/test/remoting/remote_desktop_browsertest.cc |
index a18778a990d5598c1717992faba72e710ac70232..c369eea1e86e2398b5100aa4c831f9825876b338 100644 |
--- a/chrome/test/remoting/remote_desktop_browsertest.cc |
+++ b/chrome/test/remoting/remote_desktop_browsertest.cc |
@@ -166,7 +166,9 @@ void RemoteDesktopBrowserTest::VerifyChromotingLoaded(bool expected) { |
ASSERT_EQ(installed, expected); |
} |
-void RemoteDesktopBrowserTest::LaunchChromotingApp(bool defer_start) { |
+void RemoteDesktopBrowserTest::LaunchChromotingApp( |
+ bool defer_start, |
+ WindowOpenDisposition opt_window_open_disposition) { |
ASSERT_TRUE(extension_); |
GURL chromoting_main = Chromoting_Main_URL(); |
@@ -187,7 +189,7 @@ void RemoteDesktopBrowserTest::LaunchChromotingApp(bool defer_start) { |
is_platform_app() |
? extensions::LAUNCH_CONTAINER_NONE |
: extensions::LAUNCH_CONTAINER_TAB, |
- is_platform_app() ? NEW_WINDOW : CURRENT_TAB, |
+ opt_window_open_disposition, |
extensions::SOURCE_TEST)); |
observer.Wait(); |
@@ -218,6 +220,11 @@ void RemoteDesktopBrowserTest::LaunchChromotingApp(bool defer_start) { |
EXPECT_EQ(Chromoting_Main_URL(), GetCurrentURL()); |
} |
+void RemoteDesktopBrowserTest::LaunchChromotingApp(bool defer_start) { |
+ LaunchChromotingApp(defer_start, |
+ is_platform_app() ? NEW_WINDOW : CURRENT_TAB); |
+} |
+ |
void RemoteDesktopBrowserTest::StartChromotingApp() { |
ClickOnControl("browser-test-continue-init"); |
}; |
@@ -717,11 +724,11 @@ bool RemoteDesktopBrowserTest::LoadScript( |
return content::ExecuteScript(web_contents, script); |
} |
-// static |
void RemoteDesktopBrowserTest::RunJavaScriptTest( |
content::WebContents* web_contents, |
const std::string& testName, |
- const std::string& testData) { |
+ const std::string& testData, |
+ base::Value** opt_return_value) { |
std::string result; |
std::string script = "browserTest.runTest(browserTest." + testName + ", " + |
testData + ");"; |
@@ -737,7 +744,7 @@ void RemoteDesktopBrowserTest::RunJavaScriptTest( |
value.reset(reader.Read(result, base::JSON_ALLOW_TRAILING_COMMAS)); |
// Convert to dictionary |
- base::DictionaryValue* dict_value = NULL; |
+ base::DictionaryValue* dict_value = nullptr; |
ASSERT_TRUE(value->GetAsDictionary(&dict_value)); |
bool succeeded; |
@@ -750,8 +757,26 @@ void RemoteDesktopBrowserTest::RunJavaScriptTest( |
ASSERT_TRUE(dict_value->GetString("stack_trace", &stack_trace)); |
EXPECT_TRUE(succeeded) << error_message << "\n" << stack_trace; |
+ |
+ base::Value* return_value = nullptr; |
+ if (dict_value->Get("value", &return_value) && return_value != nullptr) { |
+ ASSERT_EQ(*opt_return_value, nullptr); |
+ *opt_return_value = return_value->DeepCopy(); |
+ } |
} |
+void RemoteDesktopBrowserTest::RunJavaScriptTest( |
+ content::WebContents* web_contents, |
+ const std::string& testName, |
+ const std::string& testData) { |
+ base::Value* return_value = nullptr; |
+ RunJavaScriptTest(web_contents, testName, testData, &return_value); |
+ if (return_value != nullptr) { |
+ delete return_value; |
Jamie
2015/01/06 22:18:51
No need to test for null before deleting. Better s
kelvinp
2015/01/09 22:21:30
Done.
|
+ } |
+}; |
+ |
+ |
void RemoteDesktopBrowserTest::ClickOnControl(const std::string& name) { |
ASSERT_TRUE(HtmlElementVisible(name)); |