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

Side by Side Diff: chrome/test/ppapi/ppapi_test.cc

Issue 10699045: Fix PPB_MouseLock.LockMouse crash and add tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 5 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/test/ppapi/ppapi_test.h ('k') | chrome/test/ui/ppapi_uitest.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/ui/ppapi_uitest.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/logging.h" 9 #include "base/logging.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
11 #include "base/stringprintf.h"
11 #include "base/string_util.h" 12 #include "base/string_util.h"
12 #include "base/stringprintf.h"
13 #include "base/test/test_timeouts.h" 13 #include "base/test/test_timeouts.h"
14 #include "base/timer.h"
15 #include "build/build_config.h" 14 #include "build/build_config.h"
16 #include "chrome/browser/ui/browser.h" 15 #include "chrome/browser/ui/browser.h"
17 #include "chrome/browser/ui/browser_navigator.h"
18 #include "chrome/browser/ui/browser_tabstrip.h" 16 #include "chrome/browser/ui/browser_tabstrip.h"
19 #include "chrome/common/chrome_paths.h" 17 #include "chrome/common/chrome_paths.h"
20 #include "chrome/common/chrome_switches.h" 18 #include "chrome/common/chrome_switches.h"
21 #include "chrome/test/base/in_process_browser_test.h"
22 #include "chrome/test/base/test_launcher_utils.h" 19 #include "chrome/test/base/test_launcher_utils.h"
23 #include "chrome/test/base/ui_test_utils.h" 20 #include "chrome/test/base/ui_test_utils.h"
24 #include "content/public/browser/dom_operation_notification_details.h" 21 #include "content/public/browser/dom_operation_notification_details.h"
25 #include "content/public/browser/notification_types.h" 22 #include "content/public/browser/notification_types.h"
26 #include "content/public/browser/web_contents.h" 23 #include "content/public/browser/web_contents.h"
27 #include "content/public/common/content_paths.h" 24 #include "content/public/common/content_paths.h"
28 #include "content/public/common/content_switches.h" 25 #include "content/public/common/content_switches.h"
29 #include "content/public/common/url_constants.h"
30 #include "content/public/test/test_renderer_host.h" 26 #include "content/public/test/test_renderer_host.h"
31 #include "content/test/gpu/test_switches.h" 27 #include "content/test/gpu/test_switches.h"
32 #include "media/audio/audio_manager.h" 28 #include "media/audio/audio_manager.h"
33 #include "net/base/net_util.h" 29 #include "net/base/net_util.h"
34 #include "net/test/test_server.h" 30 #include "net/test/test_server.h"
35 #include "ui/gl/gl_switches.h" 31 #include "ui/gl/gl_switches.h"
36 #include "webkit/plugins/plugin_switches.h" 32 #include "webkit/plugins/plugin_switches.h"
37 33
38 using content::DomOperationNotificationDetails; 34 using content::DomOperationNotificationDetails;
39 using content::RenderViewHost; 35 using content::RenderViewHost;
(...skipping 13 matching lines...) Expand all
53 // to be too long when a tiny bug caused all tests to timeout. 49 // to be too long when a tiny bug caused all tests to timeout.
54 // http://crbug.com/108264 50 // http://crbug.com/108264
55 static int kTimeoutMs = 90000; 51 static int kTimeoutMs = 90000;
56 //static int kTimeoutMs = TestTimeouts::large_test_timeout_ms()); 52 //static int kTimeoutMs = TestTimeouts::large_test_timeout_ms());
57 53
58 bool IsAudioOutputAvailable() { 54 bool IsAudioOutputAvailable() {
59 scoped_ptr<media::AudioManager> audio_manager(media::AudioManager::Create()); 55 scoped_ptr<media::AudioManager> audio_manager(media::AudioManager::Create());
60 return audio_manager->HasAudioOutputDevices(); 56 return audio_manager->HasAudioOutputDevices();
61 } 57 }
62 58
63 class TestFinishObserver : public content::NotificationObserver { 59 } // namespace
64 public: 60
65 explicit TestFinishObserver(RenderViewHost* render_view_host, int timeout_s) 61 PPAPITestBase::TestFinishObserver::TestFinishObserver(
66 : finished_(false), waiting_(false), timeout_s_(timeout_s) { 62 RenderViewHost* render_view_host,
67 registrar_.Add(this, content::NOTIFICATION_DOM_OPERATION_RESPONSE, 63 int timeout_s)
68 content::Source<RenderViewHost>(render_view_host)); 64 : finished_(false),
69 timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(timeout_s), 65 waiting_(false),
66 timeout_s_(timeout_s) {
67 registrar_.Add(this, content::NOTIFICATION_DOM_OPERATION_RESPONSE,
68 content::Source<RenderViewHost>(render_view_host));
69 timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(timeout_s),
70 this, &TestFinishObserver::OnTimeout);
71 }
72
73 bool PPAPITestBase::TestFinishObserver::WaitForFinish() {
74 if (!finished_) {
75 waiting_ = true;
76 ui_test_utils::RunMessageLoop();
77 waiting_ = false;
78 }
79 return finished_;
80 }
81
82 void PPAPITestBase::TestFinishObserver::Observe(
83 int type,
84 const content::NotificationSource& source,
85 const content::NotificationDetails& details) {
86 DCHECK(type == content::NOTIFICATION_DOM_OPERATION_RESPONSE);
87 content::Details<DomOperationNotificationDetails> dom_op_details(details);
88 // We might receive responses for other script execution, but we only
89 // care about the test finished message.
90 std::string response;
91 TrimString(dom_op_details->json, "\"", &response);
92 if (response == "...") {
93 timer_.Stop();
94 timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(timeout_s_),
70 this, &TestFinishObserver::OnTimeout); 95 this, &TestFinishObserver::OnTimeout);
96 } else {
97 result_ = response;
98 finished_ = true;
99 if (waiting_)
100 MessageLoopForUI::current()->Quit();
71 } 101 }
102 }
72 103
73 bool WaitForFinish() { 104 void PPAPITestBase::TestFinishObserver::Reset() {
74 if (!finished_) { 105 finished_ = false;
75 waiting_ = true; 106 waiting_ = false;
76 ui_test_utils::RunMessageLoop(); 107 result_.clear();
77 waiting_ = false; 108 }
78 }
79 return finished_;
80 }
81 109
82 virtual void Observe(int type, 110 void PPAPITestBase::TestFinishObserver::OnTimeout() {
83 const content::NotificationSource& source, 111 MessageLoopForUI::current()->Quit();
84 const content::NotificationDetails& details) { 112 }
85 DCHECK(type == content::NOTIFICATION_DOM_OPERATION_RESPONSE);
86 content::Details<DomOperationNotificationDetails> dom_op_details(details);
87 // We might receive responses for other script execution, but we only
88 // care about the test finished message.
89 std::string response;
90 TrimString(dom_op_details->json, "\"", &response);
91 if (response == "...") {
92 timer_.Stop();
93 timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(timeout_s_),
94 this, &TestFinishObserver::OnTimeout);
95 } else {
96 result_ = response;
97 finished_ = true;
98 if (waiting_)
99 MessageLoopForUI::current()->Quit();
100 }
101 }
102
103 std::string result() const { return result_; }
104
105 void Reset() {
106 finished_ = false;
107 waiting_ = false;
108 result_.clear();
109 }
110
111 private:
112 void OnTimeout() {
113 MessageLoopForUI::current()->Quit();
114 }
115
116 bool finished_;
117 bool waiting_;
118 int timeout_s_;
119 std::string result_;
120 content::NotificationRegistrar registrar_;
121 base::RepeatingTimer<TestFinishObserver> timer_;
122
123 DISALLOW_COPY_AND_ASSIGN(TestFinishObserver);
124 };
125
126 } // namespace
127 113
128 PPAPITestBase::PPAPITestBase() { 114 PPAPITestBase::PPAPITestBase() {
129 EnableDOMAutomation(); 115 EnableDOMAutomation();
130 } 116 }
131 117
132 void PPAPITestBase::SetUpCommandLine(CommandLine* command_line) { 118 void PPAPITestBase::SetUpCommandLine(CommandLine* command_line) {
133 // Do not use mesa if real GPU is required. 119 // Do not use mesa if real GPU is required.
134 if (!command_line->HasSwitch(switches::kUseGpuInTests)) { 120 if (!command_line->HasSwitch(switches::kUseGpuInTests)) {
135 #if !defined(OS_MACOSX) 121 #if !defined(OS_MACOSX)
136 CHECK(test_launcher_utils::OverrideGLImplementation( 122 CHECK(test_launcher_utils::OverrideGLImplementation(
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 } 371 }
386 372
387 // Append the correct mode and testcase string 373 // Append the correct mode and testcase string
388 std::string PPAPINaClTestDisallowedSockets::BuildQuery( 374 std::string PPAPINaClTestDisallowedSockets::BuildQuery(
389 const std::string& base, 375 const std::string& base,
390 const std::string& test_case) { 376 const std::string& test_case) {
391 return StringPrintf("%smode=nacl_newlib&testcase=%s", base.c_str(), 377 return StringPrintf("%smode=nacl_newlib&testcase=%s", base.c_str(),
392 test_case.c_str()); 378 test_case.c_str());
393 } 379 }
394 380
395 // This macro finesses macro expansion to do what we want.
396 #define STRIP_PREFIXES(test_name) StripPrefixes(#test_name)
397
398 // Use these macros to run the tests for a specific interface.
399 // Most interfaces should be tested with both macros.
400 #define TEST_PPAPI_IN_PROCESS(test_name) \
401 IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \
402 RunTest(STRIP_PREFIXES(test_name)); \
403 }
404 #define TEST_PPAPI_OUT_OF_PROCESS(test_name) \
405 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \
406 RunTest(STRIP_PREFIXES(test_name)); \
407 }
408
409 // Similar macros that test over HTTP.
410 #define TEST_PPAPI_IN_PROCESS_VIA_HTTP(test_name) \
411 IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \
412 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
413 }
414 #define TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(test_name) \
415 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \
416 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
417 }
418
419 // Similar macros that test with an SSL server.
420 #define TEST_PPAPI_IN_PROCESS_WITH_SSL_SERVER(test_name) \
421 IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \
422 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
423 }
424 #define TEST_PPAPI_OUT_OF_PROCESS_WITH_SSL_SERVER(test_name) \
425 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \
426 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
427 }
428
429 // Similar macros that test with WebSocket server.
430 #define TEST_PPAPI_IN_PROCESS_WITH_WS(test_name) \
431 IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \
432 RunTestWithWebSocketServer(STRIP_PREFIXES(test_name)); \
433 }
434 #define TEST_PPAPI_OUT_OF_PROCESS_WITH_WS(test_name) \
435 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \
436 RunTestWithWebSocketServer(STRIP_PREFIXES(test_name)); \
437 }
438
439 // Similar macros for tests that require an audio device.
440 #define TEST_PPAPI_IN_PROCESS_WITH_AUDIO_OUTPUT(test_name) \
441 IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \
442 RunTestIfAudioOutputAvailable(STRIP_PREFIXES(test_name)); \
443 }
444 #define TEST_PPAPI_OUT_OF_PROCESS_WITH_AUDIO_OUTPUT(test_name) \
445 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \
446 RunTestIfAudioOutputAvailable(STRIP_PREFIXES(test_name)); \
447 }
448
449 #if defined(DISABLE_NACL)
450 #define TEST_PPAPI_NACL_VIA_HTTP(test_name)
451 #define TEST_PPAPI_NACL_VIA_HTTP_DISALLOWED_SOCKETS(test_name)
452 #define TEST_PPAPI_NACL_WITH_SSL_SERVER(test_name)
453 #define TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(test_name)
454 #define TEST_PPAPI_NACL_VIA_HTTP_WITH_AUDIO_OUTPUT(test_name)
455 #else
456
457 // NaCl based PPAPI tests
458 #define TEST_PPAPI_NACL_VIA_HTTP(test_name) \
459 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \
460 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
461 } \
462 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, test_name) { \
463 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
464 }
465
466 // NaCl based PPAPI tests with disallowed socket API
467 #define TEST_PPAPI_NACL_VIA_HTTP_DISALLOWED_SOCKETS(test_name) \
468 IN_PROC_BROWSER_TEST_F(PPAPINaClTestDisallowedSockets, test_name) { \
469 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
470 }
471
472 // NaCl based PPAPI tests with SSL server
473 #define TEST_PPAPI_NACL_WITH_SSL_SERVER(test_name) \
474 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \
475 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
476 } \
477 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, test_name) { \
478 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
479 }
480
481 // NaCl based PPAPI tests with WebSocket server
482 #define TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(test_name) \
483 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \
484 RunTestWithWebSocketServer(STRIP_PREFIXES(test_name)); \
485 } \
486 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, test_name) { \
487 RunTestWithWebSocketServer(STRIP_PREFIXES(test_name)); \
488 }
489
490 // NaCl based PPAPI tests requiring an Audio device.
491 #define TEST_PPAPI_NACL_VIA_HTTP_WITH_AUDIO_OUTPUT(test_name) \
492 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \
493 RunTestViaHTTPIfAudioOutputAvailable(STRIP_PREFIXES(test_name)); \
494 } \
495 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, test_name) { \
496 RunTestViaHTTPIfAudioOutputAvailable(STRIP_PREFIXES(test_name)); \
497 }
498 #endif
499
500
501 //
502 // Interface tests.
503 //
504
505 // Disable tests under ASAN. http://crbug.com/104832.
506 // This is a bit heavy handed, but the majority of these tests fail under ASAN.
507 // See bug for history.
508 #if !defined(ADDRESS_SANITIZER)
509
510 TEST_PPAPI_IN_PROCESS(Broker)
511 // Flaky, http://crbug.com/111355
512 TEST_PPAPI_OUT_OF_PROCESS(DISABLED_Broker)
513
514 TEST_PPAPI_IN_PROCESS(Core)
515 TEST_PPAPI_OUT_OF_PROCESS(Core)
516
517 // Times out on Linux. http://crbug.com/108859
518 #if defined(OS_LINUX)
519 #define MAYBE_InputEvent DISABLED_InputEvent
520 #elif defined(OS_MACOSX)
521 // Flaky on Mac. http://crbug.com/109258
522 #define MAYBE_InputEvent DISABLED_InputEvent
523 #else
524 #define MAYBE_InputEvent InputEvent
525 #endif
526
527 // Flaky on Linux and Windows. http://crbug.com/135403
528 #if defined(OS_LINUX) || defined(OS_WIN)
529 #define MAYBE_ImeInputEvent DISABLED_ImeInputEvent
530 #else
531 #define MAYBE_ImeInputEvent ImeInputEvent
532 #endif
533
534 TEST_PPAPI_IN_PROCESS(MAYBE_InputEvent)
535 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_InputEvent)
536 // TODO(bbudge) Enable when input events are proxied correctly for NaCl.
537 TEST_PPAPI_NACL_VIA_HTTP(DISABLED_InputEvent)
538
539 TEST_PPAPI_IN_PROCESS(MAYBE_ImeInputEvent)
540 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_ImeInputEvent)
541 // TODO(kinaba) Enable when IME events are proxied correctly for NaCl.
542 TEST_PPAPI_NACL_VIA_HTTP(DISABLED_ImeInputEvent)
543
544 TEST_PPAPI_IN_PROCESS(Instance_ExecuteScript);
545 TEST_PPAPI_OUT_OF_PROCESS(Instance_ExecuteScript)
546 // ExecuteScript isn't supported by NaCl.
547
548 // We run and reload the RecursiveObjects test to ensure that the InstanceObject
549 // (and others) are properly cleaned up after the first run.
550 IN_PROC_BROWSER_TEST_F(PPAPITest, Instance_RecursiveObjects) {
551 RunTestAndReload("Instance_RecursiveObjects");
552 }
553 // TODO(dmichael): Make it work out-of-process (or at least see whether we
554 // care).
555 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,
556 DISABLED_Instance_RecursiveObjects) {
557 RunTestAndReload("Instance_RecursiveObjects");
558 }
559 TEST_PPAPI_IN_PROCESS(Instance_LeakedObjectDestructors);
560 TEST_PPAPI_OUT_OF_PROCESS(Instance_LeakedObjectDestructors);
561 // ScriptableObjects aren't supported in NaCl, so Instance_RecursiveObjects and
562 // Instance_TestLeakedObjectDestructors don't make sense for NaCl.
563
564 TEST_PPAPI_IN_PROCESS(Graphics2D)
565 TEST_PPAPI_OUT_OF_PROCESS(Graphics2D)
566 // Graphics2D_Dev isn't supported in NaCl, only test the other interfaces
567 // TODO(jhorwich) Enable when Graphics2D_Dev interfaces are proxied in NaCl.
568 TEST_PPAPI_NACL_VIA_HTTP(Graphics2D_InvalidResource)
569 TEST_PPAPI_NACL_VIA_HTTP(Graphics2D_InvalidSize)
570 TEST_PPAPI_NACL_VIA_HTTP(Graphics2D_Humongous)
571 TEST_PPAPI_NACL_VIA_HTTP(Graphics2D_InitToZero)
572 TEST_PPAPI_NACL_VIA_HTTP(Graphics2D_Describe)
573 TEST_PPAPI_NACL_VIA_HTTP(Graphics2D_Paint)
574 TEST_PPAPI_NACL_VIA_HTTP(Graphics2D_Scroll)
575 TEST_PPAPI_NACL_VIA_HTTP(Graphics2D_Replace)
576 TEST_PPAPI_NACL_VIA_HTTP(Graphics2D_Flush)
577
578 TEST_PPAPI_IN_PROCESS(Graphics3D)
579 TEST_PPAPI_OUT_OF_PROCESS(Graphics3D)
580 TEST_PPAPI_NACL_VIA_HTTP(Graphics3D)
581
582 TEST_PPAPI_IN_PROCESS(ImageData)
583 TEST_PPAPI_OUT_OF_PROCESS(ImageData)
584
585 // PPAPINaClTest.ImageData times out consistently on all platforms.
586 // http://crbug.com/130377
587 TEST_PPAPI_NACL_VIA_HTTP(DISABLED_ImageData)
588
589 TEST_PPAPI_IN_PROCESS(BrowserFont)
590 TEST_PPAPI_OUT_OF_PROCESS(BrowserFont)
591
592 TEST_PPAPI_IN_PROCESS(Buffer)
593 TEST_PPAPI_OUT_OF_PROCESS(Buffer)
594
595 TEST_PPAPI_OUT_OF_PROCESS_WITH_SSL_SERVER(TCPSocketPrivate)
596 TEST_PPAPI_IN_PROCESS_WITH_SSL_SERVER(TCPSocketPrivate)
597 TEST_PPAPI_NACL_WITH_SSL_SERVER(TCPSocketPrivate)
598
599 TEST_PPAPI_OUT_OF_PROCESS_WITH_SSL_SERVER(TCPSocketPrivateTrusted)
600 TEST_PPAPI_IN_PROCESS_WITH_SSL_SERVER(TCPSocketPrivateTrusted)
601
602 TEST_PPAPI_IN_PROCESS_VIA_HTTP(UDPSocketPrivate)
603 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate)
604 TEST_PPAPI_NACL_VIA_HTTP(UDPSocketPrivate)
605
606 TEST_PPAPI_NACL_VIA_HTTP_DISALLOWED_SOCKETS(TCPServerSocketPrivateDisallowed)
607 TEST_PPAPI_NACL_VIA_HTTP_DISALLOWED_SOCKETS(TCPSocketPrivateDisallowed)
608 TEST_PPAPI_NACL_VIA_HTTP_DISALLOWED_SOCKETS(UDPSocketPrivateDisallowed)
609
610 TEST_PPAPI_IN_PROCESS_VIA_HTTP(TCPServerSocketPrivate)
611 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(TCPServerSocketPrivate)
612 TEST_PPAPI_NACL_VIA_HTTP(TCPServerSocketPrivate)
613
614 TEST_PPAPI_IN_PROCESS_VIA_HTTP(HostResolverPrivate_Resolve)
615 TEST_PPAPI_IN_PROCESS_VIA_HTTP(HostResolverPrivate_ResolveIPv4)
616 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(HostResolverPrivate_Resolve)
617 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(HostResolverPrivate_ResolveIPv4)
618 TEST_PPAPI_NACL_VIA_HTTP(HostResolverPrivate_Resolve)
619 TEST_PPAPI_NACL_VIA_HTTP(HostResolverPrivate_ResolveIPv4)
620
621 // URLLoader tests.
622 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_BasicGET)
623 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_BasicPOST)
624 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_BasicFilePOST)
625 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_BasicFileRangePOST)
626 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_CompoundBodyPOST)
627 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_EmptyDataPOST)
628 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_BinaryDataPOST)
629 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_CustomRequestHeader)
630 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_FailsBogusContentLength)
631 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_StreamToFile)
632 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_UntrustedSameOriginRestriction)
633 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_TrustedSameOriginRestriction)
634 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_UntrustedCrossOriginRequest)
635 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_TrustedCrossOriginRequest)
636 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_UntrustedJavascriptURLRestriction)
637 // TODO(bbudge) Fix Javascript URLs for trusted loaders.
638 // http://crbug.com/103062
639 TEST_PPAPI_IN_PROCESS_VIA_HTTP(
640 DISABLED_URLLoader_TrustedJavascriptURLRestriction)
641 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_UntrustedHttpRequests)
642 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_TrustedHttpRequests)
643 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_FollowURLRedirect)
644 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_AuditURLRedirect)
645 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_AbortCalls)
646 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_UntendedLoad)
647 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_PrefetchBufferThreshold)
648
649 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_BasicGET)
650 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_BasicPOST)
651 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_BasicFilePOST)
652 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_BasicFileRangePOST)
653 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_CompoundBodyPOST)
654 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_EmptyDataPOST)
655 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_BinaryDataPOST)
656 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_CustomRequestHeader)
657 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_FailsBogusContentLength)
658 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_StreamToFile)
659 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_UntrustedSameOriginRestriction)
660 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_TrustedSameOriginRestriction)
661 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_UntrustedCrossOriginRequest)
662 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_TrustedCrossOriginRequest)
663 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_UntrustedJavascriptURLRestriction)
664 // TODO(bbudge) Fix Javascript URLs for trusted loaders.
665 // http://crbug.com/103062
666 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(
667 DISABLED_URLLoader_TrustedJavascriptURLRestriction)
668 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_UntrustedHttpRequests)
669 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_TrustedHttpRequests)
670 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_FollowURLRedirect)
671 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_AuditURLRedirect)
672 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_AbortCalls)
673 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_UntendedLoad)
674
675 TEST_PPAPI_NACL_VIA_HTTP(URLLoader_BasicGET)
676 TEST_PPAPI_NACL_VIA_HTTP(URLLoader_BasicPOST)
677 TEST_PPAPI_NACL_VIA_HTTP(URLLoader_BasicFilePOST)
678 TEST_PPAPI_NACL_VIA_HTTP(URLLoader_BasicFileRangePOST)
679 TEST_PPAPI_NACL_VIA_HTTP(URLLoader_CompoundBodyPOST)
680 TEST_PPAPI_NACL_VIA_HTTP(URLLoader_EmptyDataPOST)
681 TEST_PPAPI_NACL_VIA_HTTP(URLLoader_BinaryDataPOST)
682 TEST_PPAPI_NACL_VIA_HTTP(URLLoader_CustomRequestHeader)
683 TEST_PPAPI_NACL_VIA_HTTP(URLLoader_FailsBogusContentLength)
684 TEST_PPAPI_NACL_VIA_HTTP(URLLoader_StreamToFile)
685 TEST_PPAPI_NACL_VIA_HTTP(URLLoader_UntrustedSameOriginRestriction)
686 TEST_PPAPI_NACL_VIA_HTTP(URLLoader_UntrustedCrossOriginRequest)
687 TEST_PPAPI_NACL_VIA_HTTP(URLLoader_UntrustedJavascriptURLRestriction)
688 TEST_PPAPI_NACL_VIA_HTTP(URLLoader_UntrustedHttpRequests)
689 TEST_PPAPI_NACL_VIA_HTTP(URLLoader_FollowURLRedirect)
690 TEST_PPAPI_NACL_VIA_HTTP(URLLoader_AuditURLRedirect)
691 TEST_PPAPI_NACL_VIA_HTTP(URLLoader_AbortCalls)
692 TEST_PPAPI_NACL_VIA_HTTP(URLLoader_UntendedLoad)
693
694 // URLRequestInfo tests.
695 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_CreateAndIsURLRequestInfo)
696 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_CreateAndIsURLRequestInfo)
697
698 // Timing out on Windows. http://crbug.com/129571
699 #if defined(OS_WIN)
700 #define MAYBE_URLRequest_CreateAndIsURLRequestInfo \
701 FLAKY_URLRequest_CreateAndIsURLRequestInfo
702 #else
703 #define MAYBE_URLRequest_CreateAndIsURLRequestInfo \
704 URLRequest_CreateAndIsURLRequestInfo
705 #endif
706 TEST_PPAPI_NACL_VIA_HTTP(MAYBE_URLRequest_CreateAndIsURLRequestInfo)
707
708 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_SetProperty)
709 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_SetProperty)
710 TEST_PPAPI_NACL_VIA_HTTP(URLRequest_SetProperty)
711 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_AppendDataToBody)
712 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_AppendDataToBody)
713 TEST_PPAPI_NACL_VIA_HTTP(URLRequest_AppendDataToBody)
714 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_Stress)
715 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_Stress)
716 TEST_PPAPI_NACL_VIA_HTTP(URLRequest_Stress)
717
718 TEST_PPAPI_IN_PROCESS(PaintAggregator)
719 TEST_PPAPI_OUT_OF_PROCESS(PaintAggregator)
720 TEST_PPAPI_NACL_VIA_HTTP(PaintAggregator)
721
722 // TODO(danakj): http://crbug.com/115286
723 TEST_PPAPI_IN_PROCESS(DISABLED_Scrollbar)
724 // http://crbug.com/89961
725 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, DISABLED_Scrollbar) {
726 RunTest("Scrollbar");
727 }
728 // TODO(danakj): http://crbug.com/115286
729 TEST_PPAPI_NACL_VIA_HTTP(DISABLED_Scrollbar)
730
731 TEST_PPAPI_IN_PROCESS(URLUtil)
732 TEST_PPAPI_OUT_OF_PROCESS(URLUtil)
733
734 TEST_PPAPI_IN_PROCESS(CharSet)
735 TEST_PPAPI_OUT_OF_PROCESS(CharSet)
736
737 TEST_PPAPI_IN_PROCESS(Crypto)
738 TEST_PPAPI_OUT_OF_PROCESS(Crypto)
739
740 TEST_PPAPI_IN_PROCESS(Var)
741 TEST_PPAPI_OUT_OF_PROCESS(Var)
742 TEST_PPAPI_NACL_VIA_HTTP(Var)
743
744 // Flaky on mac, http://crbug.com/121107
745 #if defined(OS_MACOSX)
746 #define MAYBE_VarDeprecated DISABLED_VarDeprecated
747 #else
748 #define MAYBE_VarDeprecated VarDeprecated
749 #endif
750
751 TEST_PPAPI_IN_PROCESS(VarDeprecated)
752 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_VarDeprecated)
753
754 // Windows defines 'PostMessage', so we have to undef it.
755 #ifdef PostMessage
756 #undef PostMessage
757 #endif
758 TEST_PPAPI_IN_PROCESS(PostMessage_SendInInit)
759 TEST_PPAPI_IN_PROCESS(PostMessage_SendingData)
760 // TODO(danakj): http://crbug.com/115286
761 TEST_PPAPI_IN_PROCESS(DISABLED_PostMessage_SendingArrayBuffer)
762 TEST_PPAPI_IN_PROCESS(PostMessage_MessageEvent)
763 TEST_PPAPI_IN_PROCESS(PostMessage_NoHandler)
764 TEST_PPAPI_IN_PROCESS(PostMessage_ExtraParam)
765 TEST_PPAPI_OUT_OF_PROCESS(PostMessage_SendInInit)
766 TEST_PPAPI_OUT_OF_PROCESS(PostMessage_SendingData)
767 TEST_PPAPI_OUT_OF_PROCESS(PostMessage_SendingArrayBuffer)
768 TEST_PPAPI_OUT_OF_PROCESS(PostMessage_MessageEvent)
769 TEST_PPAPI_OUT_OF_PROCESS(PostMessage_NoHandler)
770 TEST_PPAPI_OUT_OF_PROCESS(PostMessage_ExtraParam)
771 #if !defined(OS_WIN) && !(defined(OS_LINUX) && defined(ARCH_CPU_64_BITS))
772 // Times out on Windows XP, Windows 7, and Linux x64: http://crbug.com/95557
773 TEST_PPAPI_OUT_OF_PROCESS(PostMessage_NonMainThread)
774 #endif
775 TEST_PPAPI_NACL_VIA_HTTP(PostMessage_SendInInit)
776 TEST_PPAPI_NACL_VIA_HTTP(PostMessage_SendingData)
777 TEST_PPAPI_NACL_VIA_HTTP(SLOW_PostMessage_SendingArrayBuffer)
778 TEST_PPAPI_NACL_VIA_HTTP(PostMessage_MessageEvent)
779 TEST_PPAPI_NACL_VIA_HTTP(PostMessage_NoHandler)
780
781 #if defined(OS_WIN)
782 // Flaky: http://crbug.com/111209
783 //
784 // Note from sheriffs miket and syzm: we're not convinced that this test is
785 // directly to blame for the flakiness. It's possible that it's a more general
786 // problem that is exposing itself only with one of the later tests in this
787 // series.
788 TEST_PPAPI_NACL_VIA_HTTP(DISABLED_PostMessage_ExtraParam)
789 #else
790 TEST_PPAPI_NACL_VIA_HTTP(PostMessage_ExtraParam)
791 #endif
792
793 TEST_PPAPI_IN_PROCESS(Memory)
794 TEST_PPAPI_OUT_OF_PROCESS(Memory)
795 TEST_PPAPI_NACL_VIA_HTTP(Memory)
796
797 TEST_PPAPI_IN_PROCESS(VideoDecoder)
798 TEST_PPAPI_OUT_OF_PROCESS(VideoDecoder)
799
800 // Touch and SetLength fail on Mac and Linux due to sandbox restrictions.
801 // http://crbug.com/101128
802 #if defined(OS_MACOSX) || defined(OS_LINUX)
803 #define MAYBE_FileIO_ReadWriteSetLength DISABLED_FileIO_ReadWriteSetLength
804 #define MAYBE_FileIO_TouchQuery DISABLED_FileIO_TouchQuery
805 #define MAYBE_FileIO_WillWriteWillSetLength \
806 DISABLED_FileIO_WillWriteWillSetLength
807 #else
808 #define MAYBE_FileIO_ReadWriteSetLength FileIO_ReadWriteSetLength
809 #define MAYBE_FileIO_TouchQuery FileIO_TouchQuery
810 #define MAYBE_FileIO_WillWriteWillSetLength FileIO_WillWriteWillSetLength
811 #endif
812
813 TEST_PPAPI_IN_PROCESS_VIA_HTTP(FileIO_Open)
814 TEST_PPAPI_IN_PROCESS_VIA_HTTP(FileIO_AbortCalls)
815 TEST_PPAPI_IN_PROCESS_VIA_HTTP(FileIO_ParallelReads)
816 TEST_PPAPI_IN_PROCESS_VIA_HTTP(FileIO_ParallelWrites)
817 TEST_PPAPI_IN_PROCESS_VIA_HTTP(FileIO_NotAllowMixedReadWrite)
818 TEST_PPAPI_IN_PROCESS_VIA_HTTP(MAYBE_FileIO_ReadWriteSetLength)
819 TEST_PPAPI_IN_PROCESS_VIA_HTTP(MAYBE_FileIO_TouchQuery)
820 TEST_PPAPI_IN_PROCESS_VIA_HTTP(MAYBE_FileIO_WillWriteWillSetLength)
821
822 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileIO_Open)
823 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileIO_AbortCalls)
824 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileIO_ParallelReads)
825 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileIO_ParallelWrites)
826 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileIO_NotAllowMixedReadWrite)
827 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(MAYBE_FileIO_ReadWriteSetLength)
828 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(MAYBE_FileIO_TouchQuery)
829 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(MAYBE_FileIO_WillWriteWillSetLength)
830
831 // PPAPINaclTest.FileIO_ParallelReads is flaky on Mac. http://crbug.com/121104
832 #if defined(OS_MACOSX)
833 #define MAYBE_FileIO_ParallelReads DISABLED_FileIO_ParallelReads
834 #else
835 #define MAYBE_FileIO_ParallelReads FileIO_ParallelReads
836 #endif
837
838 // PPAPINaclTest.FileIO_TouchQuery is flaky on Windows. http://crbug.com/130349
839 #if defined(OS_WIN)
840 #define MAYBE_NACL_FileIO_TouchQuery DISABLED_FileIO_TouchQuery
841 #else
842 #define MAYBE_NACL_FileIO_TouchQuery MAYBE_FileIO_TouchQuery
843 #endif
844
845 TEST_PPAPI_NACL_VIA_HTTP(FileIO_Open)
846 TEST_PPAPI_NACL_VIA_HTTP(FileIO_AbortCalls)
847 TEST_PPAPI_NACL_VIA_HTTP(MAYBE_FileIO_ParallelReads)
848 TEST_PPAPI_NACL_VIA_HTTP(FileIO_ParallelWrites)
849 TEST_PPAPI_NACL_VIA_HTTP(FileIO_NotAllowMixedReadWrite)
850 TEST_PPAPI_NACL_VIA_HTTP(MAYBE_NACL_FileIO_TouchQuery)
851 TEST_PPAPI_NACL_VIA_HTTP(MAYBE_FileIO_ReadWriteSetLength)
852 // The following test requires PPB_FileIO_Trusted, not available in NaCl.
853 TEST_PPAPI_NACL_VIA_HTTP(DISABLED_FileIO_WillWriteWillSetLength)
854
855 TEST_PPAPI_IN_PROCESS_VIA_HTTP(FileRef)
856 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileRef)
857 TEST_PPAPI_NACL_VIA_HTTP(FileRef)
858
859 TEST_PPAPI_IN_PROCESS_VIA_HTTP(FileSystem)
860 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileSystem)
861
862 // PPAPINaClTest.FileSystem times out consistently on Windows and Mac.
863 // http://crbug.com/130372
864 #if defined(OS_MACOSX) || defined(OS_WIN)
865 #define MAYBE_FileSystem DISABLED_FileSystem
866 #else
867 #define MAYBE_FileSystem FileSystem
868 #endif
869
870 TEST_PPAPI_NACL_VIA_HTTP(MAYBE_FileSystem)
871
872 // Mac/Aura reach NOTIMPLEMENTED/time out.
873 // Other systems work in-process, but flake out-of-process because of the
874 // asyncronous nature of the proxy.
875 // mac: http://crbug.com/96767
876 // aura: http://crbug.com/104384
877 // async flakiness: http://crbug.com/108471
878 #if defined(OS_MACOSX) || defined(USE_AURA)
879 #define MAYBE_FlashFullscreen DISABLED_FlashFullscreen
880 #define MAYBE_OutOfProcessFlashFullscreen DISABLED_FlashFullscreen
881 #else
882 #define MAYBE_FlashFullscreen FlashFullscreen
883 #define MAYBE_OutOfProcessFlashFullscreen FlashFullscreen
884 #endif
885
886 IN_PROC_BROWSER_TEST_F(PPAPITest, MAYBE_FlashFullscreen) {
887 RunTestViaHTTP("FlashFullscreen");
888 }
889 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, MAYBE_OutOfProcessFlashFullscreen) {
890 RunTestViaHTTP("FlashFullscreen");
891 }
892
893 TEST_PPAPI_IN_PROCESS_VIA_HTTP(Fullscreen)
894 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(Fullscreen)
895
896 TEST_PPAPI_IN_PROCESS(FlashClipboard)
897 TEST_PPAPI_OUT_OF_PROCESS(FlashClipboard)
898
899 TEST_PPAPI_IN_PROCESS(X509CertificatePrivate)
900 TEST_PPAPI_OUT_OF_PROCESS(X509CertificatePrivate)
901
902 // http://crbug.com/63239
903 #if defined(OS_POSIX)
904 #define MAYBE_DirectoryReader DISABLED_DirectoryReader
905 #else
906 #define MAYBE_DirectoryReader DirectoryReader
907 #endif
908
909 // Flaky on Mac + Linux, maybe http://codereview.chromium.org/7094008
910 // Not implemented out of process: http://crbug.com/106129
911 IN_PROC_BROWSER_TEST_F(PPAPITest, MAYBE_DirectoryReader) {
912 RunTestViaHTTP("DirectoryReader");
913 }
914
915 // There is no proxy. This is used for PDF metrics reporting, and PDF only
916 // runs in process, so there's currently no need for a proxy.
917 TEST_PPAPI_IN_PROCESS(UMA)
918
919 TEST_PPAPI_IN_PROCESS(NetAddressPrivate_AreEqual)
920 TEST_PPAPI_IN_PROCESS(NetAddressPrivate_AreHostsEqual)
921 TEST_PPAPI_IN_PROCESS(NetAddressPrivate_Describe)
922 TEST_PPAPI_IN_PROCESS(NetAddressPrivate_ReplacePort)
923 TEST_PPAPI_IN_PROCESS(NetAddressPrivate_GetAnyAddress)
924 TEST_PPAPI_IN_PROCESS(NetAddressPrivate_DescribeIPv6)
925 TEST_PPAPI_IN_PROCESS(NetAddressPrivate_GetFamily)
926 TEST_PPAPI_IN_PROCESS(NetAddressPrivate_GetPort)
927 TEST_PPAPI_IN_PROCESS(NetAddressPrivate_GetAddress)
928 TEST_PPAPI_IN_PROCESS(NetAddressPrivate_GetScopeID)
929 TEST_PPAPI_OUT_OF_PROCESS(NetAddressPrivate_AreEqual)
930 TEST_PPAPI_OUT_OF_PROCESS(NetAddressPrivate_AreHostsEqual)
931 TEST_PPAPI_OUT_OF_PROCESS(NetAddressPrivate_Describe)
932 TEST_PPAPI_OUT_OF_PROCESS(NetAddressPrivate_ReplacePort)
933 TEST_PPAPI_OUT_OF_PROCESS(NetAddressPrivate_GetAnyAddress)
934 TEST_PPAPI_OUT_OF_PROCESS(NetAddressPrivate_DescribeIPv6)
935 TEST_PPAPI_OUT_OF_PROCESS(NetAddressPrivate_GetFamily)
936 TEST_PPAPI_OUT_OF_PROCESS(NetAddressPrivate_GetPort)
937 TEST_PPAPI_OUT_OF_PROCESS(NetAddressPrivate_GetAddress)
938 TEST_PPAPI_OUT_OF_PROCESS(NetAddressPrivate_GetScopeID)
939
940 // Frequently timing out on Windows. http://crbug.com/115440
941 #if defined(OS_WIN)
942 #define MAYBE_NetAddressPrivateUntrusted_Describe \
943 DISABLED_NetAddressPrivateUntrusted_Describe
944 #define MAYBE_NetAddressPrivateUntrusted_ReplacePort \
945 DISABLED_NetAddressPrivateUntrusted_ReplacePort
946 #define MAYBE_NetAddressPrivateUntrusted_GetPort \
947 DISABLED_NetAddressPrivateUntrusted_GetPort
948 #else
949 #define MAYBE_NetAddressPrivateUntrusted_Describe \
950 NetAddressPrivateUntrusted_Describe
951 #define MAYBE_NetAddressPrivateUntrusted_ReplacePort \
952 NetAddressPrivateUntrusted_ReplacePort
953 #define MAYBE_NetAddressPrivateUntrusted_GetPort \
954 NetAddressPrivateUntrusted_GetPort
955 #endif
956
957 // PPAPINaClTest.NetAddressPrivateUntrusted_GetFamily timing out frequently on
958 // Windows and Mac. http://crbug.com/130380
959 #if defined(OS_WIN) || defined(OS_MACOSX)
960 #define MAYBE_NetAddressPrivateUntrusted_GetFamily DISABLED_NetAddressPrivateUnt rusted_GetFamily
961 #else
962 #define MAYBE_NetAddressPrivateUntrusted_GetFamily NetAddressPrivateUntrusted_Ge tFamily
963 #endif
964
965 TEST_PPAPI_NACL_VIA_HTTP(NetAddressPrivateUntrusted_AreEqual)
966 TEST_PPAPI_NACL_VIA_HTTP(NetAddressPrivateUntrusted_AreHostsEqual)
967 TEST_PPAPI_NACL_VIA_HTTP(MAYBE_NetAddressPrivateUntrusted_Describe)
968 TEST_PPAPI_NACL_VIA_HTTP(MAYBE_NetAddressPrivateUntrusted_ReplacePort)
969 TEST_PPAPI_NACL_VIA_HTTP(NetAddressPrivateUntrusted_GetAnyAddress)
970 TEST_PPAPI_NACL_VIA_HTTP(MAYBE_NetAddressPrivateUntrusted_GetFamily)
971 TEST_PPAPI_NACL_VIA_HTTP(MAYBE_NetAddressPrivateUntrusted_GetPort)
972 TEST_PPAPI_NACL_VIA_HTTP(NetAddressPrivateUntrusted_GetAddress)
973
974 TEST_PPAPI_IN_PROCESS(NetworkMonitorPrivate_Basic)
975 TEST_PPAPI_OUT_OF_PROCESS(NetworkMonitorPrivate_Basic)
976 TEST_PPAPI_IN_PROCESS(NetworkMonitorPrivate_2Monitors)
977 TEST_PPAPI_OUT_OF_PROCESS(NetworkMonitorPrivate_2Monitors)
978 TEST_PPAPI_IN_PROCESS(NetworkMonitorPrivate_DeleteInCallback)
979 TEST_PPAPI_OUT_OF_PROCESS(NetworkMonitorPrivate_DeleteInCallback)
980 TEST_PPAPI_IN_PROCESS(NetworkMonitorPrivate_ListObserver)
981 TEST_PPAPI_OUT_OF_PROCESS(NetworkMonitorPrivate_ListObserver)
982
983 TEST_PPAPI_IN_PROCESS(Flash_SetInstanceAlwaysOnTop)
984 TEST_PPAPI_IN_PROCESS(Flash_GetProxyForURL)
985 TEST_PPAPI_IN_PROCESS(Flash_MessageLoop)
986 TEST_PPAPI_IN_PROCESS(Flash_GetLocalTimeZoneOffset)
987 TEST_PPAPI_IN_PROCESS(Flash_GetCommandLineArgs)
988 TEST_PPAPI_IN_PROCESS(Flash_GetDeviceID)
989 TEST_PPAPI_IN_PROCESS(Flash_GetSettingInt)
990 TEST_PPAPI_IN_PROCESS(Flash_GetSetting)
991 TEST_PPAPI_OUT_OF_PROCESS(Flash_SetInstanceAlwaysOnTop)
992 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetProxyForURL)
993 TEST_PPAPI_OUT_OF_PROCESS(Flash_MessageLoop)
994 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetLocalTimeZoneOffset)
995 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetCommandLineArgs)
996 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetDeviceID)
997 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetSettingInt)
998 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetSetting)
999
1000 TEST_PPAPI_IN_PROCESS(WebSocket_IsWebSocket)
1001 TEST_PPAPI_IN_PROCESS(WebSocket_UninitializedPropertiesAccess)
1002 TEST_PPAPI_IN_PROCESS(WebSocket_InvalidConnect)
1003 TEST_PPAPI_IN_PROCESS(WebSocket_Protocols)
1004 TEST_PPAPI_IN_PROCESS(WebSocket_GetURL)
1005 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_ValidConnect)
1006 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_InvalidClose)
1007 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_ValidClose)
1008 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_GetProtocol)
1009 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_TextSendReceive)
1010 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_BinarySendReceive)
1011 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_StressedSendReceive)
1012 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_BufferedAmount)
1013 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_AbortCalls)
1014 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_CcInterfaces)
1015 TEST_PPAPI_IN_PROCESS(WebSocket_UtilityInvalidConnect)
1016 TEST_PPAPI_IN_PROCESS(WebSocket_UtilityProtocols)
1017 TEST_PPAPI_IN_PROCESS(WebSocket_UtilityGetURL)
1018 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_UtilityValidConnect)
1019 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_UtilityInvalidClose)
1020 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_UtilityValidClose)
1021 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_UtilityGetProtocol)
1022 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_UtilityTextSendReceive)
1023 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_UtilityBinarySendReceive)
1024 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_UtilityBufferedAmount)
1025 TEST_PPAPI_NACL_VIA_HTTP(WebSocket_IsWebSocket)
1026 TEST_PPAPI_NACL_VIA_HTTP(WebSocket_UninitializedPropertiesAccess)
1027 TEST_PPAPI_NACL_VIA_HTTP(WebSocket_InvalidConnect)
1028 TEST_PPAPI_NACL_VIA_HTTP(WebSocket_Protocols)
1029 TEST_PPAPI_NACL_VIA_HTTP(WebSocket_GetURL)
1030 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_ValidConnect)
1031 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_InvalidClose)
1032 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_ValidClose)
1033 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_GetProtocol)
1034 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_TextSendReceive)
1035 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_BinarySendReceive)
1036 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_StressedSendReceive)
1037 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_BufferedAmount)
1038 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_AbortCalls)
1039 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_CcInterfaces)
1040 TEST_PPAPI_NACL_VIA_HTTP(WebSocket_UtilityInvalidConnect)
1041 TEST_PPAPI_NACL_VIA_HTTP(WebSocket_UtilityProtocols)
1042 TEST_PPAPI_NACL_VIA_HTTP(WebSocket_UtilityGetURL)
1043 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_UtilityValidConnect)
1044 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_UtilityInvalidClose)
1045 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_UtilityValidClose)
1046 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_UtilityGetProtocol)
1047 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_UtilityTextSendReceive)
1048 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_UtilityBinarySendReceive)
1049 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_UtilityBufferedAmount)
1050
1051 TEST_PPAPI_IN_PROCESS(AudioConfig_RecommendSampleRate)
1052 TEST_PPAPI_IN_PROCESS(AudioConfig_ValidConfigs)
1053 TEST_PPAPI_IN_PROCESS(AudioConfig_InvalidConfigs)
1054 TEST_PPAPI_OUT_OF_PROCESS(AudioConfig_RecommendSampleRate)
1055 TEST_PPAPI_OUT_OF_PROCESS(AudioConfig_ValidConfigs)
1056 TEST_PPAPI_OUT_OF_PROCESS(AudioConfig_InvalidConfigs)
1057 TEST_PPAPI_NACL_VIA_HTTP(AudioConfig_RecommendSampleRate)
1058 TEST_PPAPI_NACL_VIA_HTTP(AudioConfig_ValidConfigs)
1059 TEST_PPAPI_NACL_VIA_HTTP(AudioConfig_InvalidConfigs)
1060
1061 // Only run audio output tests if we have an audio device available.
1062 // TODO(raymes): We should probably test scenarios where there is no audio
1063 // device available.
1064 TEST_PPAPI_IN_PROCESS_WITH_AUDIO_OUTPUT(Audio_Creation)
1065 TEST_PPAPI_IN_PROCESS_WITH_AUDIO_OUTPUT(Audio_DestroyNoStop)
1066 TEST_PPAPI_IN_PROCESS_WITH_AUDIO_OUTPUT(Audio_Failures)
1067 TEST_PPAPI_IN_PROCESS_WITH_AUDIO_OUTPUT(Audio_AudioCallback1)
1068 TEST_PPAPI_IN_PROCESS_WITH_AUDIO_OUTPUT(Audio_AudioCallback2)
1069 TEST_PPAPI_OUT_OF_PROCESS_WITH_AUDIO_OUTPUT(Audio_Creation)
1070 TEST_PPAPI_OUT_OF_PROCESS_WITH_AUDIO_OUTPUT(Audio_DestroyNoStop)
1071 TEST_PPAPI_OUT_OF_PROCESS_WITH_AUDIO_OUTPUT(Audio_Failures)
1072 TEST_PPAPI_OUT_OF_PROCESS_WITH_AUDIO_OUTPUT(Audio_AudioCallback1)
1073 TEST_PPAPI_OUT_OF_PROCESS_WITH_AUDIO_OUTPUT(Audio_AudioCallback2)
1074 TEST_PPAPI_NACL_VIA_HTTP_WITH_AUDIO_OUTPUT(Audio_Creation)
1075 TEST_PPAPI_NACL_VIA_HTTP_WITH_AUDIO_OUTPUT(Audio_DestroyNoStop)
1076 TEST_PPAPI_NACL_VIA_HTTP_WITH_AUDIO_OUTPUT(Audio_Failures)
1077 TEST_PPAPI_NACL_VIA_HTTP_WITH_AUDIO_OUTPUT(Audio_AudioCallback1)
1078 TEST_PPAPI_NACL_VIA_HTTP_WITH_AUDIO_OUTPUT(Audio_AudioCallback2)
1079
1080 TEST_PPAPI_IN_PROCESS(View_CreatedVisible);
1081 TEST_PPAPI_OUT_OF_PROCESS(View_CreatedVisible);
1082 TEST_PPAPI_NACL_VIA_HTTP(View_CreatedVisible);
1083 // This test ensures that plugins created in a background tab have their
1084 // initial visibility set to false. We don't bother testing in-process for this
1085 // custom test since the out of process code also exercises in-process.
1086
1087 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, View_CreateInvisible) {
1088 // Make a second tab in the foreground.
1089 GURL url = GetTestFileUrl("View_CreatedInvisible");
1090 chrome::NavigateParams params(browser(), url, content::PAGE_TRANSITION_LINK);
1091 params.disposition = NEW_BACKGROUND_TAB;
1092 ui_test_utils::NavigateToURL(&params);
1093 }
1094
1095 // This test messes with tab visibility so is custom.
1096 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, View_PageHideShow) {
1097 // The plugin will be loaded in the foreground tab and will send us a message.
1098 TestFinishObserver observer(
1099 chrome::GetActiveWebContents(browser())->GetRenderViewHost(),
1100 TestTimeouts::action_max_timeout_ms());
1101
1102 GURL url = GetTestFileUrl("View_PageHideShow");
1103 ui_test_utils::NavigateToURL(browser(), url);
1104
1105 ASSERT_TRUE(observer.WaitForFinish()) << "Test timed out.";
1106 EXPECT_STREQ("TestPageHideShow:Created", observer.result().c_str());
1107 observer.Reset();
1108
1109 // Make a new tab to cause the original one to hide, this should trigger the
1110 // next phase of the test.
1111 chrome::NavigateParams params(browser(), GURL(chrome::kAboutBlankURL),
1112 content::PAGE_TRANSITION_LINK);
1113 params.disposition = NEW_FOREGROUND_TAB;
1114 ui_test_utils::NavigateToURL(&params);
1115
1116 // Wait until the test acks that it got hidden.
1117 ASSERT_TRUE(observer.WaitForFinish()) << "Test timed out.";
1118 EXPECT_STREQ("TestPageHideShow:Hidden", observer.result().c_str());
1119
1120 // Wait for the test completion event.
1121 observer.Reset();
1122
1123 // Switch back to the test tab.
1124 chrome::ActivateTabAt(browser(), 0, true);
1125
1126 ASSERT_TRUE(observer.WaitForFinish()) << "Test timed out.";
1127 EXPECT_STREQ("PASS", observer.result().c_str());
1128 }
1129
1130 // Tests that if a plugin accepts touch events, the browser knows to send touch
1131 // events to the renderer.
1132 IN_PROC_BROWSER_TEST_F(PPAPITest, InputEvent_AcceptTouchEvent) {
1133 std::string positive_tests[] = { "InputEvent_AcceptTouchEvent_1",
1134 "InputEvent_AcceptTouchEvent_3",
1135 "InputEvent_AcceptTouchEvent_4"
1136 };
1137
1138 for (size_t i = 0; i < arraysize(positive_tests); ++i) {
1139 RenderViewHost* host = chrome::GetActiveWebContents(browser())->
1140 GetRenderViewHost();
1141 RunTest(positive_tests[i]);
1142 EXPECT_TRUE(content::RenderViewHostTester::HasTouchEventHandler(host));
1143 }
1144
1145 std::string negative_tests[] = { "InputEvent_AcceptTouchEvent_2" };
1146 for (size_t i = 0; i < arraysize(negative_tests); ++i) {
1147 RenderViewHost* host = chrome::GetActiveWebContents(browser())->
1148 GetRenderViewHost();
1149 RunTest(negative_tests[i]);
1150 EXPECT_FALSE(content::RenderViewHostTester::HasTouchEventHandler(host));
1151 }
1152 }
1153
1154 TEST_PPAPI_IN_PROCESS(View_SizeChange);
1155 TEST_PPAPI_OUT_OF_PROCESS(View_SizeChange);
1156 TEST_PPAPI_NACL_VIA_HTTP(View_SizeChange);
1157 TEST_PPAPI_IN_PROCESS(View_ClipChange);
1158 TEST_PPAPI_OUT_OF_PROCESS(View_ClipChange);
1159 TEST_PPAPI_NACL_VIA_HTTP(View_ClipChange);
1160
1161 TEST_PPAPI_IN_PROCESS(ResourceArray_Basics)
1162 TEST_PPAPI_IN_PROCESS(ResourceArray_OutOfRangeAccess)
1163 TEST_PPAPI_IN_PROCESS(ResourceArray_EmptyArray)
1164 TEST_PPAPI_IN_PROCESS(ResourceArray_InvalidElement)
1165 TEST_PPAPI_OUT_OF_PROCESS(ResourceArray_Basics)
1166 TEST_PPAPI_OUT_OF_PROCESS(ResourceArray_OutOfRangeAccess)
1167 TEST_PPAPI_OUT_OF_PROCESS(ResourceArray_EmptyArray)
1168 TEST_PPAPI_OUT_OF_PROCESS(ResourceArray_InvalidElement)
1169
1170 TEST_PPAPI_IN_PROCESS(FlashMessageLoop_Basics)
1171 TEST_PPAPI_IN_PROCESS(FlashMessageLoop_RunWithoutQuit)
1172 TEST_PPAPI_OUT_OF_PROCESS(FlashMessageLoop_Basics)
1173 TEST_PPAPI_OUT_OF_PROCESS(FlashMessageLoop_RunWithoutQuit)
1174
1175 TEST_PPAPI_IN_PROCESS(MouseCursor)
1176 TEST_PPAPI_OUT_OF_PROCESS(MouseCursor)
1177 TEST_PPAPI_NACL_VIA_HTTP(MouseCursor)
1178
1179 // Only enabled in out-of-process mode.
1180 TEST_PPAPI_OUT_OF_PROCESS(FlashFile_CreateTemporaryFile)
1181
1182 #endif // ADDRESS_SANITIZER
OLDNEW
« no previous file with comments | « chrome/test/ppapi/ppapi_test.h ('k') | chrome/test/ui/ppapi_uitest.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698