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 3 // found in the LICENSE file. 4 5 #include "chrome/test/ppapi/ppapi_test.h" 6 7 #include "base/test/test_timeouts.h" 8 #include "build/build_config.h" 9 #include "chrome/browser/content_settings/host_content_settings_map.h" 10 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/ui/browser.h" 12 #include "chrome/browser/ui/browser_navigator.h" 13 #include "chrome/browser/ui/tabs/tab_strip_model.h" 14 #include "chrome/test/base/javascript_test_observer.h" 15 #include "chrome/test/base/ui_test_utils.h" 16 #include "content/public/browser/web_contents.h" 17 #include "content/public/common/url_constants.h" 18 #include "content/public/test/test_renderer_host.h" 19 20 using content::RenderViewHost; 21 22 // This macro finesses macro expansion to do what we want. 23 #define STRIP_PREFIXES(test_name) StripPrefixes(#test_name) 24 // Turn the given token into a string. This allows us to use precompiler stuff 25 // to turn names into DISABLED_Foo, but still pass a string to RunTest. 26 #define STRINGIFY(test_name) #test_name 27 #define LIST_TEST(test_name) STRINGIFY(test_name) "," 28 29 // Use these macros to run the tests for a specific interface. 30 // Most interfaces should be tested with both macros. 31 #define TEST_PPAPI_IN_PROCESS(test_name) \ 32 IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \ 33 RunTest(STRIP_PREFIXES(test_name)); \ 34 } 35 #define TEST_PPAPI_OUT_OF_PROCESS(test_name) \ 36 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \ 37 RunTest(STRIP_PREFIXES(test_name)); \ 38 } 39 40 // Similar macros that test over HTTP. 41 #define TEST_PPAPI_IN_PROCESS_VIA_HTTP(test_name) \ 42 IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \ 43 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \ 44 } 45 #define TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(test_name) \ 46 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \ 47 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \ 48 } 49 50 // Similar macros that test with an SSL server. 51 #define TEST_PPAPI_IN_PROCESS_WITH_SSL_SERVER(test_name) \ 52 IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \ 53 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \ 54 } 55 #define TEST_PPAPI_OUT_OF_PROCESS_WITH_SSL_SERVER(test_name) \ 56 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \ 57 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \ 58 } 59 60 #if defined(DISABLE_NACL) 61 #define TEST_PPAPI_NACL(test_name) 62 #define TEST_PPAPI_NACL_DISALLOWED_SOCKETS(test_name) 63 #define TEST_PPAPI_NACL_WITH_SSL_SERVER(test_name) 64 65 #elif defined(ARCH_CPU_ARM_FAMILY) 66 // NaCl glibc tests are not included in ARM as there is no glibc support 67 // on ARM today. 68 #define TEST_PPAPI_NACL(test_name) \ 69 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \ 70 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \ 71 } \ 72 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, test_name) { \ 73 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \ 74 } 75 76 #define TEST_PPAPI_NACL_DISALLOWED_SOCKETS(test_name) \ 77 IN_PROC_BROWSER_TEST_F(PPAPINaClTestDisallowedSockets, test_name) { \ 78 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \ 79 } 80 81 #define TEST_PPAPI_NACL_WITH_SSL_SERVER(test_name) \ 82 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \ 83 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \ 84 } \ 85 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, test_name) { \ 86 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \ 87 } 88 89 #else 90 91 // NaCl based PPAPI tests 92 #define TEST_PPAPI_NACL(test_name) \ 93 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \ 94 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \ 95 } \ 96 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, test_name) { \ 97 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \ 98 } \ 99 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, test_name) { \ 100 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \ 101 } 102 103 // NaCl based PPAPI tests with disallowed socket API 104 #define TEST_PPAPI_NACL_DISALLOWED_SOCKETS(test_name) \ 105 IN_PROC_BROWSER_TEST_F(PPAPINaClTestDisallowedSockets, test_name) { \ 106 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \ 107 } 108 109 // NaCl based PPAPI tests with SSL server 110 #define TEST_PPAPI_NACL_WITH_SSL_SERVER(test_name) \ 111 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \ 112 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \ 113 } \ 114 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, test_name) { \ 115 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \ 116 } \ 117 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, test_name) { \ 118 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \ 119 } 120 121 #endif 122 123 124 // NaCl glibc tests are not included in ARM as there is no glibc support 125 // on ARM today. 126 #if defined(ARCH_CPU_ARM_FAMILY) 127 #define MAYBE_GLIBC(test_name) DISABLED_##test_name 128 #else 129 #define MAYBE_GLIBC(test_name) test_name 130 #endif 131 132 133 // 134 // Interface tests. 135 // 136 137 // Disable tests under ASAN. http://crbug.com/104832. 138 // This is a bit heavy handed, but the majority of these tests fail under ASAN. 139 // See bug for history. 140 #if !defined(ADDRESS_SANITIZER) 141 142 TEST_PPAPI_IN_PROCESS(Broker) 143 // Flaky, http://crbug.com/111355 144 TEST_PPAPI_OUT_OF_PROCESS(DISABLED_Broker) 145 146 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Accept) { 147 // Accepting the infobar should grant permission to access the PPAPI broker. 148 InfoBarObserver observer; 149 observer.ExpectInfoBarAndAccept(true); 150 151 // PPB_Broker_Trusted::IsAllowed should return false before the infobar is 152 // popped and true after the infobar is popped. 153 RunTest("Broker_IsAllowedPermissionDenied"); 154 RunTest("Broker_ConnectPermissionGranted"); 155 RunTest("Broker_IsAllowedPermissionGranted"); 156 157 // It should also set a content settings exception for the site. 158 GURL url = GetTestFileUrl("Broker_ConnectPermissionGranted"); 159 HostContentSettingsMap* content_settings = 160 browser()->profile()->GetHostContentSettingsMap(); 161 EXPECT_EQ(CONTENT_SETTING_ALLOW, 162 content_settings->GetContentSetting( 163 url, url, CONTENT_SETTINGS_TYPE_PPAPI_BROKER, std::string())); 164 } 165 166 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Deny) { 167 // Canceling the infobar should deny permission to access the PPAPI broker. 168 InfoBarObserver observer; 169 observer.ExpectInfoBarAndAccept(false); 170 171 // PPB_Broker_Trusted::IsAllowed should return false before and after the 172 // infobar is popped. 173 RunTest("Broker_IsAllowedPermissionDenied"); 174 RunTest("Broker_ConnectPermissionDenied"); 175 RunTest("Broker_IsAllowedPermissionDenied"); 176 177 // It should also set a content settings exception for the site. 178 GURL url = GetTestFileUrl("Broker_ConnectPermissionDenied"); 179 HostContentSettingsMap* content_settings = 180 browser()->profile()->GetHostContentSettingsMap(); 181 EXPECT_EQ(CONTENT_SETTING_BLOCK, 182 content_settings->GetContentSetting( 183 url, url, CONTENT_SETTINGS_TYPE_PPAPI_BROKER, std::string())); 184 } 185 186 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Blocked) { 187 // Block access to the PPAPI broker. 188 browser()->profile()->GetHostContentSettingsMap()->SetDefaultContentSetting( 189 CONTENT_SETTINGS_TYPE_PPAPI_BROKER, CONTENT_SETTING_BLOCK); 190 191 // We shouldn't see an infobar. 192 InfoBarObserver observer; 193 194 RunTest("Broker_ConnectPermissionDenied"); 195 RunTest("Broker_IsAllowedPermissionDenied"); 196 } 197 198 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Allowed) { 199 // Always allow access to the PPAPI broker. 200 browser()->profile()->GetHostContentSettingsMap()->SetDefaultContentSetting( 201 CONTENT_SETTINGS_TYPE_PPAPI_BROKER, CONTENT_SETTING_ALLOW); 202 203 // We shouldn't see an infobar. 204 InfoBarObserver observer; 205 206 RunTest("Broker_ConnectPermissionGranted"); 207 RunTest("Broker_IsAllowedPermissionGranted"); 208 } 209 210 TEST_PPAPI_IN_PROCESS(Console) 211 TEST_PPAPI_OUT_OF_PROCESS(Console) 212 TEST_PPAPI_NACL(Console) 213 214 TEST_PPAPI_IN_PROCESS(Core) 215 TEST_PPAPI_OUT_OF_PROCESS(Core) 216 TEST_PPAPI_NACL(Core) 217 218 TEST_PPAPI_IN_PROCESS(TraceEvent) 219 TEST_PPAPI_OUT_OF_PROCESS(TraceEvent) 220 TEST_PPAPI_NACL(TraceEvent) 221 222 TEST_PPAPI_IN_PROCESS(InputEvent) 223 TEST_PPAPI_OUT_OF_PROCESS(InputEvent) 224 TEST_PPAPI_NACL(InputEvent) 225 226 // Flaky on Linux and Windows. http://crbug.com/135403 227 #if defined(OS_LINUX) || defined(OS_WIN) 228 #define MAYBE_ImeInputEvent DISABLED_ImeInputEvent 229 #else 230 #define MAYBE_ImeInputEvent ImeInputEvent 231 #endif 232 233 TEST_PPAPI_IN_PROCESS(MAYBE_ImeInputEvent) 234 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_ImeInputEvent) 235 TEST_PPAPI_NACL(MAYBE_ImeInputEvent) 236 237 // "Instance" tests are really InstancePrivate tests. InstancePrivate is not 238 // supported in NaCl, so these tests are only run trusted. 239 // Also note that these tests are run separately on purpose (versus collapsed 240 // in to one IN_PROC_BROWSER_TEST_F macro), because some of them have leaks 241 // on purpose that will look like failures to tests that are run later. 242 TEST_PPAPI_IN_PROCESS(Instance_ExecuteScript); 243 TEST_PPAPI_OUT_OF_PROCESS(Instance_ExecuteScript) 244 245 // We run and reload the RecursiveObjects test to ensure that the InstanceObject 246 // (and others) are properly cleaned up after the first run. 247 IN_PROC_BROWSER_TEST_F(PPAPITest, Instance_RecursiveObjects) { 248 RunTestAndReload("Instance_RecursiveObjects"); 249 } 250 // TODO(dmichael): Make it work out-of-process (or at least see whether we 251 // care). 252 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, 253 DISABLED_Instance_RecursiveObjects) { 254 RunTestAndReload("Instance_RecursiveObjects"); 255 } 256 TEST_PPAPI_IN_PROCESS(Instance_LeakedObjectDestructors); 257 TEST_PPAPI_OUT_OF_PROCESS(Instance_LeakedObjectDestructors); 258 259 IN_PROC_BROWSER_TEST_F(PPAPITest, 260 Instance_ExecuteScriptAtInstanceShutdown) { 261 // In other tests, we use one call to RunTest so that the tests can all run 262 // in one plugin instance. This saves time on loading the plugin (especially 263 // for NaCl). Here, we actually want to destroy the Instance, to test whether 264 // the destructor can run ExecuteScript successfully. That's why we have two 265 // separate calls to RunTest; the second one forces a navigation which 266 // destroys the instance from the prior RunTest. 267 // See test_instance_deprecated.cc for more information. 268 RunTest("Instance_SetupExecuteScriptAtInstanceShutdown"); 269 RunTest("Instance_ExecuteScriptAtInstanceShutdown"); 270 } 271 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, 272 Instance_ExecuteScriptAtInstanceShutdown) { 273 // (See the comment for the in-process version of this test above) 274 RunTest("Instance_SetupExecuteScriptAtInstanceShutdown"); 275 RunTest("Instance_ExecuteScriptAtInstanceShutdown"); 276 } 277 278 TEST_PPAPI_IN_PROCESS(Graphics2D) 279 TEST_PPAPI_OUT_OF_PROCESS(Graphics2D) 280 // Graphics2D_Dev isn't supported in NaCl, only test the other interfaces 281 // TODO(jhorwich) Enable when Graphics2D_Dev interfaces are proxied in NaCl. 282 TEST_PPAPI_NACL(Graphics2D_InvalidResource) 283 TEST_PPAPI_NACL(Graphics2D_InvalidSize) 284 TEST_PPAPI_NACL(Graphics2D_Humongous) 285 TEST_PPAPI_NACL(Graphics2D_InitToZero) 286 TEST_PPAPI_NACL(Graphics2D_Describe) 287 TEST_PPAPI_NACL(Graphics2D_Paint) 288 TEST_PPAPI_NACL(Graphics2D_Scroll) 289 TEST_PPAPI_NACL(Graphics2D_Replace) 290 TEST_PPAPI_NACL(Graphics2D_Flush) 291 TEST_PPAPI_NACL(Graphics2D_FlushOffscreenUpdate) 292 TEST_PPAPI_NACL(Graphics2D_BindNull) 293 294 #if defined(OS_WIN) && !defined(USE_AURA) 295 // These tests fail with the test compositor which is what's used by default for 296 // browser tests on Windows Aura. Renable when the software compositor is 297 // available. 298 // In-process and NaCl tests are having flaky failures on Win: crbug.com/242252 299 TEST_PPAPI_IN_PROCESS(DISABLED_Graphics3D) 300 TEST_PPAPI_OUT_OF_PROCESS(Graphics3D) 301 TEST_PPAPI_NACL(DISABLED_Graphics3D) 302 #endif 303 304 TEST_PPAPI_IN_PROCESS(ImageData) 305 TEST_PPAPI_OUT_OF_PROCESS(ImageData) 306 TEST_PPAPI_NACL(ImageData) 307 308 TEST_PPAPI_IN_PROCESS(BrowserFont) 309 TEST_PPAPI_OUT_OF_PROCESS(BrowserFont) 310 311 TEST_PPAPI_IN_PROCESS(Buffer) 312 TEST_PPAPI_OUT_OF_PROCESS(Buffer) 313 314 // TCPSocket tests. 315 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, TCPSocket) { 316 RunTestViaHTTP( 317 LIST_TEST(TCPSocket_Connect) 318 LIST_TEST(TCPSocket_ReadWrite) 319 LIST_TEST(TCPSocket_SetOption) 320 ); 321 } 322 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, TCPSocket) { 323 RunTestViaHTTP( 324 LIST_TEST(TCPSocket_Connect) 325 LIST_TEST(TCPSocket_ReadWrite) 326 LIST_TEST(TCPSocket_SetOption) 327 ); 328 } 329 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(TCPSocket)) { 330 RunTestViaHTTP( 331 LIST_TEST(TCPSocket_Connect) 332 LIST_TEST(TCPSocket_ReadWrite) 333 LIST_TEST(TCPSocket_SetOption) 334 ); 335 } 336 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, TCPSocket) { 337 RunTestViaHTTP( 338 LIST_TEST(TCPSocket_Connect) 339 LIST_TEST(TCPSocket_ReadWrite) 340 LIST_TEST(TCPSocket_SetOption) 341 ); 342 } 343 344 TEST_PPAPI_OUT_OF_PROCESS_WITH_SSL_SERVER(TCPSocketPrivate) 345 TEST_PPAPI_IN_PROCESS_WITH_SSL_SERVER(TCPSocketPrivate) 346 TEST_PPAPI_NACL_WITH_SSL_SERVER(TCPSocketPrivate) 347 348 TEST_PPAPI_OUT_OF_PROCESS_WITH_SSL_SERVER(TCPSocketPrivateTrusted) 349 TEST_PPAPI_IN_PROCESS_WITH_SSL_SERVER(TCPSocketPrivateTrusted) 350 351 // UDPSocket tests. 352 // UDPSocket_Broadcast is disabled for OSX because it requires root permissions 353 // on OSX 10.7+. 354 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, UDPSocket) { 355 RunTestViaHTTP( 356 LIST_TEST(UDPSocket_ReadWrite) 357 LIST_TEST(UDPSocket_SetOption) 358 #if !defined(OS_MACOSX) 359 LIST_TEST(UDPSocket_Broadcast) 360 #endif 361 ); 362 } 363 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, UDPSocket) { 364 RunTestViaHTTP( 365 LIST_TEST(UDPSocket_ReadWrite) 366 LIST_TEST(UDPSocket_SetOption) 367 #if !defined(OS_MACOSX) 368 LIST_TEST(UDPSocket_Broadcast) 369 #endif 370 ); 371 } 372 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(UDPSocket)) { 373 RunTestViaHTTP( 374 LIST_TEST(UDPSocket_ReadWrite) 375 LIST_TEST(UDPSocket_SetOption) 376 #if !defined(OS_MACOSX) 377 LIST_TEST(UDPSocket_Broadcast) 378 #endif 379 ); 380 } 381 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, UDPSocket) { 382 RunTestViaHTTP( 383 LIST_TEST(UDPSocket_ReadWrite) 384 LIST_TEST(UDPSocket_SetOption) 385 #if !defined(OS_MACOSX) 386 LIST_TEST(UDPSocket_Broadcast) 387 #endif 388 ); 389 } 390 391 // UDPSocketPrivate tests. 392 // UDPSocketPrivate_Broadcast is disabled for OSX because it requires 393 // root permissions on OSX 10.7+. 394 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_Connect) 395 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_ConnectFailure) 396 #if !defined(OS_MACOSX) 397 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_Broadcast) 398 #endif // !defined(OS_MACOSX) 399 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_SetSocketFeatureErrors) 400 TEST_PPAPI_NACL(UDPSocketPrivate_Connect) 401 TEST_PPAPI_NACL(UDPSocketPrivate_ConnectFailure) 402 #if !defined(OS_MACOSX) 403 TEST_PPAPI_NACL(UDPSocketPrivate_Broadcast) 404 #endif // !defined(OS_MACOSX) 405 TEST_PPAPI_NACL(UDPSocketPrivate_SetSocketFeatureErrors) 406 407 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(HostResolverPrivateDisallowed) 408 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(TCPServerSocketPrivateDisallowed) 409 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(TCPSocketPrivateDisallowed) 410 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(UDPSocketPrivateDisallowed) 411 412 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(TCPServerSocketPrivate) 413 TEST_PPAPI_NACL(TCPServerSocketPrivate) 414 415 // HostResolver tests. 416 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, HostResolver) { 417 RunTestViaHTTP( 418 LIST_TEST(HostResolver_Empty) 419 LIST_TEST(HostResolver_Resolve) 420 LIST_TEST(HostResolver_ResolveIPv4) 421 ); 422 } 423 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, HostResolver) { 424 RunTestViaHTTP( 425 LIST_TEST(HostResolver_Empty) 426 LIST_TEST(HostResolver_Resolve) 427 LIST_TEST(HostResolver_ResolveIPv4) 428 ); 429 } 430 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(HostResolver)) { 431 RunTestViaHTTP( 432 LIST_TEST(HostResolver_Empty) 433 LIST_TEST(HostResolver_Resolve) 434 LIST_TEST(HostResolver_ResolveIPv4) 435 ); 436 } 437 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, HostResolver) { 438 RunTestViaHTTP( 439 LIST_TEST(HostResolver_Empty) 440 LIST_TEST(HostResolver_Resolve) 441 LIST_TEST(HostResolver_ResolveIPv4) 442 ); 443 } 444 445 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(HostResolverPrivate_Resolve) 446 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(HostResolverPrivate_ResolveIPv4) 447 TEST_PPAPI_NACL(HostResolverPrivate_Resolve) 448 TEST_PPAPI_NACL(HostResolverPrivate_ResolveIPv4) 449 450 // URLLoader tests. 451 IN_PROC_BROWSER_TEST_F(PPAPITest, URLLoader) { 452 RunTestViaHTTP( 453 LIST_TEST(URLLoader_BasicGET) 454 LIST_TEST(URLLoader_BasicPOST) 455 LIST_TEST(URLLoader_BasicFilePOST) 456 LIST_TEST(URLLoader_BasicFileRangePOST) 457 LIST_TEST(URLLoader_CompoundBodyPOST) 458 LIST_TEST(URLLoader_EmptyDataPOST) 459 LIST_TEST(URLLoader_BinaryDataPOST) 460 LIST_TEST(URLLoader_CustomRequestHeader) 461 LIST_TEST(URLLoader_FailsBogusContentLength) 462 LIST_TEST(URLLoader_StreamToFile) 463 LIST_TEST(URLLoader_UntrustedSameOriginRestriction) 464 LIST_TEST(URLLoader_TrustedSameOriginRestriction) 465 LIST_TEST(URLLoader_UntrustedCrossOriginRequest) 466 LIST_TEST(URLLoader_TrustedCrossOriginRequest) 467 LIST_TEST(URLLoader_UntrustedJavascriptURLRestriction) 468 // TODO(bbudge) Fix Javascript URLs for trusted loaders. 469 // http://crbug.com/103062 470 LIST_TEST(DISABLED_URLLoader_TrustedJavascriptURLRestriction) 471 LIST_TEST(URLLoader_UntrustedHttpRequests) 472 LIST_TEST(URLLoader_TrustedHttpRequests) 473 LIST_TEST(URLLoader_FollowURLRedirect) 474 LIST_TEST(URLLoader_AuditURLRedirect) 475 LIST_TEST(URLLoader_AbortCalls) 476 LIST_TEST(URLLoader_UntendedLoad) 477 LIST_TEST(URLLoader_PrefetchBufferThreshold) 478 ); 479 } 480 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, URLLoader) { 481 RunTestViaHTTP( 482 LIST_TEST(URLLoader_BasicGET) 483 LIST_TEST(URLLoader_BasicPOST) 484 LIST_TEST(URLLoader_BasicFilePOST) 485 LIST_TEST(URLLoader_BasicFileRangePOST) 486 LIST_TEST(URLLoader_CompoundBodyPOST) 487 LIST_TEST(URLLoader_EmptyDataPOST) 488 LIST_TEST(URLLoader_BinaryDataPOST) 489 LIST_TEST(URLLoader_CustomRequestHeader) 490 LIST_TEST(URLLoader_FailsBogusContentLength) 491 LIST_TEST(URLLoader_StreamToFile) 492 LIST_TEST(URLLoader_UntrustedSameOriginRestriction) 493 LIST_TEST(URLLoader_TrustedSameOriginRestriction) 494 LIST_TEST(URLLoader_UntrustedCrossOriginRequest) 495 LIST_TEST(URLLoader_TrustedCrossOriginRequest) 496 LIST_TEST(URLLoader_UntrustedJavascriptURLRestriction) 497 // TODO(bbudge) Fix Javascript URLs for trusted loaders. 498 // http://crbug.com/103062 499 LIST_TEST(DISABLED_URLLoader_TrustedJavascriptURLRestriction) 500 LIST_TEST(URLLoader_UntrustedHttpRequests) 501 LIST_TEST(URLLoader_TrustedHttpRequests) 502 LIST_TEST(URLLoader_FollowURLRedirect) 503 LIST_TEST(URLLoader_AuditURLRedirect) 504 LIST_TEST(URLLoader_AbortCalls) 505 LIST_TEST(URLLoader_UntendedLoad) 506 LIST_TEST(URLLoader_PrefetchBufferThreshold) 507 ); 508 } 509 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, URLLoader) { 510 RunTestViaHTTP( 511 LIST_TEST(URLLoader_BasicGET) 512 LIST_TEST(URLLoader_BasicPOST) 513 LIST_TEST(URLLoader_BasicFilePOST) 514 LIST_TEST(URLLoader_BasicFileRangePOST) 515 LIST_TEST(URLLoader_CompoundBodyPOST) 516 LIST_TEST(URLLoader_EmptyDataPOST) 517 LIST_TEST(URLLoader_BinaryDataPOST) 518 LIST_TEST(URLLoader_CustomRequestHeader) 519 LIST_TEST(URLLoader_FailsBogusContentLength) 520 LIST_TEST(URLLoader_StreamToFile) 521 LIST_TEST(URLLoader_UntrustedSameOriginRestriction) 522 // We don't support Trusted APIs in NaCl. 523 LIST_TEST(DISABLED_URLLoader_TrustedSameOriginRestriction) 524 LIST_TEST(URLLoader_UntrustedCrossOriginRequest) 525 LIST_TEST(DISABLED_URLLoader_TrustedCrossOriginRequest) 526 LIST_TEST(URLLoader_UntrustedJavascriptURLRestriction) 527 // TODO(bbudge) Fix Javascript URLs for trusted loaders. 528 // http://crbug.com/103062 529 LIST_TEST(DISABLED_URLLoader_TrustedJavascriptURLRestriction) 530 LIST_TEST(URLLoader_UntrustedHttpRequests) 531 LIST_TEST(DISABLED_URLLoader_TrustedHttpRequests) 532 LIST_TEST(URLLoader_FollowURLRedirect) 533 LIST_TEST(URLLoader_AuditURLRedirect) 534 LIST_TEST(URLLoader_AbortCalls) 535 LIST_TEST(URLLoader_UntendedLoad) 536 LIST_TEST(URLLoader_PrefetchBufferThreshold) 537 ); 538 } 539 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(URLLoader)) { 540 RunTestViaHTTP( 541 LIST_TEST(URLLoader_BasicGET) 542 LIST_TEST(URLLoader_BasicPOST) 543 LIST_TEST(URLLoader_BasicFilePOST) 544 LIST_TEST(URLLoader_BasicFileRangePOST) 545 LIST_TEST(URLLoader_CompoundBodyPOST) 546 LIST_TEST(URLLoader_EmptyDataPOST) 547 LIST_TEST(URLLoader_BinaryDataPOST) 548 LIST_TEST(URLLoader_CustomRequestHeader) 549 LIST_TEST(URLLoader_FailsBogusContentLength) 550 LIST_TEST(URLLoader_StreamToFile) 551 LIST_TEST(URLLoader_UntrustedSameOriginRestriction) 552 // We don't support Trusted APIs in NaCl. 553 LIST_TEST(DISABLED_URLLoader_TrustedSameOriginRestriction) 554 LIST_TEST(URLLoader_UntrustedCrossOriginRequest) 555 LIST_TEST(DISABLED_URLLoader_TrustedCrossOriginRequest) 556 LIST_TEST(URLLoader_UntrustedJavascriptURLRestriction) 557 // TODO(bbudge) Fix Javascript URLs for trusted loaders. 558 // http://crbug.com/103062 559 LIST_TEST(DISABLED_URLLoader_TrustedJavascriptURLRestriction) 560 LIST_TEST(URLLoader_UntrustedHttpRequests) 561 LIST_TEST(DISABLED_URLLoader_TrustedHttpRequests) 562 LIST_TEST(URLLoader_FollowURLRedirect) 563 LIST_TEST(URLLoader_AuditURLRedirect) 564 LIST_TEST(URLLoader_AbortCalls) 565 LIST_TEST(URLLoader_UntendedLoad) 566 LIST_TEST(URLLoader_PrefetchBufferThreshold) 567 ); 568 } 569 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, URLLoader) { 570 RunTestViaHTTP( 571 LIST_TEST(URLLoader_BasicGET) 572 LIST_TEST(URLLoader_BasicPOST) 573 LIST_TEST(URLLoader_BasicFilePOST) 574 LIST_TEST(URLLoader_BasicFileRangePOST) 575 LIST_TEST(URLLoader_CompoundBodyPOST) 576 LIST_TEST(URLLoader_EmptyDataPOST) 577 LIST_TEST(URLLoader_BinaryDataPOST) 578 LIST_TEST(URLLoader_CustomRequestHeader) 579 LIST_TEST(URLLoader_FailsBogusContentLength) 580 LIST_TEST(URLLoader_StreamToFile) 581 LIST_TEST(URLLoader_UntrustedSameOriginRestriction) 582 // We don't support Trusted APIs in NaCl. 583 LIST_TEST(DISABLED_URLLoader_TrustedSameOriginRestriction) 584 LIST_TEST(URLLoader_UntrustedCrossOriginRequest) 585 LIST_TEST(DISABLED_URLLoader_TrustedCrossOriginRequest) 586 LIST_TEST(URLLoader_UntrustedJavascriptURLRestriction) 587 // TODO(bbudge) Fix Javascript URLs for trusted loaders. 588 // http://crbug.com/103062 589 LIST_TEST(DISABLED_URLLoader_TrustedJavascriptURLRestriction) 590 LIST_TEST(URLLoader_UntrustedHttpRequests) 591 LIST_TEST(DISABLED_URLLoader_TrustedHttpRequests) 592 LIST_TEST(URLLoader_FollowURLRedirect) 593 LIST_TEST(URLLoader_AuditURLRedirect) 594 LIST_TEST(URLLoader_AbortCalls) 595 LIST_TEST(URLLoader_UntendedLoad) 596 LIST_TEST(URLLoader_PrefetchBufferThreshold) 597 ); 598 } 599 600 // URLRequestInfo tests. 601 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_CreateAndIsURLRequestInfo) 602 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_CreateAndIsURLRequestInfo) 603 604 // Timing out on Windows. http://crbug.com/129571 605 #if defined(OS_WIN) 606 #define MAYBE_URLRequest_CreateAndIsURLRequestInfo \ 607 DISABLED_URLRequest_CreateAndIsURLRequestInfo 608 #else 609 #define MAYBE_URLRequest_CreateAndIsURLRequestInfo \ 610 URLRequest_CreateAndIsURLRequestInfo 611 #endif 612 TEST_PPAPI_NACL(MAYBE_URLRequest_CreateAndIsURLRequestInfo) 613 614 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_SetProperty) 615 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_SetProperty) 616 // http://crbug.com/167150 617 TEST_PPAPI_NACL(DISABLED_URLRequest_SetProperty) 618 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_AppendDataToBody) 619 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_AppendDataToBody) 620 TEST_PPAPI_NACL(URLRequest_AppendDataToBody) 621 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_AppendFileToBody) 622 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_AppendFileToBody) 623 TEST_PPAPI_NACL(URLRequest_AppendFileToBody) 624 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_Stress) 625 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_Stress) 626 TEST_PPAPI_NACL(URLRequest_Stress) 627 628 TEST_PPAPI_IN_PROCESS(PaintAggregator) 629 TEST_PPAPI_OUT_OF_PROCESS(PaintAggregator) 630 TEST_PPAPI_NACL(PaintAggregator) 631 632 // TODO(danakj): http://crbug.com/115286 633 TEST_PPAPI_IN_PROCESS(DISABLED_Scrollbar) 634 // http://crbug.com/89961 635 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, DISABLED_Scrollbar) { 636 RunTest("Scrollbar"); 637 } 638 // TODO(danakj): http://crbug.com/115286 639 TEST_PPAPI_NACL(DISABLED_Scrollbar) 640 641 TEST_PPAPI_IN_PROCESS(URLUtil) 642 TEST_PPAPI_OUT_OF_PROCESS(URLUtil) 643 644 TEST_PPAPI_IN_PROCESS(CharSet) 645 TEST_PPAPI_OUT_OF_PROCESS(CharSet) 646 647 TEST_PPAPI_IN_PROCESS(Crypto) 648 TEST_PPAPI_OUT_OF_PROCESS(Crypto) 649 650 TEST_PPAPI_IN_PROCESS(Var) 651 TEST_PPAPI_OUT_OF_PROCESS(Var) 652 TEST_PPAPI_NACL(Var) 653 654 // Flaky on mac, http://crbug.com/121107 655 #if defined(OS_MACOSX) 656 #define MAYBE_VarDeprecated DISABLED_VarDeprecated 657 #else 658 #define MAYBE_VarDeprecated VarDeprecated 659 #endif 660 661 TEST_PPAPI_IN_PROCESS(VarDeprecated) 662 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_VarDeprecated) 663 664 // Windows defines 'PostMessage', so we have to undef it. 665 #ifdef PostMessage 666 #undef PostMessage 667 #endif 668 // PostMessage tests. 669 IN_PROC_BROWSER_TEST_F(PPAPITest, PostMessage) { 670 RunTestViaHTTP( 671 LIST_TEST(PostMessage_SendInInit) 672 LIST_TEST(PostMessage_SendingData) 673 LIST_TEST(PostMessage_SendingArrayBuffer) 674 LIST_TEST(DISABLED_PostMessage_SendingArray) 675 LIST_TEST(DISABLED_PostMessage_SendingDictionary) 676 LIST_TEST(DISABLED_PostMessage_SendingComplexVar) 677 LIST_TEST(PostMessage_MessageEvent) 678 LIST_TEST(PostMessage_NoHandler) 679 LIST_TEST(PostMessage_ExtraParam) 680 ); 681 } 682 683 // Flaky: crbug.com/269530 684 #if defined(OS_WIN) 685 #define MAYBE_PostMessage DISABLED_PostMessage 686 #else 687 #define MAYBE_PostMessage PostMessage 688 #endif 689 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, MAYBE_PostMessage) { 690 RunTestViaHTTP( 691 LIST_TEST(PostMessage_SendInInit) 692 LIST_TEST(PostMessage_SendingData) 693 LIST_TEST(PostMessage_SendingArrayBuffer) 694 LIST_TEST(PostMessage_SendingArray) 695 LIST_TEST(PostMessage_SendingDictionary) 696 LIST_TEST(PostMessage_SendingComplexVar) 697 LIST_TEST(PostMessage_MessageEvent) 698 LIST_TEST(PostMessage_NoHandler) 699 LIST_TEST(PostMessage_ExtraParam) 700 LIST_TEST(PostMessage_NonMainThread) 701 ); 702 } 703 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, PostMessage) { 704 RunTestViaHTTP( 705 LIST_TEST(PostMessage_SendInInit) 706 LIST_TEST(PostMessage_SendingData) 707 LIST_TEST(PostMessage_SendingArrayBuffer) 708 LIST_TEST(PostMessage_SendingArray) 709 LIST_TEST(PostMessage_SendingDictionary) 710 LIST_TEST(PostMessage_SendingComplexVar) 711 LIST_TEST(PostMessage_MessageEvent) 712 LIST_TEST(PostMessage_NoHandler) 713 LIST_TEST(PostMessage_ExtraParam) 714 LIST_TEST(PostMessage_NonMainThread) 715 ); 716 } 717 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(PostMessage)) { 718 RunTestViaHTTP( 719 LIST_TEST(PostMessage_SendInInit) 720 LIST_TEST(PostMessage_SendingData) 721 LIST_TEST(PostMessage_SendingArrayBuffer) 722 LIST_TEST(PostMessage_SendingArray) 723 LIST_TEST(PostMessage_SendingDictionary) 724 LIST_TEST(PostMessage_SendingComplexVar) 725 LIST_TEST(PostMessage_MessageEvent) 726 LIST_TEST(PostMessage_NoHandler) 727 LIST_TEST(PostMessage_ExtraParam) 728 LIST_TEST(PostMessage_NonMainThread) 729 ); 730 } 731 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, PostMessage) { 732 RunTestViaHTTP( 733 LIST_TEST(PostMessage_SendInInit) 734 LIST_TEST(PostMessage_SendingData) 735 LIST_TEST(PostMessage_SendingArrayBuffer) 736 LIST_TEST(PostMessage_SendingArray) 737 LIST_TEST(PostMessage_SendingDictionary) 738 LIST_TEST(PostMessage_SendingComplexVar) 739 LIST_TEST(PostMessage_MessageEvent) 740 LIST_TEST(PostMessage_NoHandler) 741 LIST_TEST(PostMessage_ExtraParam) 742 LIST_TEST(PostMessage_NonMainThread) 743 ); 744 } 745 746 TEST_PPAPI_IN_PROCESS(Memory) 747 TEST_PPAPI_OUT_OF_PROCESS(Memory) 748 TEST_PPAPI_NACL(Memory) 749 750 TEST_PPAPI_IN_PROCESS(VideoDecoder) 751 TEST_PPAPI_OUT_OF_PROCESS(VideoDecoder) 752 753 // FileIO tests. 754 IN_PROC_BROWSER_TEST_F(PPAPITest, FileIO) { 755 RunTestViaHTTP( 756 LIST_TEST(FileIO_Open) 757 LIST_TEST(FileIO_OpenDirectory) 758 LIST_TEST(FileIO_AbortCalls) 759 LIST_TEST(FileIO_ParallelReads) 760 LIST_TEST(FileIO_ParallelWrites) 761 LIST_TEST(FileIO_NotAllowMixedReadWrite) 762 LIST_TEST(FileIO_ReadWriteSetLength) 763 LIST_TEST(FileIO_ReadToArrayWriteSetLength) 764 LIST_TEST(FileIO_TouchQuery) 765 LIST_TEST(FileIO_WillWriteWillSetLength) 766 LIST_TEST(FileIO_RequestOSFileHandle) 767 LIST_TEST(FileIO_RequestOSFileHandleWithOpenExclusive) 768 LIST_TEST(FileIO_Mmap) 769 ); 770 } 771 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, FileIO) { 772 RunTestViaHTTP( 773 LIST_TEST(FileIO_Open) 774 LIST_TEST(FileIO_AbortCalls) 775 LIST_TEST(FileIO_ParallelReads) 776 LIST_TEST(FileIO_ParallelWrites) 777 LIST_TEST(FileIO_NotAllowMixedReadWrite) 778 LIST_TEST(FileIO_ReadWriteSetLength) 779 LIST_TEST(FileIO_ReadToArrayWriteSetLength) 780 LIST_TEST(FileIO_TouchQuery) 781 LIST_TEST(FileIO_WillWriteWillSetLength) 782 LIST_TEST(FileIO_RequestOSFileHandle) 783 LIST_TEST(FileIO_RequestOSFileHandleWithOpenExclusive) 784 LIST_TEST(FileIO_Mmap) 785 ); 786 } 787 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, FileIO) { 788 RunTestViaHTTP( 789 LIST_TEST(FileIO_Open) 790 LIST_TEST(FileIO_AbortCalls) 791 LIST_TEST(FileIO_ParallelReads) 792 LIST_TEST(FileIO_ParallelWrites) 793 LIST_TEST(FileIO_NotAllowMixedReadWrite) 794 LIST_TEST(FileIO_ReadWriteSetLength) 795 LIST_TEST(FileIO_ReadToArrayWriteSetLength) 796 LIST_TEST(FileIO_TouchQuery) 797 // The following test requires PPB_FileIO_Trusted, not available in NaCl. 798 LIST_TEST(DISABLED_FileIO_WillWriteWillSetLength) 799 LIST_TEST(FileIO_RequestOSFileHandle) 800 LIST_TEST(FileIO_RequestOSFileHandleWithOpenExclusive) 801 LIST_TEST(FileIO_Mmap) 802 ); 803 } 804 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(FileIO)) { 805 RunTestViaHTTP( 806 LIST_TEST(FileIO_Open) 807 LIST_TEST(FileIO_AbortCalls) 808 LIST_TEST(FileIO_ParallelReads) 809 LIST_TEST(FileIO_ParallelWrites) 810 LIST_TEST(FileIO_NotAllowMixedReadWrite) 811 LIST_TEST(FileIO_ReadWriteSetLength) 812 LIST_TEST(FileIO_ReadToArrayWriteSetLength) 813 LIST_TEST(FileIO_TouchQuery) 814 // The following test requires PPB_FileIO_Trusted, not available in NaCl. 815 LIST_TEST(DISABLED_FileIO_WillWriteWillSetLength) 816 LIST_TEST(FileIO_RequestOSFileHandle) 817 LIST_TEST(FileIO_RequestOSFileHandleWithOpenExclusive) 818 LIST_TEST(FileIO_Mmap) 819 ); 820 } 821 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, FileIO) { 822 RunTestViaHTTP( 823 LIST_TEST(FileIO_Open) 824 LIST_TEST(FileIO_AbortCalls) 825 LIST_TEST(FileIO_ParallelReads) 826 LIST_TEST(FileIO_ParallelWrites) 827 LIST_TEST(FileIO_NotAllowMixedReadWrite) 828 LIST_TEST(FileIO_ReadWriteSetLength) 829 LIST_TEST(FileIO_ReadToArrayWriteSetLength) 830 LIST_TEST(FileIO_TouchQuery) 831 // The following test requires PPB_FileIO_Trusted, not available in NaCl. 832 LIST_TEST(DISABLED_FileIO_WillWriteWillSetLength) 833 LIST_TEST(FileIO_RequestOSFileHandle) 834 LIST_TEST(FileIO_RequestOSFileHandleWithOpenExclusive) 835 LIST_TEST(FileIO_Mmap) 836 ); 837 } 838 839 IN_PROC_BROWSER_TEST_F(PPAPITest, FileRef) { 840 RunTestViaHTTP( 841 LIST_TEST(FileRef_Create) 842 LIST_TEST(FileRef_GetFileSystemType) 843 LIST_TEST(FileRef_GetName) 844 LIST_TEST(FileRef_GetPath) 845 LIST_TEST(FileRef_GetParent) 846 LIST_TEST(FileRef_MakeDirectory) 847 LIST_TEST(FileRef_QueryAndTouchFile) 848 LIST_TEST(FileRef_DeleteFileAndDirectory) 849 LIST_TEST(FileRef_RenameFileAndDirectory) 850 // TODO(teravest): Add in-process support. 851 // LIST_TEST(FileRef_Query) 852 LIST_TEST(FileRef_FileNameEscaping) 853 // TODO(teravest): Add in-process support. 854 // LIST_TEST(FileRef_ReadDirectoryEntries) 855 ); 856 } 857 // OutOfProcessPPAPITest.FileRef times out fairly often. 858 // http://crbug.com/241646 859 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, FileRef) { 860 RunTestViaHTTP( 861 LIST_TEST(FileRef_Create) 862 LIST_TEST(FileRef_GetFileSystemType) 863 LIST_TEST(FileRef_GetName) 864 LIST_TEST(FileRef_GetPath) 865 LIST_TEST(FileRef_GetParent) 866 LIST_TEST(FileRef_MakeDirectory) 867 LIST_TEST(FileRef_QueryAndTouchFile) 868 LIST_TEST(FileRef_DeleteFileAndDirectory) 869 LIST_TEST(FileRef_RenameFileAndDirectory) 870 LIST_TEST(FileRef_Query) 871 LIST_TEST(FileRef_FileNameEscaping) 872 LIST_TEST(DISABLED_FileRef_ReadDirectoryEntries) 873 ); 874 } 875 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, FileRef) { 876 RunTestViaHTTP( 877 LIST_TEST(FileRef_Create) 878 LIST_TEST(FileRef_GetFileSystemType) 879 LIST_TEST(FileRef_GetName) 880 LIST_TEST(FileRef_GetPath) 881 LIST_TEST(FileRef_GetParent) 882 LIST_TEST(FileRef_MakeDirectory) 883 LIST_TEST(FileRef_QueryAndTouchFile) 884 LIST_TEST(FileRef_DeleteFileAndDirectory) 885 LIST_TEST(FileRef_RenameFileAndDirectory) 886 LIST_TEST(FileRef_Query) 887 LIST_TEST(FileRef_FileNameEscaping) 888 LIST_TEST(DISABLED_FileRef_ReadDirectoryEntries) 889 ); 890 } 891 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(FileRef)) { 892 RunTestViaHTTP( 893 LIST_TEST(FileRef_Create) 894 LIST_TEST(FileRef_GetFileSystemType) 895 LIST_TEST(FileRef_GetName) 896 LIST_TEST(FileRef_GetPath) 897 LIST_TEST(FileRef_GetParent) 898 LIST_TEST(FileRef_MakeDirectory) 899 LIST_TEST(FileRef_QueryAndTouchFile) 900 LIST_TEST(FileRef_DeleteFileAndDirectory) 901 LIST_TEST(FileRef_RenameFileAndDirectory) 902 LIST_TEST(FileRef_Query) 903 LIST_TEST(FileRef_FileNameEscaping) 904 LIST_TEST(DISABLED_FileRef_ReadDirectoryEntries) 905 ); 906 } 907 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, FileRef) { 908 RunTestViaHTTP( 909 LIST_TEST(FileRef_Create) 910 LIST_TEST(FileRef_GetFileSystemType) 911 LIST_TEST(FileRef_GetName) 912 LIST_TEST(FileRef_GetPath) 913 LIST_TEST(FileRef_GetParent) 914 LIST_TEST(FileRef_MakeDirectory) 915 LIST_TEST(FileRef_QueryAndTouchFile) 916 LIST_TEST(FileRef_DeleteFileAndDirectory) 917 LIST_TEST(FileRef_RenameFileAndDirectory) 918 LIST_TEST(FileRef_Query) 919 LIST_TEST(FileRef_FileNameEscaping) 920 LIST_TEST(DISABLED_FileRef_ReadDirectoryEntries) 921 ); 922 } 923 924 TEST_PPAPI_IN_PROCESS_VIA_HTTP(FileSystem) 925 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileSystem) 926 927 // PPAPINaClTest.FileSystem times out consistently on Windows and Mac. 928 // http://crbug.com/130372 929 #if defined(OS_MACOSX) || defined(OS_WIN) 930 #define MAYBE_FileSystem DISABLED_FileSystem 931 #else 932 #define MAYBE_FileSystem FileSystem 933 #endif 934 935 TEST_PPAPI_NACL(MAYBE_FileSystem) 936 937 #if defined(OS_MACOSX) 938 // http://crbug.com/103912 939 #define MAYBE_Fullscreen DISABLED_Fullscreen 940 #elif defined(OS_LINUX) 941 // http://crbug.com/146008 942 #define MAYBE_Fullscreen DISABLED_Fullscreen 943 #else 944 #define MAYBE_Fullscreen Fullscreen 945 #endif 946 947 TEST_PPAPI_IN_PROCESS_VIA_HTTP(MAYBE_Fullscreen) 948 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(MAYBE_Fullscreen) 949 TEST_PPAPI_NACL(MAYBE_Fullscreen) 950 951 TEST_PPAPI_IN_PROCESS(X509CertificatePrivate) 952 TEST_PPAPI_OUT_OF_PROCESS(X509CertificatePrivate) 953 954 // There is no proxy. This is used for PDF metrics reporting, and PDF only 955 // runs in process, so there's currently no need for a proxy. 956 TEST_PPAPI_IN_PROCESS(UMA) 957 958 // NetAddress tests 959 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, NetAddress) { 960 RunTestViaHTTP( 961 LIST_TEST(NetAddress_IPv4Address) 962 LIST_TEST(NetAddress_IPv6Address) 963 LIST_TEST(NetAddress_DescribeAsString) 964 ); 965 } 966 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, NetAddress) { 967 RunTestViaHTTP( 968 LIST_TEST(NetAddress_IPv4Address) 969 LIST_TEST(NetAddress_IPv6Address) 970 LIST_TEST(NetAddress_DescribeAsString) 971 ); 972 } 973 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(NetAddress)) { 974 RunTestViaHTTP( 975 LIST_TEST(NetAddress_IPv4Address) 976 LIST_TEST(NetAddress_IPv6Address) 977 LIST_TEST(NetAddress_DescribeAsString) 978 ); 979 } 980 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, NetAddress) { 981 RunTestViaHTTP( 982 LIST_TEST(NetAddress_IPv4Address) 983 LIST_TEST(NetAddress_IPv6Address) 984 LIST_TEST(NetAddress_DescribeAsString) 985 ); 986 } 987 988 IN_PROC_BROWSER_TEST_F(PPAPITest, NetAddressPrivate) { 989 RunTestViaHTTP( 990 LIST_TEST(NetAddressPrivate_AreEqual) 991 LIST_TEST(NetAddressPrivate_AreHostsEqual) 992 LIST_TEST(NetAddressPrivate_Describe) 993 LIST_TEST(NetAddressPrivate_ReplacePort) 994 LIST_TEST(NetAddressPrivate_GetAnyAddress) 995 LIST_TEST(NetAddressPrivate_DescribeIPv6) 996 LIST_TEST(NetAddressPrivate_GetFamily) 997 LIST_TEST(NetAddressPrivate_GetPort) 998 LIST_TEST(NetAddressPrivate_GetAddress) 999 LIST_TEST(NetAddressPrivate_GetScopeID) 1000 ); 1001 } 1002 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, NetAddressPrivate) { 1003 RunTestViaHTTP( 1004 LIST_TEST(NetAddressPrivate_AreEqual) 1005 LIST_TEST(NetAddressPrivate_AreHostsEqual) 1006 LIST_TEST(NetAddressPrivate_Describe) 1007 LIST_TEST(NetAddressPrivate_ReplacePort) 1008 LIST_TEST(NetAddressPrivate_GetAnyAddress) 1009 LIST_TEST(NetAddressPrivate_DescribeIPv6) 1010 LIST_TEST(NetAddressPrivate_GetFamily) 1011 LIST_TEST(NetAddressPrivate_GetPort) 1012 LIST_TEST(NetAddressPrivate_GetAddress) 1013 LIST_TEST(NetAddressPrivate_GetScopeID) 1014 ); 1015 } 1016 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, NetAddressPrivate) { 1017 RunTestViaHTTP( 1018 LIST_TEST(NetAddressPrivateUntrusted_AreEqual) 1019 LIST_TEST(NetAddressPrivateUntrusted_AreHostsEqual) 1020 LIST_TEST(NetAddressPrivateUntrusted_Describe) 1021 LIST_TEST(NetAddressPrivateUntrusted_ReplacePort) 1022 LIST_TEST(NetAddressPrivateUntrusted_GetAnyAddress) 1023 LIST_TEST(NetAddressPrivateUntrusted_GetFamily) 1024 LIST_TEST(NetAddressPrivateUntrusted_GetPort) 1025 LIST_TEST(NetAddressPrivateUntrusted_GetAddress) 1026 ); 1027 } 1028 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(NetAddressPrivate)) { 1029 RunTestViaHTTP( 1030 LIST_TEST(NetAddressPrivateUntrusted_AreEqual) 1031 LIST_TEST(NetAddressPrivateUntrusted_AreHostsEqual) 1032 LIST_TEST(NetAddressPrivateUntrusted_Describe) 1033 LIST_TEST(NetAddressPrivateUntrusted_ReplacePort) 1034 LIST_TEST(NetAddressPrivateUntrusted_GetAnyAddress) 1035 LIST_TEST(NetAddressPrivateUntrusted_GetFamily) 1036 LIST_TEST(NetAddressPrivateUntrusted_GetPort) 1037 LIST_TEST(NetAddressPrivateUntrusted_GetAddress) 1038 ); 1039 } 1040 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, NetAddressPrivate) { 1041 RunTestViaHTTP( 1042 LIST_TEST(NetAddressPrivateUntrusted_AreEqual) 1043 LIST_TEST(NetAddressPrivateUntrusted_AreHostsEqual) 1044 LIST_TEST(NetAddressPrivateUntrusted_Describe) 1045 LIST_TEST(NetAddressPrivateUntrusted_ReplacePort) 1046 LIST_TEST(NetAddressPrivateUntrusted_GetAnyAddress) 1047 LIST_TEST(NetAddressPrivateUntrusted_GetFamily) 1048 LIST_TEST(NetAddressPrivateUntrusted_GetPort) 1049 LIST_TEST(NetAddressPrivateUntrusted_GetAddress) 1050 ); 1051 } 1052 1053 // NetworkMonitor tests. 1054 IN_PROC_BROWSER_TEST_F(PPAPITest, NetworkMonitor) { 1055 RunTestViaHTTP( 1056 LIST_TEST(NetworkMonitorPrivate_Basic) 1057 LIST_TEST(NetworkMonitorPrivate_2Monitors) 1058 LIST_TEST(NetworkMonitorPrivate_DeleteInCallback) 1059 LIST_TEST(NetworkMonitorPrivate_ListObserver) 1060 ); 1061 } 1062 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, NetworkMonitor) { 1063 RunTestViaHTTP( 1064 LIST_TEST(NetworkMonitorPrivate_Basic) 1065 LIST_TEST(NetworkMonitorPrivate_2Monitors) 1066 LIST_TEST(NetworkMonitorPrivate_DeleteInCallback) 1067 LIST_TEST(NetworkMonitorPrivate_ListObserver) 1068 ); 1069 } 1070 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, NetworkMonitor) { 1071 RunTestViaHTTP( 1072 LIST_TEST(NetworkMonitorPrivate_Basic) 1073 LIST_TEST(NetworkMonitorPrivate_2Monitors) 1074 LIST_TEST(NetworkMonitorPrivate_DeleteInCallback) 1075 LIST_TEST(NetworkMonitorPrivate_ListObserver) 1076 ); 1077 } 1078 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(NetworkMonitor)) { 1079 RunTestViaHTTP( 1080 LIST_TEST(NetworkMonitorPrivate_Basic) 1081 LIST_TEST(NetworkMonitorPrivate_2Monitors) 1082 LIST_TEST(NetworkMonitorPrivate_DeleteInCallback) 1083 LIST_TEST(NetworkMonitorPrivate_ListObserver) 1084 ); 1085 } 1086 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, NetworkMonitor) { 1087 RunTestViaHTTP( 1088 LIST_TEST(NetworkMonitorPrivate_Basic) 1089 LIST_TEST(NetworkMonitorPrivate_2Monitors) 1090 LIST_TEST(NetworkMonitorPrivate_DeleteInCallback) 1091 LIST_TEST(NetworkMonitorPrivate_ListObserver) 1092 ); 1093 } 1094 1095 // Flash tests. 1096 IN_PROC_BROWSER_TEST_F(PPAPITest, Flash) { 1097 RunTestViaHTTP( 1098 LIST_TEST(Flash_SetInstanceAlwaysOnTop) 1099 LIST_TEST(Flash_GetCommandLineArgs) 1100 ); 1101 } 1102 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, Flash) { 1103 RunTestViaHTTP( 1104 LIST_TEST(Flash_SetInstanceAlwaysOnTop) 1105 LIST_TEST(Flash_GetCommandLineArgs) 1106 ); 1107 } 1108 1109 // In-process WebSocket tests 1110 IN_PROC_BROWSER_TEST_F(PPAPITest, WebSocket) { 1111 RunTestWithWebSocketServer( 1112 LIST_TEST(WebSocket_IsWebSocket) 1113 LIST_TEST(WebSocket_UninitializedPropertiesAccess) 1114 LIST_TEST(WebSocket_InvalidConnect) 1115 LIST_TEST(WebSocket_Protocols) 1116 LIST_TEST(WebSocket_GetURL) 1117 LIST_TEST(WebSocket_ValidConnect) 1118 LIST_TEST(WebSocket_InvalidClose) 1119 LIST_TEST(WebSocket_ValidClose) 1120 LIST_TEST(WebSocket_GetProtocol) 1121 LIST_TEST(WebSocket_TextSendReceive) 1122 LIST_TEST(WebSocket_BinarySendReceive) 1123 LIST_TEST(WebSocket_StressedSendReceive) 1124 LIST_TEST(WebSocket_BufferedAmount) 1125 LIST_TEST(WebSocket_AbortCallsWithCallback) 1126 LIST_TEST(WebSocket_AbortSendMessageCall) 1127 LIST_TEST(WebSocket_AbortCloseCall) 1128 LIST_TEST(WebSocket_AbortReceiveMessageCall) 1129 LIST_TEST(WebSocket_CcInterfaces) 1130 LIST_TEST(WebSocket_UtilityInvalidConnect) 1131 LIST_TEST(WebSocket_UtilityProtocols) 1132 LIST_TEST(WebSocket_UtilityGetURL) 1133 LIST_TEST(WebSocket_UtilityValidConnect) 1134 LIST_TEST(WebSocket_UtilityInvalidClose) 1135 LIST_TEST(WebSocket_UtilityValidClose) 1136 LIST_TEST(WebSocket_UtilityGetProtocol) 1137 LIST_TEST(WebSocket_UtilityTextSendReceive) 1138 LIST_TEST(WebSocket_UtilityBinarySendReceive) 1139 LIST_TEST(WebSocket_UtilityBufferedAmount)); 1140 } 1141 1142 // Out-of-process WebSocket tests 1143 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, WebSocket) { 1144 RunTestWithWebSocketServer( 1145 LIST_TEST(WebSocket_IsWebSocket) 1146 LIST_TEST(WebSocket_UninitializedPropertiesAccess) 1147 LIST_TEST(WebSocket_InvalidConnect) 1148 LIST_TEST(WebSocket_Protocols) 1149 LIST_TEST(WebSocket_GetURL) 1150 LIST_TEST(WebSocket_ValidConnect) 1151 LIST_TEST(WebSocket_InvalidClose) 1152 LIST_TEST(WebSocket_ValidClose) 1153 LIST_TEST(WebSocket_GetProtocol) 1154 LIST_TEST(WebSocket_TextSendReceive) 1155 LIST_TEST(WebSocket_BinarySendReceive) 1156 LIST_TEST(WebSocket_StressedSendReceive) 1157 LIST_TEST(WebSocket_BufferedAmount) 1158 LIST_TEST(WebSocket_AbortCallsWithCallback) 1159 LIST_TEST(WebSocket_AbortSendMessageCall) 1160 LIST_TEST(WebSocket_AbortCloseCall) 1161 LIST_TEST(WebSocket_AbortReceiveMessageCall) 1162 LIST_TEST(WebSocket_CcInterfaces) 1163 LIST_TEST(WebSocket_UtilityInvalidConnect) 1164 LIST_TEST(WebSocket_UtilityProtocols) 1165 LIST_TEST(WebSocket_UtilityGetURL) 1166 LIST_TEST(WebSocket_UtilityValidConnect) 1167 LIST_TEST(WebSocket_UtilityInvalidClose) 1168 LIST_TEST(WebSocket_UtilityValidClose) 1169 LIST_TEST(WebSocket_UtilityGetProtocol) 1170 LIST_TEST(WebSocket_UtilityTextSendReceive) 1171 LIST_TEST(WebSocket_UtilityBinarySendReceive) 1172 LIST_TEST(WebSocket_UtilityBufferedAmount)); 1173 } 1174 1175 // NaClNewlib WebSocket tests 1176 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, WebSocket) { 1177 RunTestWithWebSocketServer( 1178 LIST_TEST(WebSocket_IsWebSocket) 1179 LIST_TEST(WebSocket_UninitializedPropertiesAccess) 1180 LIST_TEST(WebSocket_InvalidConnect) 1181 LIST_TEST(WebSocket_Protocols) 1182 LIST_TEST(WebSocket_GetURL) 1183 LIST_TEST(WebSocket_ValidConnect) 1184 LIST_TEST(WebSocket_InvalidClose) 1185 LIST_TEST(WebSocket_ValidClose) 1186 LIST_TEST(WebSocket_GetProtocol) 1187 LIST_TEST(WebSocket_TextSendReceive) 1188 LIST_TEST(WebSocket_BinarySendReceive) 1189 LIST_TEST(WebSocket_StressedSendReceive) 1190 LIST_TEST(WebSocket_BufferedAmount) 1191 LIST_TEST(WebSocket_AbortCallsWithCallback) 1192 LIST_TEST(WebSocket_AbortSendMessageCall) 1193 LIST_TEST(WebSocket_AbortCloseCall) 1194 LIST_TEST(WebSocket_AbortReceiveMessageCall) 1195 LIST_TEST(WebSocket_CcInterfaces) 1196 LIST_TEST(WebSocket_UtilityInvalidConnect) 1197 LIST_TEST(WebSocket_UtilityProtocols) 1198 LIST_TEST(WebSocket_UtilityGetURL) 1199 LIST_TEST(WebSocket_UtilityValidConnect) 1200 LIST_TEST(WebSocket_UtilityInvalidClose) 1201 LIST_TEST(WebSocket_UtilityValidClose) 1202 LIST_TEST(WebSocket_UtilityGetProtocol) 1203 LIST_TEST(WebSocket_UtilityTextSendReceive) 1204 LIST_TEST(WebSocket_UtilityBinarySendReceive) 1205 LIST_TEST(WebSocket_UtilityBufferedAmount)); 1206 } 1207 1208 // NaClGLibc WebSocket tests 1209 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(WebSocket)) { 1210 RunTestWithWebSocketServer( 1211 LIST_TEST(WebSocket_IsWebSocket) 1212 LIST_TEST(WebSocket_UninitializedPropertiesAccess) 1213 LIST_TEST(WebSocket_InvalidConnect) 1214 LIST_TEST(WebSocket_Protocols) 1215 LIST_TEST(WebSocket_GetURL) 1216 LIST_TEST(WebSocket_ValidConnect) 1217 LIST_TEST(WebSocket_InvalidClose) 1218 LIST_TEST(WebSocket_ValidClose) 1219 LIST_TEST(WebSocket_GetProtocol) 1220 LIST_TEST(WebSocket_TextSendReceive) 1221 LIST_TEST(WebSocket_BinarySendReceive) 1222 LIST_TEST(WebSocket_StressedSendReceive) 1223 LIST_TEST(WebSocket_BufferedAmount) 1224 LIST_TEST(WebSocket_AbortCallsWithCallback) 1225 LIST_TEST(WebSocket_AbortSendMessageCall) 1226 LIST_TEST(WebSocket_AbortCloseCall) 1227 LIST_TEST(WebSocket_AbortReceiveMessageCall) 1228 LIST_TEST(WebSocket_CcInterfaces) 1229 LIST_TEST(WebSocket_UtilityInvalidConnect) 1230 LIST_TEST(WebSocket_UtilityProtocols) 1231 LIST_TEST(WebSocket_UtilityGetURL) 1232 LIST_TEST(WebSocket_UtilityValidConnect) 1233 LIST_TEST(WebSocket_UtilityInvalidClose) 1234 LIST_TEST(WebSocket_UtilityValidClose) 1235 LIST_TEST(WebSocket_UtilityGetProtocol) 1236 LIST_TEST(WebSocket_UtilityTextSendReceive) 1237 LIST_TEST(WebSocket_UtilityBinarySendReceive) 1238 LIST_TEST(WebSocket_UtilityBufferedAmount)); 1239 } 1240 1241 // PNaCl WebSocket tests 1242 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, WebSocket) { 1243 RunTestWithWebSocketServer( 1244 LIST_TEST(WebSocket_IsWebSocket) 1245 LIST_TEST(WebSocket_UninitializedPropertiesAccess) 1246 LIST_TEST(WebSocket_InvalidConnect) 1247 LIST_TEST(WebSocket_Protocols) 1248 LIST_TEST(WebSocket_GetURL) 1249 LIST_TEST(WebSocket_ValidConnect) 1250 LIST_TEST(WebSocket_InvalidClose) 1251 LIST_TEST(WebSocket_ValidClose) 1252 LIST_TEST(WebSocket_GetProtocol) 1253 LIST_TEST(WebSocket_TextSendReceive) 1254 LIST_TEST(WebSocket_BinarySendReceive) 1255 LIST_TEST(WebSocket_StressedSendReceive) 1256 LIST_TEST(WebSocket_BufferedAmount) 1257 LIST_TEST(WebSocket_AbortCallsWithCallback) 1258 LIST_TEST(WebSocket_AbortSendMessageCall) 1259 LIST_TEST(WebSocket_AbortCloseCall) 1260 LIST_TEST(WebSocket_AbortReceiveMessageCall) 1261 LIST_TEST(WebSocket_CcInterfaces) 1262 LIST_TEST(WebSocket_UtilityInvalidConnect) 1263 LIST_TEST(WebSocket_UtilityProtocols) 1264 LIST_TEST(WebSocket_UtilityGetURL) 1265 LIST_TEST(WebSocket_UtilityValidConnect) 1266 LIST_TEST(WebSocket_UtilityInvalidClose) 1267 LIST_TEST(WebSocket_UtilityValidClose) 1268 LIST_TEST(WebSocket_UtilityGetProtocol) 1269 LIST_TEST(WebSocket_UtilityTextSendReceive) 1270 LIST_TEST(WebSocket_UtilityBinarySendReceive) 1271 LIST_TEST(WebSocket_UtilityBufferedAmount)); 1272 } 1273 1274 1275 // In-process AudioConfig tests 1276 IN_PROC_BROWSER_TEST_F(PPAPITest, AudioConfig) { 1277 RunTest( 1278 LIST_TEST(AudioConfig_RecommendSampleRate) 1279 LIST_TEST(AudioConfig_ValidConfigs) 1280 LIST_TEST(AudioConfig_InvalidConfigs)); 1281 } 1282 1283 // Out-of-process AudioConfig tests 1284 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, AudioConfig) { 1285 RunTest( 1286 LIST_TEST(AudioConfig_RecommendSampleRate) 1287 LIST_TEST(AudioConfig_ValidConfigs) 1288 LIST_TEST(AudioConfig_InvalidConfigs)); 1289 } 1290 1291 // NaClNewlib AudioConfig tests 1292 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, AudioConfig) { 1293 RunTestViaHTTP( 1294 LIST_TEST(AudioConfig_RecommendSampleRate) 1295 LIST_TEST(AudioConfig_ValidConfigs) 1296 LIST_TEST(AudioConfig_InvalidConfigs)); 1297 } 1298 1299 // NaClGLibc AudioConfig tests 1300 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(AudioConfig)) { 1301 RunTestViaHTTP( 1302 LIST_TEST(AudioConfig_RecommendSampleRate) 1303 LIST_TEST(AudioConfig_ValidConfigs) 1304 LIST_TEST(AudioConfig_InvalidConfigs)); 1305 } 1306 1307 // PNaCl AudioConfig tests 1308 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, AudioConfig) { 1309 RunTestViaHTTP( 1310 LIST_TEST(AudioConfig_RecommendSampleRate) 1311 LIST_TEST(AudioConfig_ValidConfigs) 1312 LIST_TEST(AudioConfig_InvalidConfigs)); 1313 } 1314 1315 1316 IN_PROC_BROWSER_TEST_F(PPAPITest, Audio) { 1317 RunTest(LIST_TEST(Audio_Creation) 1318 LIST_TEST(Audio_DestroyNoStop) 1319 LIST_TEST(Audio_Failures) 1320 LIST_TEST(Audio_AudioCallback1) 1321 LIST_TEST(Audio_AudioCallback2)); 1322 } 1323 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, Audio) { 1324 RunTest(LIST_TEST(Audio_Creation) 1325 LIST_TEST(Audio_DestroyNoStop) 1326 LIST_TEST(Audio_Failures) 1327 LIST_TEST(Audio_AudioCallback1) 1328 LIST_TEST(Audio_AudioCallback2)); 1329 } 1330 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, Audio) { 1331 RunTestViaHTTP(LIST_TEST(Audio_Creation) 1332 LIST_TEST(Audio_DestroyNoStop) 1333 LIST_TEST(Audio_Failures) 1334 LIST_TEST(Audio_AudioCallback1) 1335 LIST_TEST(Audio_AudioCallback2)); 1336 } 1337 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(Audio)) { 1338 RunTestViaHTTP(LIST_TEST(Audio_Creation) 1339 LIST_TEST(Audio_DestroyNoStop) 1340 LIST_TEST(Audio_Failures) 1341 LIST_TEST(Audio_AudioCallback1) 1342 LIST_TEST(Audio_AudioCallback2)); 1343 } 1344 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, Audio) { 1345 RunTestViaHTTP(LIST_TEST(Audio_Creation) 1346 LIST_TEST(Audio_DestroyNoStop) 1347 LIST_TEST(Audio_Failures) 1348 LIST_TEST(Audio_AudioCallback1) 1349 LIST_TEST(Audio_AudioCallback2)); 1350 } 1351 1352 TEST_PPAPI_IN_PROCESS(View_CreatedVisible); 1353 TEST_PPAPI_OUT_OF_PROCESS(View_CreatedVisible); 1354 TEST_PPAPI_NACL(View_CreatedVisible); 1355 // This test ensures that plugins created in a background tab have their 1356 // initial visibility set to false. We don't bother testing in-process for this 1357 // custom test since the out of process code also exercises in-process. 1358 1359 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, View_CreateInvisible) { 1360 // Make a second tab in the foreground. 1361 GURL url = GetTestFileUrl("View_CreatedInvisible"); 1362 chrome::NavigateParams params(browser(), url, content::PAGE_TRANSITION_LINK); 1363 params.disposition = NEW_BACKGROUND_TAB; 1364 ui_test_utils::NavigateToURL(¶ms); 1365 } 1366 1367 // This test messes with tab visibility so is custom. 1368 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, View_PageHideShow) { 1369 // The plugin will be loaded in the foreground tab and will send us a message. 1370 PPAPITestMessageHandler handler; 1371 JavascriptTestObserver observer( 1372 browser()->tab_strip_model()->GetActiveWebContents()->GetRenderViewHost(), 1373 &handler); 1374 1375 GURL url = GetTestFileUrl("View_PageHideShow"); 1376 ui_test_utils::NavigateToURL(browser(), url); 1377 1378 ASSERT_TRUE(observer.Run()) << handler.error_message(); 1379 EXPECT_STREQ("TestPageHideShow:Created", handler.message().c_str()); 1380 observer.Reset(); 1381 1382 // Make a new tab to cause the original one to hide, this should trigger the 1383 // next phase of the test. 1384 chrome::NavigateParams params(browser(), GURL(content::kAboutBlankURL), 1385 content::PAGE_TRANSITION_LINK); 1386 params.disposition = NEW_FOREGROUND_TAB; 1387 ui_test_utils::NavigateToURL(¶ms); 1388 1389 // Wait until the test acks that it got hidden. 1390 ASSERT_TRUE(observer.Run()) << handler.error_message(); 1391 EXPECT_STREQ("TestPageHideShow:Hidden", handler.message().c_str()); 1392 observer.Reset(); 1393 1394 // Switch back to the test tab. 1395 browser()->tab_strip_model()->ActivateTabAt(0, true); 1396 1397 ASSERT_TRUE(observer.Run()) << handler.error_message(); 1398 EXPECT_STREQ("PASS", handler.message().c_str()); 1399 } 1400 1401 // Tests that if a plugin accepts touch events, the browser knows to send touch 1402 // events to the renderer. 1403 IN_PROC_BROWSER_TEST_F(PPAPITest, InputEvent_AcceptTouchEvent) { 1404 std::string positive_tests[] = { "InputEvent_AcceptTouchEvent_1", 1405 "InputEvent_AcceptTouchEvent_2", 1406 "InputEvent_AcceptTouchEvent_3", 1407 "InputEvent_AcceptTouchEvent_4" 1408 }; 1409 1410 for (size_t i = 0; i < arraysize(positive_tests); ++i) { 1411 RenderViewHost* host = browser()->tab_strip_model()-> 1412 GetActiveWebContents()->GetRenderViewHost(); 1413 RunTest(positive_tests[i]); 1414 EXPECT_TRUE(content::RenderViewHostTester::HasTouchEventHandler(host)); 1415 } 1416 } 1417 1418 IN_PROC_BROWSER_TEST_F(PPAPITest, View) { 1419 RunTest(LIST_TEST(View_SizeChange) 1420 LIST_TEST(View_ClipChange)); 1421 } 1422 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, View) { 1423 RunTest(LIST_TEST(View_SizeChange) 1424 LIST_TEST(View_ClipChange)); 1425 } 1426 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, View) { 1427 RunTestViaHTTP(LIST_TEST(View_SizeChange) 1428 LIST_TEST(View_ClipChange)); 1429 } 1430 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(View)) { 1431 RunTestViaHTTP(LIST_TEST(View_SizeChange) 1432 LIST_TEST(View_ClipChange)); 1433 } 1434 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, View) { 1435 RunTestViaHTTP(LIST_TEST(View_SizeChange) 1436 LIST_TEST(View_ClipChange)); 1437 } 1438 1439 IN_PROC_BROWSER_TEST_F(PPAPITest, ResourceArray) { 1440 RunTest(LIST_TEST(ResourceArray_Basics) 1441 LIST_TEST(ResourceArray_OutOfRangeAccess) 1442 LIST_TEST(ResourceArray_EmptyArray) 1443 LIST_TEST(ResourceArray_InvalidElement)); 1444 } 1445 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, ResourceArray) { 1446 RunTest(LIST_TEST(ResourceArray_Basics) 1447 LIST_TEST(ResourceArray_OutOfRangeAccess) 1448 LIST_TEST(ResourceArray_EmptyArray) 1449 LIST_TEST(ResourceArray_InvalidElement)); 1450 } 1451 1452 IN_PROC_BROWSER_TEST_F(PPAPITest, FlashMessageLoop) { 1453 RunTest(LIST_TEST(FlashMessageLoop_Basics) 1454 LIST_TEST(FlashMessageLoop_RunWithoutQuit)); 1455 } 1456 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, FlashMessageLoop) { 1457 RunTest(LIST_TEST(FlashMessageLoop_Basics) 1458 LIST_TEST(FlashMessageLoop_RunWithoutQuit)); 1459 } 1460 1461 TEST_PPAPI_IN_PROCESS(MouseCursor) 1462 TEST_PPAPI_OUT_OF_PROCESS(MouseCursor) 1463 TEST_PPAPI_NACL(MouseCursor) 1464 1465 // PPB_NetworkProxy is not supported in-process. 1466 TEST_PPAPI_OUT_OF_PROCESS(NetworkProxy) 1467 TEST_PPAPI_NACL(NetworkProxy) 1468 1469 TEST_PPAPI_OUT_OF_PROCESS(TrueTypeFont) 1470 TEST_PPAPI_NACL(TrueTypeFont) 1471 1472 TEST_PPAPI_OUT_OF_PROCESS(VideoDestination) 1473 TEST_PPAPI_NACL(VideoDestination) 1474 1475 TEST_PPAPI_OUT_OF_PROCESS(VideoSource) 1476 TEST_PPAPI_NACL(VideoSource) 1477 1478 // PPB_Printing only implemented for out of process. 1479 TEST_PPAPI_OUT_OF_PROCESS(Printing) 1480 1481 // PPB_MessageLoop is only supported out-of-process. 1482 // TODO(dmichael): Enable for NaCl with the IPC proxy. crbug.com/116317 1483 TEST_PPAPI_OUT_OF_PROCESS(MessageLoop_Basics) 1484 // MessageLoop_Post starts a thread so only run it if pepper threads are 1485 // enabled. 1486 #ifdef ENABLE_PEPPER_THREADING 1487 TEST_PPAPI_OUT_OF_PROCESS(MessageLoop_Post) 1488 #endif 1489 1490 // Going forward, Flash APIs will only work out-of-process. 1491 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetLocalTimeZoneOffset) 1492 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetProxyForURL) 1493 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetSetting) 1494 TEST_PPAPI_OUT_OF_PROCESS(Flash_SetCrashData) 1495 // http://crbug.com/176822 1496 #if !defined(OS_WIN) 1497 TEST_PPAPI_OUT_OF_PROCESS(FlashClipboard) 1498 #endif 1499 TEST_PPAPI_OUT_OF_PROCESS(FlashFile) 1500 // Mac/Aura reach NOTIMPLEMENTED/time out. 1501 // mac: http://crbug.com/96767 1502 // aura: http://crbug.com/104384 1503 #if defined(OS_MACOSX) 1504 #define MAYBE_FlashFullscreen DISABLED_FlashFullscreen 1505 #else 1506 #define MAYBE_FlashFullscreen FlashFullscreen 1507 #endif 1508 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_FlashFullscreen) 1509 1510 TEST_PPAPI_OUT_OF_PROCESS(PDF) 1511 1512 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, FlashDRM) { 1513 RunTest( 1514 #if (defined(OS_WIN) && defined(ENABLE_RLZ)) || defined(OS_CHROMEOS) 1515 // Only implemented on Windows and ChromeOS currently. 1516 LIST_TEST(FlashDRM_GetDeviceID) 1517 #endif 1518 LIST_TEST(FlashDRM_GetHmonitor) 1519 LIST_TEST(FlashDRM_GetVoucherFile)); 1520 } 1521 1522 TEST_PPAPI_IN_PROCESS(TalkPrivate) 1523 TEST_PPAPI_OUT_OF_PROCESS(TalkPrivate) 1524 1525 #endif // ADDRESS_SANITIZER 1526