| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/nacl/nacl_browsertest_util.h" | 5 #include "chrome/test/nacl/nacl_browsertest_util.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/json/json_reader.h" | 8 #include "base/json/json_reader.h" |
| 9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 170 // glibc/ | 170 // glibc/ |
| 171 static bool GetNaClVariantRoot(const base::FilePath::StringType& variant, | 171 static bool GetNaClVariantRoot(const base::FilePath::StringType& variant, |
| 172 base::FilePath* document_root) { | 172 base::FilePath* document_root) { |
| 173 if (!ui_test_utils::GetRelativeBuildDirectory(document_root)) | 173 if (!ui_test_utils::GetRelativeBuildDirectory(document_root)) |
| 174 return false; | 174 return false; |
| 175 *document_root = document_root->Append(FILE_PATH_LITERAL("nacl_test_data")); | 175 *document_root = document_root->Append(FILE_PATH_LITERAL("nacl_test_data")); |
| 176 *document_root = document_root->Append(variant); | 176 *document_root = document_root->Append(variant); |
| 177 return true; | 177 return true; |
| 178 } | 178 } |
| 179 | 179 |
| 180 static void AddPnaclParm(const base::FilePath::StringType& url, |
| 181 base::FilePath::StringType* url_with_parm) { |
| 182 if (url.find(FILE_PATH_LITERAL("?")) == base::FilePath::StringType::npos) { |
| 183 *url_with_parm = url + FILE_PATH_LITERAL("?pnacl=1"); |
| 184 } else { |
| 185 *url_with_parm = url + FILE_PATH_LITERAL("&pnacl=1"); |
| 186 } |
| 187 } |
| 188 |
| 180 NaClBrowserTestBase::NaClBrowserTestBase() { | 189 NaClBrowserTestBase::NaClBrowserTestBase() { |
| 181 } | 190 } |
| 182 | 191 |
| 183 NaClBrowserTestBase::~NaClBrowserTestBase() { | 192 NaClBrowserTestBase::~NaClBrowserTestBase() { |
| 184 } | 193 } |
| 185 | 194 |
| 186 void NaClBrowserTestBase::SetUpCommandLine(CommandLine* command_line) { | 195 void NaClBrowserTestBase::SetUpCommandLine(CommandLine* command_line) { |
| 187 command_line->AppendSwitch(switches::kNoFirstRun); | 196 command_line->AppendSwitch(switches::kNoFirstRun); |
| 188 command_line->AppendSwitch(switches::kEnableNaCl); | 197 command_line->AppendSwitch(switches::kEnableNaCl); |
| 189 } | 198 } |
| (...skipping 27 matching lines...) Expand all Loading... |
| 217 JavascriptTestObserver observer( | 226 JavascriptTestObserver observer( |
| 218 browser()->tab_strip_model()->GetActiveWebContents()->GetRenderViewHost(), | 227 browser()->tab_strip_model()->GetActiveWebContents()->GetRenderViewHost(), |
| 219 handler); | 228 handler); |
| 220 ui_test_utils::NavigateToURL(browser(), url); | 229 ui_test_utils::NavigateToURL(browser(), url); |
| 221 return observer.Run(); | 230 return observer.Run(); |
| 222 } | 231 } |
| 223 | 232 |
| 224 void NaClBrowserTestBase::RunLoadTest( | 233 void NaClBrowserTestBase::RunLoadTest( |
| 225 const base::FilePath::StringType& test_file) { | 234 const base::FilePath::StringType& test_file) { |
| 226 LoadTestMessageHandler handler; | 235 LoadTestMessageHandler handler; |
| 227 bool ok = RunJavascriptTest(TestURL(test_file), &handler); | 236 base::FilePath::StringType test_file_with_parm = test_file; |
| 237 if (IsPnacl()) { |
| 238 AddPnaclParm(test_file, &test_file_with_parm); |
| 239 } |
| 240 bool ok = RunJavascriptTest(TestURL(test_file_with_parm), &handler); |
| 228 ASSERT_TRUE(ok) << handler.error_message(); | 241 ASSERT_TRUE(ok) << handler.error_message(); |
| 229 ASSERT_TRUE(handler.test_passed()) << "Test failed."; | 242 ASSERT_TRUE(handler.test_passed()) << "Test failed."; |
| 230 } | 243 } |
| 231 | 244 |
| 232 void NaClBrowserTestBase::RunNaClIntegrationTest( | 245 void NaClBrowserTestBase::RunNaClIntegrationTest( |
| 233 const base::FilePath::StringType& url_fragment) { | 246 const base::FilePath::StringType& url_fragment) { |
| 234 NaClIntegrationMessageHandler handler; | 247 NaClIntegrationMessageHandler handler; |
| 235 bool ok = RunJavascriptTest(TestURL(url_fragment), &handler); | 248 base::FilePath::StringType url_fragment_with_parm = url_fragment; |
| 249 if (IsPnacl()) { |
| 250 AddPnaclParm(url_fragment, &url_fragment_with_parm); |
| 251 } |
| 252 bool ok = RunJavascriptTest(TestURL(url_fragment_with_parm), &handler); |
| 236 ASSERT_TRUE(ok) << handler.error_message(); | 253 ASSERT_TRUE(ok) << handler.error_message(); |
| 237 ASSERT_TRUE(handler.test_passed()) << "Test failed."; | 254 ASSERT_TRUE(handler.test_passed()) << "Test failed."; |
| 238 } | 255 } |
| 239 | 256 |
| 240 bool NaClBrowserTestBase::StartTestServer() { | 257 bool NaClBrowserTestBase::StartTestServer() { |
| 241 // Launch the web server. | 258 // Launch the web server. |
| 242 base::FilePath document_root; | 259 base::FilePath document_root; |
| 243 if (!GetDocumentRoot(&document_root)) | 260 if (!GetDocumentRoot(&document_root)) |
| 244 return false; | 261 return false; |
| 245 test_server_.reset(new net::SpawnedTestServer( | 262 test_server_.reset(new net::SpawnedTestServer( |
| (...skipping 25 matching lines...) Expand all Loading... |
| 271 } | 288 } |
| 272 | 289 |
| 273 base::FilePath::StringType NaClBrowserTestStatic::Variant() { | 290 base::FilePath::StringType NaClBrowserTestStatic::Variant() { |
| 274 return FILE_PATH_LITERAL("static"); | 291 return FILE_PATH_LITERAL("static"); |
| 275 } | 292 } |
| 276 | 293 |
| 277 bool NaClBrowserTestStatic::GetDocumentRoot(base::FilePath* document_root) { | 294 bool NaClBrowserTestStatic::GetDocumentRoot(base::FilePath* document_root) { |
| 278 *document_root = base::FilePath(FILE_PATH_LITERAL("chrome/test/data/nacl")); | 295 *document_root = base::FilePath(FILE_PATH_LITERAL("chrome/test/data/nacl")); |
| 279 return true; | 296 return true; |
| 280 } | 297 } |
| OLD | NEW |