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/ppapi/ppapi_test.h" | 5 #include "chrome/test/ppapi/ppapi_test.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 | 43 |
44 // Platform-specific filename relative to the chrome executable. | 44 // Platform-specific filename relative to the chrome executable. |
45 #if defined(OS_WIN) | 45 #if defined(OS_WIN) |
46 const wchar_t library_name[] = L"ppapi_tests.dll"; | 46 const wchar_t library_name[] = L"ppapi_tests.dll"; |
47 #elif defined(OS_MACOSX) | 47 #elif defined(OS_MACOSX) |
48 const char library_name[] = "ppapi_tests.plugin"; | 48 const char library_name[] = "ppapi_tests.plugin"; |
49 #elif defined(OS_POSIX) | 49 #elif defined(OS_POSIX) |
50 const char library_name[] = "libppapi_tests.so"; | 50 const char library_name[] = "libppapi_tests.so"; |
51 #endif | 51 #endif |
52 | 52 |
53 void AddPrivateSwitches(CommandLine* command_line) { | 53 void AddPrivateSwitches(base::CommandLine* command_line) { |
54 // For TestRequestOSFileHandle. | 54 // For TestRequestOSFileHandle. |
55 command_line->AppendSwitch(switches::kUnlimitedStorage); | 55 command_line->AppendSwitch(switches::kUnlimitedStorage); |
56 command_line->AppendSwitchASCII(switches::kAllowNaClFileHandleAPI, | 56 command_line->AppendSwitchASCII(switches::kAllowNaClFileHandleAPI, |
57 "127.0.0.1"); | 57 "127.0.0.1"); |
58 } | 58 } |
59 | 59 |
60 } // namespace | 60 } // namespace |
61 | 61 |
62 PPAPITestMessageHandler::PPAPITestMessageHandler() { | 62 PPAPITestMessageHandler::PPAPITestMessageHandler() { |
63 } | 63 } |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 } | 135 } |
136 | 136 |
137 PPAPITestBase::PPAPITestBase() { | 137 PPAPITestBase::PPAPITestBase() { |
138 } | 138 } |
139 | 139 |
140 void PPAPITestBase::SetUp() { | 140 void PPAPITestBase::SetUp() { |
141 EnablePixelOutput(); | 141 EnablePixelOutput(); |
142 InProcessBrowserTest::SetUp(); | 142 InProcessBrowserTest::SetUp(); |
143 } | 143 } |
144 | 144 |
145 void PPAPITestBase::SetUpCommandLine(CommandLine* command_line) { | 145 void PPAPITestBase::SetUpCommandLine(base::CommandLine* command_line) { |
146 // The test sends us the result via a cookie. | 146 // The test sends us the result via a cookie. |
147 command_line->AppendSwitch(switches::kEnableFileCookies); | 147 command_line->AppendSwitch(switches::kEnableFileCookies); |
148 | 148 |
149 // Some stuff is hung off of the testing interface which is not enabled | 149 // Some stuff is hung off of the testing interface which is not enabled |
150 // by default. | 150 // by default. |
151 command_line->AppendSwitch(switches::kEnablePepperTesting); | 151 command_line->AppendSwitch(switches::kEnablePepperTesting); |
152 | 152 |
153 // Smooth scrolling confuses the scrollbar test. | 153 // Smooth scrolling confuses the scrollbar test. |
154 command_line->AppendSwitch(switches::kDisableSmoothScrolling); | 154 command_line->AppendSwitch(switches::kDisableSmoothScrolling); |
155 } | 155 } |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
265 "FAILS_", "FLAKY_", "DISABLED_", "SLOW_" }; | 265 "FAILS_", "FLAKY_", "DISABLED_", "SLOW_" }; |
266 for (size_t i = 0; i < sizeof(prefixes)/sizeof(prefixes[0]); ++i) | 266 for (size_t i = 0; i < sizeof(prefixes)/sizeof(prefixes[0]); ++i) |
267 if (test_name.find(prefixes[i]) == 0) | 267 if (test_name.find(prefixes[i]) == 0) |
268 return test_name.substr(strlen(prefixes[i])); | 268 return test_name.substr(strlen(prefixes[i])); |
269 return test_name; | 269 return test_name; |
270 } | 270 } |
271 | 271 |
272 void PPAPITestBase::RunTestURL(const GURL& test_url) { | 272 void PPAPITestBase::RunTestURL(const GURL& test_url) { |
273 #if defined(OS_WIN) && defined(USE_ASH) | 273 #if defined(OS_WIN) && defined(USE_ASH) |
274 // PPAPITests are broken in Ash browser tests (http://crbug.com/263548). | 274 // PPAPITests are broken in Ash browser tests (http://crbug.com/263548). |
275 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) { | 275 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 276 switches::kAshBrowserTests)) { |
276 LOG(WARNING) << "PPAPITests are disabled for Ash browser tests."; | 277 LOG(WARNING) << "PPAPITests are disabled for Ash browser tests."; |
277 return; | 278 return; |
278 } | 279 } |
279 #endif | 280 #endif |
280 | 281 |
281 // See comment above TestingInstance in ppapi/test/testing_instance.h. | 282 // See comment above TestingInstance in ppapi/test/testing_instance.h. |
282 // Basically it sends messages using the DOM automation controller. The | 283 // Basically it sends messages using the DOM automation controller. The |
283 // value of "..." means it's still working and we should continue to wait, | 284 // value of "..." means it's still working and we should continue to wait, |
284 // any other value indicates completion (in this case it will start with | 285 // any other value indicates completion (in this case it will start with |
285 // "PASS" or "FAIL"). This keeps us from timing out on waits for long tests. | 286 // "PASS" or "FAIL"). This keeps us from timing out on waits for long tests. |
(...skipping 15 matching lines...) Expand all Loading... |
301 std::string query = BuildQuery("files/test_case.html?", test_case); | 302 std::string query = BuildQuery("files/test_case.html?", test_case); |
302 if (!extra_params.empty()) | 303 if (!extra_params.empty()) |
303 query = base::StringPrintf("%s&%s", query.c_str(), extra_params.c_str()); | 304 query = base::StringPrintf("%s&%s", query.c_str(), extra_params.c_str()); |
304 | 305 |
305 return http_server.GetURL(query); | 306 return http_server.GetURL(query); |
306 } | 307 } |
307 | 308 |
308 PPAPITest::PPAPITest() : in_process_(true) { | 309 PPAPITest::PPAPITest() : in_process_(true) { |
309 } | 310 } |
310 | 311 |
311 void PPAPITest::SetUpCommandLine(CommandLine* command_line) { | 312 void PPAPITest::SetUpCommandLine(base::CommandLine* command_line) { |
312 PPAPITestBase::SetUpCommandLine(command_line); | 313 PPAPITestBase::SetUpCommandLine(command_line); |
313 | 314 |
314 // Append the switch to register the pepper plugin. | 315 // Append the switch to register the pepper plugin. |
315 // library name = <out dir>/<test_name>.<library_extension> | 316 // library name = <out dir>/<test_name>.<library_extension> |
316 // MIME type = application/x-ppapi-<test_name> | 317 // MIME type = application/x-ppapi-<test_name> |
317 base::FilePath plugin_dir; | 318 base::FilePath plugin_dir; |
318 EXPECT_TRUE(PathService::Get(base::DIR_MODULE, &plugin_dir)); | 319 EXPECT_TRUE(PathService::Get(base::DIR_MODULE, &plugin_dir)); |
319 | 320 |
320 base::FilePath plugin_lib = plugin_dir.Append(library_name); | 321 base::FilePath plugin_lib = plugin_dir.Append(library_name); |
321 EXPECT_TRUE(base::PathExists(plugin_lib)); | 322 EXPECT_TRUE(base::PathExists(plugin_lib)); |
322 base::FilePath::StringType pepper_plugin = plugin_lib.value(); | 323 base::FilePath::StringType pepper_plugin = plugin_lib.value(); |
323 pepper_plugin.append(FILE_PATH_LITERAL(";application/x-ppapi-tests")); | 324 pepper_plugin.append(FILE_PATH_LITERAL(";application/x-ppapi-tests")); |
324 command_line->AppendSwitchNative(switches::kRegisterPepperPlugins, | 325 command_line->AppendSwitchNative(switches::kRegisterPepperPlugins, |
325 pepper_plugin); | 326 pepper_plugin); |
326 command_line->AppendSwitchASCII(switches::kAllowNaClSocketAPI, "127.0.0.1"); | 327 command_line->AppendSwitchASCII(switches::kAllowNaClSocketAPI, "127.0.0.1"); |
327 | 328 |
328 if (in_process_) | 329 if (in_process_) |
329 command_line->AppendSwitch(switches::kPpapiInProcess); | 330 command_line->AppendSwitch(switches::kPpapiInProcess); |
330 } | 331 } |
331 | 332 |
332 std::string PPAPITest::BuildQuery(const std::string& base, | 333 std::string PPAPITest::BuildQuery(const std::string& base, |
333 const std::string& test_case){ | 334 const std::string& test_case){ |
334 return base::StringPrintf("%stestcase=%s", base.c_str(), test_case.c_str()); | 335 return base::StringPrintf("%stestcase=%s", base.c_str(), test_case.c_str()); |
335 } | 336 } |
336 | 337 |
337 void PPAPIPrivateTest::SetUpCommandLine(CommandLine* command_line) { | 338 void PPAPIPrivateTest::SetUpCommandLine(base::CommandLine* command_line) { |
338 PPAPITest::SetUpCommandLine(command_line); | 339 PPAPITest::SetUpCommandLine(command_line); |
339 AddPrivateSwitches(command_line); | 340 AddPrivateSwitches(command_line); |
340 } | 341 } |
341 | 342 |
342 OutOfProcessPPAPITest::OutOfProcessPPAPITest() { | 343 OutOfProcessPPAPITest::OutOfProcessPPAPITest() { |
343 in_process_ = false; | 344 in_process_ = false; |
344 } | 345 } |
345 | 346 |
346 void OutOfProcessPPAPITest::SetUpCommandLine(CommandLine* command_line) { | 347 void OutOfProcessPPAPITest::SetUpCommandLine(base::CommandLine* command_line) { |
347 PPAPITest::SetUpCommandLine(command_line); | 348 PPAPITest::SetUpCommandLine(command_line); |
348 command_line->AppendSwitch(switches::kUseFakeDeviceForMediaStream); | 349 command_line->AppendSwitch(switches::kUseFakeDeviceForMediaStream); |
349 command_line->AppendSwitch(switches::kUseFakeUIForMediaStream); | 350 command_line->AppendSwitch(switches::kUseFakeUIForMediaStream); |
350 } | 351 } |
351 | 352 |
352 void OutOfProcessPPAPIPrivateTest::SetUpCommandLine(CommandLine* command_line) { | 353 void OutOfProcessPPAPIPrivateTest::SetUpCommandLine( |
| 354 base::CommandLine* command_line) { |
353 OutOfProcessPPAPITest::SetUpCommandLine(command_line); | 355 OutOfProcessPPAPITest::SetUpCommandLine(command_line); |
354 AddPrivateSwitches(command_line); | 356 AddPrivateSwitches(command_line); |
355 } | 357 } |
356 | 358 |
357 void PPAPINaClTest::SetUpCommandLine(CommandLine* command_line) { | 359 void PPAPINaClTest::SetUpCommandLine(base::CommandLine* command_line) { |
358 RETURN_IF_NO_NACL(); | 360 RETURN_IF_NO_NACL(); |
359 PPAPITestBase::SetUpCommandLine(command_line); | 361 PPAPITestBase::SetUpCommandLine(command_line); |
360 | 362 |
361 base::FilePath plugin_lib; | 363 base::FilePath plugin_lib; |
362 EXPECT_TRUE(PathService::Get(chrome::FILE_NACL_PLUGIN, &plugin_lib)); | 364 EXPECT_TRUE(PathService::Get(chrome::FILE_NACL_PLUGIN, &plugin_lib)); |
363 EXPECT_TRUE(base::PathExists(plugin_lib)); | 365 EXPECT_TRUE(base::PathExists(plugin_lib)); |
364 | 366 |
365 // Enable running (non-portable) NaCl outside of the Chrome web store. | 367 // Enable running (non-portable) NaCl outside of the Chrome web store. |
366 command_line->AppendSwitch(switches::kEnableNaCl); | 368 command_line->AppendSwitch(switches::kEnableNaCl); |
367 command_line->AppendSwitchASCII(switches::kAllowNaClSocketAPI, "127.0.0.1"); | 369 command_line->AppendSwitchASCII(switches::kAllowNaClSocketAPI, "127.0.0.1"); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
406 PPAPITestBase::RunTestViaHTTPIfAudioOutputAvailable(test_case); | 408 PPAPITestBase::RunTestViaHTTPIfAudioOutputAvailable(test_case); |
407 } | 409 } |
408 | 410 |
409 // Append the correct mode and testcase string | 411 // Append the correct mode and testcase string |
410 std::string PPAPINaClNewlibTest::BuildQuery(const std::string& base, | 412 std::string PPAPINaClNewlibTest::BuildQuery(const std::string& base, |
411 const std::string& test_case) { | 413 const std::string& test_case) { |
412 return base::StringPrintf("%smode=nacl_newlib&testcase=%s", base.c_str(), | 414 return base::StringPrintf("%smode=nacl_newlib&testcase=%s", base.c_str(), |
413 test_case.c_str()); | 415 test_case.c_str()); |
414 } | 416 } |
415 | 417 |
416 void PPAPIPrivateNaClNewlibTest::SetUpCommandLine(CommandLine* command_line) { | 418 void PPAPIPrivateNaClNewlibTest::SetUpCommandLine( |
| 419 base::CommandLine* command_line) { |
417 PPAPINaClNewlibTest::SetUpCommandLine(command_line); | 420 PPAPINaClNewlibTest::SetUpCommandLine(command_line); |
418 AddPrivateSwitches(command_line); | 421 AddPrivateSwitches(command_line); |
419 } | 422 } |
420 | 423 |
421 // Append the correct mode and testcase string | 424 // Append the correct mode and testcase string |
422 std::string PPAPINaClGLibcTest::BuildQuery(const std::string& base, | 425 std::string PPAPINaClGLibcTest::BuildQuery(const std::string& base, |
423 const std::string& test_case) { | 426 const std::string& test_case) { |
424 return base::StringPrintf("%smode=nacl_glibc&testcase=%s", base.c_str(), | 427 return base::StringPrintf("%smode=nacl_glibc&testcase=%s", base.c_str(), |
425 test_case.c_str()); | 428 test_case.c_str()); |
426 } | 429 } |
427 | 430 |
428 void PPAPIPrivateNaClGLibcTest::SetUpCommandLine(CommandLine* command_line) { | 431 void PPAPIPrivateNaClGLibcTest::SetUpCommandLine( |
| 432 base::CommandLine* command_line) { |
429 PPAPINaClGLibcTest::SetUpCommandLine(command_line); | 433 PPAPINaClGLibcTest::SetUpCommandLine(command_line); |
430 AddPrivateSwitches(command_line); | 434 AddPrivateSwitches(command_line); |
431 } | 435 } |
432 | 436 |
433 // Append the correct mode and testcase string | 437 // Append the correct mode and testcase string |
434 std::string PPAPINaClPNaClTest::BuildQuery(const std::string& base, | 438 std::string PPAPINaClPNaClTest::BuildQuery(const std::string& base, |
435 const std::string& test_case) { | 439 const std::string& test_case) { |
436 return base::StringPrintf("%smode=nacl_pnacl&testcase=%s", base.c_str(), | 440 return base::StringPrintf("%smode=nacl_pnacl&testcase=%s", base.c_str(), |
437 test_case.c_str()); | 441 test_case.c_str()); |
438 } | 442 } |
439 | 443 |
440 void PPAPIPrivateNaClPNaClTest::SetUpCommandLine(CommandLine* command_line) { | 444 void PPAPIPrivateNaClPNaClTest::SetUpCommandLine( |
| 445 base::CommandLine* command_line) { |
441 PPAPINaClPNaClTest::SetUpCommandLine(command_line); | 446 PPAPINaClPNaClTest::SetUpCommandLine(command_line); |
442 AddPrivateSwitches(command_line); | 447 AddPrivateSwitches(command_line); |
443 } | 448 } |
444 | 449 |
445 void PPAPINaClTestDisallowedSockets::SetUpCommandLine( | 450 void PPAPINaClTestDisallowedSockets::SetUpCommandLine( |
446 CommandLine* command_line) { | 451 base::CommandLine* command_line) { |
447 PPAPITestBase::SetUpCommandLine(command_line); | 452 PPAPITestBase::SetUpCommandLine(command_line); |
448 | 453 |
449 base::FilePath plugin_lib; | 454 base::FilePath plugin_lib; |
450 EXPECT_TRUE(PathService::Get(chrome::FILE_NACL_PLUGIN, &plugin_lib)); | 455 EXPECT_TRUE(PathService::Get(chrome::FILE_NACL_PLUGIN, &plugin_lib)); |
451 EXPECT_TRUE(base::PathExists(plugin_lib)); | 456 EXPECT_TRUE(base::PathExists(plugin_lib)); |
452 | 457 |
453 // Enable running (non-portable) NaCl outside of the Chrome web store. | 458 // Enable running (non-portable) NaCl outside of the Chrome web store. |
454 command_line->AppendSwitch(switches::kEnableNaCl); | 459 command_line->AppendSwitch(switches::kEnableNaCl); |
455 } | 460 } |
456 | 461 |
457 // Append the correct mode and testcase string | 462 // Append the correct mode and testcase string |
458 std::string PPAPINaClTestDisallowedSockets::BuildQuery( | 463 std::string PPAPINaClTestDisallowedSockets::BuildQuery( |
459 const std::string& base, | 464 const std::string& base, |
460 const std::string& test_case) { | 465 const std::string& test_case) { |
461 return base::StringPrintf("%smode=nacl_newlib&testcase=%s", base.c_str(), | 466 return base::StringPrintf("%smode=nacl_newlib&testcase=%s", base.c_str(), |
462 test_case.c_str()); | 467 test_case.c_str()); |
463 } | 468 } |
464 | 469 |
465 void PPAPIBrokerInfoBarTest::SetUpOnMainThread() { | 470 void PPAPIBrokerInfoBarTest::SetUpOnMainThread() { |
466 // The default content setting for the PPAPI broker is ASK. We purposefully | 471 // The default content setting for the PPAPI broker is ASK. We purposefully |
467 // don't call PPAPITestBase::SetUpOnMainThread() to keep it that way. | 472 // don't call PPAPITestBase::SetUpOnMainThread() to keep it that way. |
468 } | 473 } |
OLD | NEW |