| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/test/media_router/media_router_integration_browsertest.h" | 5 #include "chrome/test/media_router/media_router_integration_browsertest.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
| 9 #include "base/json/json_file_value_serializer.h" | 9 #include "base/json/json_file_value_serializer.h" |
| 10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 " sinks[i].click();" | 48 " sinks[i].click();" |
| 49 " break;" | 49 " break;" |
| 50 "}}"; | 50 "}}"; |
| 51 const char kCloseRouteScript[] = | 51 const char kCloseRouteScript[] = |
| 52 "window.document.getElementById('media-router-container').shadowRoot." | 52 "window.document.getElementById('media-router-container').shadowRoot." |
| 53 " getElementById('route-details').shadowRoot.getElementById(" | 53 " getElementById('route-details').shadowRoot.getElementById(" |
| 54 " 'close-route-button').click()"; | 54 " 'close-route-button').click()"; |
| 55 const char kGetRouteLengthScript[] = | 55 const char kGetRouteLengthScript[] = |
| 56 "domAutomationController.send(window.document.getElementById(" | 56 "domAutomationController.send(window.document.getElementById(" |
| 57 " 'media-router-container').routeList.length)"; | 57 " 'media-router-container').routeList.length)"; |
| 58 | 58 const char kClickDialog[] = |
| 59 "window.document.getElementById('media-router-container').click();"; |
| 59 std::string GetStartedSessionId(content::WebContents* web_contents) { | 60 std::string GetStartedSessionId(content::WebContents* web_contents) { |
| 60 std::string session_id; | 61 std::string session_id; |
| 61 CHECK(content::ExecuteScriptAndExtractString( | 62 CHECK(content::ExecuteScriptAndExtractString( |
| 62 web_contents, "window.domAutomationController.send(startedSession.id)", | 63 web_contents, "window.domAutomationController.send(startedSession.id)", |
| 63 &session_id)); | 64 &session_id)); |
| 64 return session_id; | 65 return session_id; |
| 65 } | 66 } |
| 66 | 67 |
| 67 std::string GetDefaultRequestSessionId(content::WebContents* web_contents) { | 68 std::string GetDefaultRequestSessionId(content::WebContents* web_contents) { |
| 68 std::string session_id; | 69 std::string session_id; |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 | 137 |
| 137 void MediaRouterIntegrationBrowserTest::ChooseSink( | 138 void MediaRouterIntegrationBrowserTest::ChooseSink( |
| 138 content::WebContents* web_contents, | 139 content::WebContents* web_contents, |
| 139 const std::string& sink_name) { | 140 const std::string& sink_name) { |
| 140 content::WebContents* dialog_contents = GetMRDialog(web_contents); | 141 content::WebContents* dialog_contents = GetMRDialog(web_contents); |
| 141 std::string script = base::StringPrintf( | 142 std::string script = base::StringPrintf( |
| 142 kChooseSinkScript, sink_name.c_str()); | 143 kChooseSinkScript, sink_name.c_str()); |
| 143 ASSERT_TRUE(content::ExecuteScript(dialog_contents, script)); | 144 ASSERT_TRUE(content::ExecuteScript(dialog_contents, script)); |
| 144 } | 145 } |
| 145 | 146 |
| 147 void MediaRouterIntegrationBrowserTest::ClickDialog() { |
| 148 content::WebContents* web_contents = |
| 149 browser()->tab_strip_model()->GetActiveWebContents(); |
| 150 content::WebContents* dialog_contents = GetMRDialog(web_contents); |
| 151 ASSERT_TRUE(content::ExecuteScript(dialog_contents, kClickDialog)); |
| 152 } |
| 146 content::WebContents* MediaRouterIntegrationBrowserTest::GetMRDialog( | 153 content::WebContents* MediaRouterIntegrationBrowserTest::GetMRDialog( |
| 147 content::WebContents* web_contents) { | 154 content::WebContents* web_contents) { |
| 148 MediaRouterDialogControllerImpl* controller = | 155 MediaRouterDialogControllerImpl* controller = |
| 149 MediaRouterDialogControllerImpl::GetOrCreateForWebContents(web_contents); | 156 MediaRouterDialogControllerImpl::GetOrCreateForWebContents(web_contents); |
| 150 content::WebContents* dialog_contents = controller->GetMediaRouterDialog(); | 157 content::WebContents* dialog_contents = controller->GetMediaRouterDialog(); |
| 151 CHECK(dialog_contents); | 158 CHECK(dialog_contents); |
| 152 return dialog_contents; | 159 return dialog_contents; |
| 153 } | 160 } |
| 154 | 161 |
| 162 bool MediaRouterIntegrationBrowserTest::IsDialogClosed( |
| 163 content::WebContents* web_contents) { |
| 164 MediaRouterDialogControllerImpl* controller = |
| 165 MediaRouterDialogControllerImpl::GetOrCreateForWebContents(web_contents); |
| 166 return !controller->GetMediaRouterDialog(); |
| 167 } |
| 168 |
| 169 void MediaRouterIntegrationBrowserTest::WaitUntilDialogClosed( |
| 170 content::WebContents* web_contents) { |
| 171 ASSERT_TRUE(ConditionalWait( |
| 172 base::TimeDelta::FromSeconds(5), base::TimeDelta::FromSeconds(1), |
| 173 base::Bind(&MediaRouterIntegrationBrowserTest::IsDialogClosed, |
| 174 base::Unretained(this), web_contents))); |
| 175 } |
| 176 |
| 177 void MediaRouterIntegrationBrowserTest::CheckDialogRemainsOpen( |
| 178 content::WebContents* web_contents) { |
| 179 ASSERT_FALSE(ConditionalWait( |
| 180 base::TimeDelta::FromSeconds(5), base::TimeDelta::FromSeconds(1), |
| 181 base::Bind(&MediaRouterIntegrationBrowserTest::IsDialogClosed, |
| 182 base::Unretained(this), web_contents))); |
| 183 } |
| 184 |
| 155 void MediaRouterIntegrationBrowserTest::SetTestData( | 185 void MediaRouterIntegrationBrowserTest::SetTestData( |
| 156 base::FilePath::StringPieceType test_data_file) { | 186 base::FilePath::StringPieceType test_data_file) { |
| 157 base::FilePath full_path = GetResourceFile(test_data_file); | 187 base::FilePath full_path = GetResourceFile(test_data_file); |
| 158 JSONFileValueDeserializer deserializer(full_path); | 188 JSONFileValueDeserializer deserializer(full_path); |
| 159 int error_code = 0; | 189 int error_code = 0; |
| 160 std::string error_message; | 190 std::string error_message; |
| 161 scoped_ptr<base::Value> value = | 191 scoped_ptr<base::Value> value = |
| 162 deserializer.Deserialize(&error_code, &error_message); | 192 deserializer.Deserialize(&error_code, &error_message); |
| 163 CHECK(value.get()) << "Deserialize failed: " << error_message; | 193 CHECK(value.get()) << "Deserialize failed: " << error_message; |
| 164 std::string test_data_str; | 194 std::string test_data_str; |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 367 content::WebContents* new_web_contents = | 397 content::WebContents* new_web_contents = |
| 368 browser()->tab_strip_model()->GetActiveWebContents(); | 398 browser()->tab_strip_model()->GetActiveWebContents(); |
| 369 ASSERT_TRUE(new_web_contents); | 399 ASSERT_TRUE(new_web_contents); |
| 370 ExecuteJavaScriptAPI( | 400 ExecuteJavaScriptAPI( |
| 371 new_web_contents, | 401 new_web_contents, |
| 372 base::StringPrintf("checkReconnectSessionFails('%s');", | 402 base::StringPrintf("checkReconnectSessionFails('%s');", |
| 373 session_id.c_str())); | 403 session_id.c_str())); |
| 374 } | 404 } |
| 375 | 405 |
| 376 } // namespace media_router | 406 } // namespace media_router |
| OLD | NEW |