MacViews: Get c/b/ui/views/tabs to build on Mac
[chromium-blink-merge.git] / chrome / test / ppapi / ppapi_browsertest.cc
blob9d7ab686f1023d4c02bccc46a12d79a5b39b054b
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.
5 #include "chrome/test/ppapi/ppapi_test.h"
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/ui_test_utils.h"
15 #include "chrome/test/nacl/nacl_browsertest_util.h"
16 #include "content/public/browser/web_contents.h"
17 #include "content/public/common/url_constants.h"
18 #include "content/public/test/javascript_test_observer.h"
19 #include "content/public/test/test_renderer_host.h"
20 #include "ppapi/shared_impl/test_harness_utils.h"
22 using content::RenderViewHost;
24 // This macro finesses macro expansion to do what we want.
25 #define STRIP_PREFIXES(test_name) ppapi::StripTestPrefixes(#test_name)
26 // Turn the given token into a string. This allows us to use precompiler stuff
27 // to turn names into DISABLED_Foo, but still pass a string to RunTest.
28 #define STRINGIFY(test_name) #test_name
29 #define LIST_TEST(test_name) STRINGIFY(test_name) ","
31 // Use these macros to run the tests for a specific interface.
32 // Most interfaces should be tested with both macros.
33 #define TEST_PPAPI_IN_PROCESS(test_name) \
34 IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \
35 RunTest(STRIP_PREFIXES(test_name)); \
37 #define TEST_PPAPI_OUT_OF_PROCESS(test_name) \
38 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \
39 RunTest(STRIP_PREFIXES(test_name)); \
42 // Similar macros that test over HTTP.
43 #define TEST_PPAPI_IN_PROCESS_VIA_HTTP(test_name) \
44 IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \
45 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
47 #define TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(test_name) \
48 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \
49 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
52 // Similar macros that test with an SSL server.
53 #define TEST_PPAPI_IN_PROCESS_WITH_SSL_SERVER(test_name) \
54 IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \
55 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
57 #define TEST_PPAPI_OUT_OF_PROCESS_WITH_SSL_SERVER(test_name) \
58 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \
59 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
62 #if defined(DISABLE_NACL)
64 #define TEST_PPAPI_NACL(test_name)
65 #define TEST_PPAPI_NACL_DISALLOWED_SOCKETS(test_name)
66 #define TEST_PPAPI_NACL_WITH_SSL_SERVER(test_name)
67 #define TEST_PPAPI_NACL_SUBTESTS(test_name, run_statement)
69 #else
71 // NaCl based PPAPI tests
72 #define TEST_PPAPI_NACL(test_name) \
73 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \
74 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
75 } \
76 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(test_name)) { \
77 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
78 } \
79 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, test_name) { \
80 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
81 } \
82 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest, \
83 MAYBE_PNACL_NONSFI(test_name)) { \
84 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
87 // NaCl based PPAPI tests
88 #define TEST_PPAPI_NACL_SUBTESTS(test_name, run_statement) \
89 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \
90 run_statement; \
91 } \
92 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(test_name)) { \
93 run_statement; \
94 } \
95 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, test_name) { \
96 run_statement; \
97 } \
98 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest, \
99 MAYBE_PNACL_NONSFI(test_name)) { \
100 run_statement; \
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)); \
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)); \
114 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(test_name)) { \
115 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
117 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, test_name) { \
118 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
120 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest, \
121 MAYBE_PNACL_NONSFI(test_name)) { \
122 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
125 #endif // DISABLE_NACL
128 // Interface tests.
131 TEST_PPAPI_IN_PROCESS(Broker)
132 // Flaky, http://crbug.com/111355
133 TEST_PPAPI_OUT_OF_PROCESS(DISABLED_Broker)
135 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Accept) {
136 // Accepting the infobar should grant permission to access the PPAPI broker.
137 InfoBarObserver observer(this);
138 observer.ExpectInfoBarAndAccept(true);
140 // PPB_Broker_Trusted::IsAllowed should return false before the infobar is
141 // popped and true after the infobar is popped.
142 RunTest("Broker_IsAllowedPermissionDenied");
143 RunTest("Broker_ConnectPermissionGranted");
144 RunTest("Broker_IsAllowedPermissionGranted");
146 // It should also set a content settings exception for the site.
147 GURL url = GetTestFileUrl("Broker_ConnectPermissionGranted");
148 HostContentSettingsMap* content_settings =
149 browser()->profile()->GetHostContentSettingsMap();
150 EXPECT_EQ(CONTENT_SETTING_ALLOW,
151 content_settings->GetContentSetting(
152 url, url, CONTENT_SETTINGS_TYPE_PPAPI_BROKER, std::string()));
155 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Deny) {
156 // Canceling the infobar should deny permission to access the PPAPI broker.
157 InfoBarObserver observer(this);
158 observer.ExpectInfoBarAndAccept(false);
160 // PPB_Broker_Trusted::IsAllowed should return false before and after the
161 // infobar is popped.
162 RunTest("Broker_IsAllowedPermissionDenied");
163 RunTest("Broker_ConnectPermissionDenied");
164 RunTest("Broker_IsAllowedPermissionDenied");
166 // It should also set a content settings exception for the site.
167 GURL url = GetTestFileUrl("Broker_ConnectPermissionDenied");
168 HostContentSettingsMap* content_settings =
169 browser()->profile()->GetHostContentSettingsMap();
170 EXPECT_EQ(CONTENT_SETTING_BLOCK,
171 content_settings->GetContentSetting(
172 url, url, CONTENT_SETTINGS_TYPE_PPAPI_BROKER, std::string()));
175 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Blocked) {
176 // Block access to the PPAPI broker.
177 browser()->profile()->GetHostContentSettingsMap()->SetDefaultContentSetting(
178 CONTENT_SETTINGS_TYPE_PPAPI_BROKER, CONTENT_SETTING_BLOCK);
180 // We shouldn't see an infobar.
181 InfoBarObserver observer(this);
183 RunTest("Broker_ConnectPermissionDenied");
184 RunTest("Broker_IsAllowedPermissionDenied");
187 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Allowed) {
188 // Always allow access to the PPAPI broker.
189 browser()->profile()->GetHostContentSettingsMap()->SetDefaultContentSetting(
190 CONTENT_SETTINGS_TYPE_PPAPI_BROKER, CONTENT_SETTING_ALLOW);
192 // We shouldn't see an infobar.
193 InfoBarObserver observer(this);
195 RunTest("Broker_ConnectPermissionGranted");
196 RunTest("Broker_IsAllowedPermissionGranted");
199 TEST_PPAPI_NACL(Console)
201 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_AURA)
202 // TODO(erg): linux_aura bringup: http://crbug.com/318961
203 #define MAYBE_Core DISABLED_Core
204 #else
205 #define MAYBE_Core Core
206 #endif
207 TEST_PPAPI_NACL(MAYBE_Core)
209 // Non-NaCl TraceEvent tests are in content/test/ppapi/ppapi_browsertest.cc.
210 TEST_PPAPI_NACL(TraceEvent)
212 TEST_PPAPI_NACL(InputEvent)
214 // Flaky on Linux and Windows. http://crbug.com/135403
215 #if defined(OS_LINUX) || defined(OS_WIN)
216 #define MAYBE_ImeInputEvent DISABLED_ImeInputEvent
217 #else
218 #define MAYBE_ImeInputEvent ImeInputEvent
219 #endif
221 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_ImeInputEvent)
222 TEST_PPAPI_NACL(MAYBE_ImeInputEvent)
224 // Graphics2D_Dev isn't supported in NaCl, only test the other interfaces
225 // TODO(jhorwich) Enable when Graphics2D_Dev interfaces are proxied in NaCl.
226 TEST_PPAPI_NACL(Graphics2D_InvalidResource)
227 TEST_PPAPI_NACL(Graphics2D_InvalidSize)
228 TEST_PPAPI_NACL(Graphics2D_Humongous)
229 TEST_PPAPI_NACL(Graphics2D_InitToZero)
230 TEST_PPAPI_NACL(Graphics2D_Describe)
231 TEST_PPAPI_NACL(Graphics2D_Paint)
232 TEST_PPAPI_NACL(Graphics2D_Scroll)
233 TEST_PPAPI_NACL(Graphics2D_Replace)
234 TEST_PPAPI_NACL(Graphics2D_Flush)
235 TEST_PPAPI_NACL(Graphics2D_FlushOffscreenUpdate)
236 TEST_PPAPI_NACL(Graphics2D_BindNull)
238 #if defined(OS_WIN)
239 #if defined(USE_AURA)
240 // These tests fail with the test compositor which is what's used by default for
241 // browser tests on Windows Aura. Renable when the software compositor is
242 // available.
243 #define MAYBE_IN_Graphics3D DISABLED_Graphics3D
244 #define MAYBE_OUT_Graphics3D DISABLED_Graphics3D
245 #define MAYBE_NACL_Graphics3D DISABLED_Graphics3D
246 #else // defined(USE_AURA)
247 // In-process and NaCl tests are having flaky failures on Win: crbug.com/242252
248 #define MAYBE_IN_Graphics3D DISABLED_Graphics3D
249 #define MAYBE_OUT_Graphics3D Graphics3D
250 #define MAYBE_NACL_Graphics3D DISABLED_Graphics3D
251 #endif // defined(USE_AURA)
252 #elif defined(OS_MACOSX)
253 // These tests fail when using the legacy software mode. Reenable when the
254 // software compositor is enabled crbug.com/286038
255 #define MAYBE_IN_Graphics3D DISABLED_Graphics3D
256 #define MAYBE_OUT_Graphics3D DISABLED_Graphics3D
257 #define MAYBE_NACL_Graphics3D DISABLED_Graphics3D
258 #else
259 // The tests are failing in-process. crbug.com/280282
260 #define MAYBE_IN_Graphics3D DISABLED_Graphics3D
261 #define MAYBE_OUT_Graphics3D Graphics3D
262 #define MAYBE_NACL_Graphics3D Graphics3D
263 #endif
264 TEST_PPAPI_IN_PROCESS(MAYBE_IN_Graphics3D)
265 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_OUT_Graphics3D)
266 TEST_PPAPI_NACL(MAYBE_NACL_Graphics3D)
268 TEST_PPAPI_NACL(ImageData)
270 // TCPSocket and TCPSocketPrivate tests.
271 #define RUN_TCPSOCKET_SUBTESTS \
272 RunTestViaHTTP( \
273 LIST_TEST(TCPSocket_Connect) \
274 LIST_TEST(TCPSocket_ReadWrite) \
275 LIST_TEST(TCPSocket_SetOption) \
276 LIST_TEST(TCPSocket_Listen) \
277 LIST_TEST(TCPSocket_Backlog) \
278 LIST_TEST(TCPSocket_Interface_1_0) \
281 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, TCPSocket) {
282 RUN_TCPSOCKET_SUBTESTS;
284 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, TCPSocket) {
285 RUN_TCPSOCKET_SUBTESTS;
287 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(TCPSocket)) {
288 RUN_TCPSOCKET_SUBTESTS;
290 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, TCPSocket) {
291 RUN_TCPSOCKET_SUBTESTS;
293 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
294 MAYBE_PNACL_NONSFI(TCPSocket)) {
295 RUN_TCPSOCKET_SUBTESTS;
298 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(TCPServerSocketPrivate)
299 TEST_PPAPI_NACL(TCPServerSocketPrivate)
301 TEST_PPAPI_OUT_OF_PROCESS_WITH_SSL_SERVER(TCPSocketPrivate)
302 TEST_PPAPI_NACL_WITH_SSL_SERVER(TCPSocketPrivate)
304 TEST_PPAPI_OUT_OF_PROCESS_WITH_SSL_SERVER(TCPSocketPrivateTrusted)
306 // UDPSocket tests.
307 // UDPSocket_Broadcast is disabled for OSX because it requires root
308 // permissions on OSX 10.7+.
309 #if defined(OS_MACOSX)
310 #define MAYBE_UDPSocket_Broadcast DISABLED_UDPSocket_Broadcast
311 #else
312 #define MAYBE_UDPSocket_Broadcast UDPSocket_Broadcast
313 #endif
315 #define RUN_UDPSOCKET_SUBTESTS \
316 RunTestViaHTTP( \
317 LIST_TEST(UDPSocket_ReadWrite) \
318 LIST_TEST(UDPSocket_SetOption) \
319 LIST_TEST(MAYBE_UDPSocket_Broadcast) \
322 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, UDPSocket) {
323 RUN_UDPSOCKET_SUBTESTS;
325 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, UDPSocket) {
326 RUN_UDPSOCKET_SUBTESTS;
328 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(UDPSocket)) {
329 RUN_UDPSOCKET_SUBTESTS;
331 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, UDPSocket) {
332 RUN_UDPSOCKET_SUBTESTS;
334 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
335 MAYBE_PNACL_NONSFI(UDPSocket)) {
336 RUN_UDPSOCKET_SUBTESTS;
340 // UDPSocketPrivate tests.
341 // UDPSocketPrivate_Broadcast is disabled for OSX because it requires root
342 // permissions on OSX 10.7+.
343 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_Connect)
344 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_ConnectFailure)
345 #if !defined(OS_MACOSX)
346 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_Broadcast)
347 #endif // !defined(OS_MACOSX)
348 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_SetSocketFeatureErrors)
349 TEST_PPAPI_NACL(UDPSocketPrivate_Connect)
350 TEST_PPAPI_NACL(UDPSocketPrivate_ConnectFailure)
351 #if !defined(OS_MACOSX)
352 TEST_PPAPI_NACL(UDPSocketPrivate_Broadcast)
353 #endif // !defined(OS_MACOSX)
354 TEST_PPAPI_NACL(UDPSocketPrivate_SetSocketFeatureErrors)
356 // Disallowed socket tests.
357 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(HostResolverPrivateDisallowed)
358 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(TCPServerSocketPrivateDisallowed)
359 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(TCPSocketPrivateDisallowed)
360 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(UDPSocketPrivateDisallowed)
362 // HostResolver and HostResolverPrivate tests.
363 #define RUN_HOST_RESOLVER_SUBTESTS \
364 RunTestViaHTTP( \
365 LIST_TEST(HostResolver_Empty) \
366 LIST_TEST(HostResolver_Resolve) \
367 LIST_TEST(HostResolver_ResolveIPv4) \
370 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, HostResolver) {
371 RUN_HOST_RESOLVER_SUBTESTS;
373 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, HostResolver) {
374 RUN_HOST_RESOLVER_SUBTESTS;
376 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(HostResolver)) {
377 RUN_HOST_RESOLVER_SUBTESTS;
379 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, HostResolver) {
380 RUN_HOST_RESOLVER_SUBTESTS;
382 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
383 MAYBE_PNACL_NONSFI(HostResolver)) {
384 RUN_HOST_RESOLVER_SUBTESTS;
387 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(HostResolverPrivate_Resolve)
388 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(HostResolverPrivate_ResolveIPv4)
389 TEST_PPAPI_NACL(HostResolverPrivate_Resolve)
390 TEST_PPAPI_NACL(HostResolverPrivate_ResolveIPv4)
392 // URLLoader tests. These are split into multiple test fixtures because if we
393 // run them all together, they tend to time out.
394 #define RUN_URLLOADER_SUBTESTS_0 \
395 RunTestViaHTTP( \
396 LIST_TEST(URLLoader_BasicGET) \
397 LIST_TEST(URLLoader_BasicPOST) \
398 LIST_TEST(URLLoader_BasicFilePOST) \
399 LIST_TEST(URLLoader_BasicFileRangePOST) \
400 LIST_TEST(URLLoader_CompoundBodyPOST) \
403 #define RUN_URLLOADER_SUBTESTS_1 \
404 RunTestViaHTTP( \
405 LIST_TEST(URLLoader_EmptyDataPOST) \
406 LIST_TEST(URLLoader_BinaryDataPOST) \
407 LIST_TEST(URLLoader_CustomRequestHeader) \
408 LIST_TEST(URLLoader_FailsBogusContentLength) \
409 LIST_TEST(URLLoader_StreamToFile) \
412 // TODO(bbudge) Fix Javascript URLs for trusted loaders.
413 // http://crbug.com/103062
414 #define RUN_URLLOADER_SUBTESTS_2 \
415 RunTestViaHTTP( \
416 LIST_TEST(URLLoader_UntrustedSameOriginRestriction) \
417 LIST_TEST(URLLoader_UntrustedCrossOriginRequest) \
418 LIST_TEST(URLLoader_UntrustedJavascriptURLRestriction) \
419 LIST_TEST(DISABLED_URLLoader_TrustedJavascriptURLRestriction) \
422 #define RUN_URLLOADER_NACL_SUBTESTS_2 \
423 RunTestViaHTTP( \
424 LIST_TEST(URLLoader_UntrustedSameOriginRestriction) \
425 LIST_TEST(URLLoader_UntrustedCrossOriginRequest) \
426 LIST_TEST(URLLoader_UntrustedJavascriptURLRestriction) \
427 LIST_TEST(DISABLED_URLLoader_TrustedJavascriptURLRestriction) \
430 #define RUN_URLLOADER_SUBTESTS_3 \
431 RunTestViaHTTP( \
432 LIST_TEST(URLLoader_UntrustedHttpRequests) \
433 LIST_TEST(URLLoader_FollowURLRedirect) \
434 LIST_TEST(URLLoader_AuditURLRedirect) \
435 LIST_TEST(URLLoader_AbortCalls) \
436 LIST_TEST(URLLoader_UntendedLoad) \
437 LIST_TEST(URLLoader_PrefetchBufferThreshold) \
440 // Note: we do not support Trusted APIs in NaCl, so these will be skipped.
441 // XRequestedWithHeader isn't trusted per-se, but the header isn't provided
442 // for NaCl and thus must be skipped.
443 #define RUN_URLLOADER_TRUSTED_SUBTESTS \
444 RunTestViaHTTP( \
445 LIST_TEST(URLLoader_TrustedSameOriginRestriction) \
446 LIST_TEST(URLLoader_TrustedCrossOriginRequest) \
447 LIST_TEST(URLLoader_TrustedHttpRequests) \
448 LIST_TEST(URLLoader_XRequestedWithHeader) \
451 IN_PROC_BROWSER_TEST_F(PPAPITest, URLLoader0) {
452 RUN_URLLOADER_SUBTESTS_0;
454 IN_PROC_BROWSER_TEST_F(PPAPITest, URLLoader1) {
455 RUN_URLLOADER_SUBTESTS_1;
457 IN_PROC_BROWSER_TEST_F(PPAPITest, URLLoader2) {
458 RUN_URLLOADER_SUBTESTS_2;
460 IN_PROC_BROWSER_TEST_F(PPAPITest, URLLoader3) {
461 RUN_URLLOADER_SUBTESTS_3;
463 IN_PROC_BROWSER_TEST_F(PPAPITest, URLLoaderTrusted) {
464 RUN_URLLOADER_TRUSTED_SUBTESTS;
466 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, URLLoader0) {
467 RUN_URLLOADER_SUBTESTS_0;
469 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, URLLoader1) {
470 RUN_URLLOADER_SUBTESTS_1;
472 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, URLLoader2) {
473 RUN_URLLOADER_SUBTESTS_2;
475 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, URLLoader3) {
476 RUN_URLLOADER_SUBTESTS_3;
478 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, URLLoaderTrusted) {
479 RUN_URLLOADER_TRUSTED_SUBTESTS;
481 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, URLLoader0) {
482 RUN_URLLOADER_SUBTESTS_0;
484 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, URLLoader1) {
485 RUN_URLLOADER_SUBTESTS_1;
487 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, URLLoader2) {
488 RUN_URLLOADER_SUBTESTS_2;
490 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, URLLoader3) {
491 RUN_URLLOADER_SUBTESTS_3;
494 // Flaky on 32-bit linux bot; http://crbug.com/308906
495 #if defined(OS_LINUX) && defined(ARCH_CPU_X86)
496 #define MAYBE_URLLoader_BasicFilePOST DISABLED_URLLoader_BasicFilePOST
497 #else
498 #define MAYBE_URLLoader_BasicFilePOST URLLoader_BasicFilePOST
499 #endif
500 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(URLLoader0)) {
501 RunTestViaHTTP(
502 LIST_TEST(URLLoader_BasicGET)
503 LIST_TEST(URLLoader_BasicPOST)
504 LIST_TEST(MAYBE_URLLoader_BasicFilePOST)
505 LIST_TEST(URLLoader_BasicFileRangePOST)
506 LIST_TEST(URLLoader_CompoundBodyPOST)
510 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(URLLoader1)) {
511 RUN_URLLOADER_SUBTESTS_1;
513 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(URLLoader2)) {
514 RUN_URLLOADER_SUBTESTS_2;
516 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(URLLoader3)) {
517 RUN_URLLOADER_SUBTESTS_3;
519 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, URLLoader0) {
520 RUN_URLLOADER_SUBTESTS_0;
522 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, URLLoader1) {
523 RUN_URLLOADER_SUBTESTS_1;
525 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, URLLoader2) {
526 RUN_URLLOADER_SUBTESTS_2;
528 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, URLLoader3) {
529 RUN_URLLOADER_SUBTESTS_3;
531 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
532 MAYBE_PNACL_NONSFI(URLLoader0)) {
533 RUN_URLLOADER_SUBTESTS_0;
535 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
536 MAYBE_PNACL_NONSFI(URLLoader1)) {
537 RUN_URLLOADER_SUBTESTS_1;
539 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
540 MAYBE_PNACL_NONSFI(URLLoader2)) {
541 RUN_URLLOADER_SUBTESTS_2;
543 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
544 MAYBE_PNACL_NONSFI(URLLoader3)) {
545 RUN_URLLOADER_SUBTESTS_3;
548 // URLRequestInfo tests.
549 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_CreateAndIsURLRequestInfo)
550 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_CreateAndIsURLRequestInfo)
552 // Timing out on Windows. http://crbug.com/129571
553 #if defined(OS_WIN)
554 #define MAYBE_URLRequest_CreateAndIsURLRequestInfo \
555 DISABLED_URLRequest_CreateAndIsURLRequestInfo
556 #else
557 #define MAYBE_URLRequest_CreateAndIsURLRequestInfo \
558 URLRequest_CreateAndIsURLRequestInfo
559 #endif
560 TEST_PPAPI_NACL(MAYBE_URLRequest_CreateAndIsURLRequestInfo)
562 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_SetProperty)
563 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_SetProperty)
564 TEST_PPAPI_NACL(URLRequest_SetProperty)
565 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_AppendDataToBody)
566 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_AppendDataToBody)
567 TEST_PPAPI_NACL(URLRequest_AppendDataToBody)
568 TEST_PPAPI_IN_PROCESS_VIA_HTTP(DISABLED_URLRequest_AppendFileToBody)
569 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(DISABLED_URLRequest_AppendFileToBody)
570 TEST_PPAPI_NACL(DISABLED_URLRequest_AppendFileToBody)
571 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_Stress)
572 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_Stress)
573 TEST_PPAPI_NACL(URLRequest_Stress)
575 TEST_PPAPI_IN_PROCESS(PaintAggregator)
576 TEST_PPAPI_OUT_OF_PROCESS(PaintAggregator)
577 TEST_PPAPI_NACL(PaintAggregator)
579 // TODO(danakj): http://crbug.com/115286
580 TEST_PPAPI_NACL(DISABLED_Scrollbar)
582 TEST_PPAPI_NACL(Var)
584 TEST_PPAPI_NACL(VarResource)
586 // PostMessage tests.
587 #define RUN_POSTMESSAGE_SUBTESTS \
588 RunTestViaHTTP( \
589 LIST_TEST(PostMessage_SendInInit) \
590 LIST_TEST(PostMessage_SendingData) \
591 LIST_TEST(PostMessage_SendingString) \
592 LIST_TEST(PostMessage_SendingArrayBuffer) \
593 LIST_TEST(PostMessage_SendingArray) \
594 LIST_TEST(PostMessage_SendingDictionary) \
595 LIST_TEST(PostMessage_SendingResource) \
596 LIST_TEST(PostMessage_SendingComplexVar) \
597 LIST_TEST(PostMessage_MessageEvent) \
598 LIST_TEST(PostMessage_NoHandler) \
599 LIST_TEST(PostMessage_ExtraParam) \
600 LIST_TEST(PostMessage_NonMainThread) \
603 // Windows defines 'PostMessage', so we have to undef it.
604 #ifdef PostMessage
605 #undef PostMessage
606 #endif
608 #if defined(OS_WIN)
609 // http://crbug.com/95557
610 #define MAYBE_PostMessage DISABLED_PostMessage
611 #else
612 #define MAYBE_PostMessage PostMessage
613 #endif
614 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, MAYBE_PostMessage) {
615 RUN_POSTMESSAGE_SUBTESTS;
617 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, PostMessage) {
618 RUN_POSTMESSAGE_SUBTESTS;
620 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(PostMessage)) {
621 RUN_POSTMESSAGE_SUBTESTS;
623 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, PostMessage) {
624 RUN_POSTMESSAGE_SUBTESTS;
626 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
627 MAYBE_PNACL_NONSFI(PostMessage)) {
628 RUN_POSTMESSAGE_SUBTESTS;
631 TEST_PPAPI_NACL(Memory)
633 // FileIO tests.
634 #define RUN_FILEIO_SUBTESTS \
635 RunTestViaHTTP( \
636 LIST_TEST(FileIO_Open) \
637 LIST_TEST(FileIO_OpenDirectory) \
638 LIST_TEST(FileIO_AbortCalls) \
639 LIST_TEST(FileIO_ParallelReads) \
640 LIST_TEST(FileIO_ParallelWrites) \
641 LIST_TEST(FileIO_NotAllowMixedReadWrite) \
642 LIST_TEST(FileIO_ReadWriteSetLength) \
643 LIST_TEST(FileIO_ReadToArrayWriteSetLength) \
644 LIST_TEST(FileIO_TouchQuery) \
647 #define RUN_FILEIO_PRIVATE_SUBTESTS \
648 RunTestViaHTTP( \
649 LIST_TEST(FileIO_RequestOSFileHandle) \
650 LIST_TEST(FileIO_RequestOSFileHandleWithOpenExclusive) \
651 LIST_TEST(FileIO_Mmap) \
654 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_AURA)
655 // TODO(erg): linux_aura bringup: http://crbug.com/318961
656 #define MAYBE_FileIO DISABLED_FileIO
657 #define MAYBE_FileIO_Private DISABLED_FileIO_Private
658 #else
659 #define MAYBE_FileIO FileIO
660 #define MAYBE_FileIO_Private FileIO_Private
661 #endif
663 IN_PROC_BROWSER_TEST_F(PPAPITest, MAYBE_FileIO) {
664 RUN_FILEIO_SUBTESTS;
666 IN_PROC_BROWSER_TEST_F(PPAPIPrivateTest, MAYBE_FileIO_Private) {
667 RUN_FILEIO_PRIVATE_SUBTESTS;
670 // See: crbug.com/421284
671 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, DISABLED_FileIO) {
672 RUN_FILEIO_SUBTESTS;
674 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPIPrivateTest, MAYBE_FileIO_Private) {
675 RUN_FILEIO_PRIVATE_SUBTESTS;
678 // http://crbug.com/313401
679 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, DISABLED_FileIO) {
680 RUN_FILEIO_SUBTESTS;
682 // http://crbug.com/313401
683 IN_PROC_BROWSER_TEST_F(PPAPIPrivateNaClNewlibTest,
684 DISABLED_NaCl_Newlib_FileIO_Private) {
685 RUN_FILEIO_PRIVATE_SUBTESTS;
688 // Flaky on 32-bit linux bot; http://crbug.com/308905
689 // Flaky on Windows too; http://crbug.com/321300
690 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, DISABLED_FileIO) {
691 RUN_FILEIO_SUBTESTS;
693 IN_PROC_BROWSER_TEST_F(PPAPIPrivateNaClGLibcTest, DISABLED_FileIO_Private) {
694 RUN_FILEIO_PRIVATE_SUBTESTS;
697 // http://crbug.com/313205
698 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, DISABLED_FileIO) {
699 RUN_FILEIO_SUBTESTS;
701 IN_PROC_BROWSER_TEST_F(PPAPIPrivateNaClPNaClTest,
702 DISABLED_PNaCl_FileIO_Private) {
703 RUN_FILEIO_PRIVATE_SUBTESTS;
706 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest, MAYBE_PNACL_NONSFI(FileIO)) {
707 RUN_FILEIO_SUBTESTS;
709 IN_PROC_BROWSER_TEST_F(PPAPIPrivateNaClPNaClTest,
710 MAYBE_PNACL_NONSFI(FILEIO_Private)) {
711 RUN_FILEIO_PRIVATE_SUBTESTS;
714 // PPB_FileMapping is only implemented on POSIX currently.
715 // http://crbug.com/83774
716 #if defined(OS_WIN)
717 #define MAYBE_FileMapping DISABLED_FileMapping
718 #else
719 #define MAYBE_FileMapping FileMapping
720 #endif
721 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(MAYBE_FileMapping)
722 TEST_PPAPI_NACL(MAYBE_FileMapping)
724 // FileRef tests.
725 #define RUN_FILEREF_SUBTESTS_1 \
726 RunTestViaHTTP( \
727 LIST_TEST(FileRef_Create) \
728 LIST_TEST(FileRef_GetFileSystemType) \
729 LIST_TEST(FileRef_GetName) \
730 LIST_TEST(FileRef_GetPath) \
731 LIST_TEST(FileRef_GetParent) \
732 LIST_TEST(FileRef_MakeDirectory) \
735 #define RUN_FILEREF_SUBTESTS_2 \
736 RunTestViaHTTP( \
737 LIST_TEST(FileRef_QueryAndTouchFile) \
738 LIST_TEST(FileRef_DeleteFileAndDirectory) \
739 LIST_TEST(FileRef_RenameFileAndDirectory) \
740 LIST_TEST(FileRef_Query) \
741 LIST_TEST(FileRef_FileNameEscaping) \
744 // Note, the FileRef tests are split into two, because all of them together
745 // sometimes take too long on windows: crbug.com/336999
746 IN_PROC_BROWSER_TEST_F(PPAPITest, FileRef1) {
747 RUN_FILEREF_SUBTESTS_1;
749 IN_PROC_BROWSER_TEST_F(PPAPITest, FileRef2) {
750 RUN_FILEREF_SUBTESTS_2;
752 // This test only works as an in-process test. See crbug.com/241646.
753 IN_PROC_BROWSER_TEST_F(PPAPITest, FileRef_ReadDirectoryEntries) {
754 RunTestViaHTTP(LIST_TEST(FileRef_ReadDirectoryEntries));
756 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, FileRef1) {
757 RUN_FILEREF_SUBTESTS_1;
759 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, FileRef2) {
760 RUN_FILEREF_SUBTESTS_2;
762 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, FileRef1) {
763 RUN_FILEREF_SUBTESTS_1;
765 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, FileRef2) {
766 RUN_FILEREF_SUBTESTS_2;
768 // Flaky on 32-bit linux bot; http://crbug.com/308908
769 // Glibc not available on ARM
770 #if (defined(OS_LINUX) && defined(ARCH_CPU_X86)) \
771 || defined(ARCH_CPU_ARM_FAMILY)
772 #define MAYBE_NaCl_Glibc_FileRef1 DISABLED_FileRef1
773 #define MAYBE_NaCl_Glibc_FileRef2 DISABLED_FileRef2
774 #else
775 #define MAYBE_NaCl_Glibc_FileRef1 FileRef1
776 #define MAYBE_NaCl_Glibc_FileRef2 FileRef2
777 #endif
778 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_NaCl_Glibc_FileRef1) {
779 RUN_FILEREF_SUBTESTS_1;
781 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_NaCl_Glibc_FileRef2) {
782 RUN_FILEREF_SUBTESTS_2;
784 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, FileRef1) {
785 RUN_FILEREF_SUBTESTS_1;
787 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, FileRef2) {
788 RUN_FILEREF_SUBTESTS_2;
790 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
791 MAYBE_PNACL_NONSFI(FileRef1)) {
792 RUN_FILEREF_SUBTESTS_1;
794 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
795 MAYBE_PNACL_NONSFI(FileRef2)) {
796 RUN_FILEREF_SUBTESTS_2;
799 TEST_PPAPI_IN_PROCESS_VIA_HTTP(FileSystem)
800 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileSystem)
802 // PPAPINaClTest.FileSystem times out consistently on Windows and Mac.
803 // http://crbug.com/130372
804 #if defined(OS_MACOSX) || defined(OS_WIN)
805 #define MAYBE_FileSystem DISABLED_FileSystem
806 #else
807 #define MAYBE_FileSystem FileSystem
808 #endif
810 TEST_PPAPI_NACL(MAYBE_FileSystem)
812 #if defined(OS_MACOSX)
813 // http://crbug.com/103912
814 #define MAYBE_Fullscreen DISABLED_Fullscreen
815 #elif defined(OS_LINUX)
816 // http://crbug.com/146008
817 #define MAYBE_Fullscreen DISABLED_Fullscreen
818 #elif defined(OS_WIN)
819 // http://crbug.com/342269
820 #define MAYBE_Fullscreen DISABLED_Fullscreen
821 #else
822 #define MAYBE_Fullscreen Fullscreen
823 #endif
825 TEST_PPAPI_IN_PROCESS_VIA_HTTP(MAYBE_Fullscreen)
826 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(MAYBE_Fullscreen)
827 TEST_PPAPI_NACL(MAYBE_Fullscreen)
829 TEST_PPAPI_OUT_OF_PROCESS(X509CertificatePrivate)
831 TEST_PPAPI_IN_PROCESS(UMA)
832 TEST_PPAPI_OUT_OF_PROCESS(UMA)
833 TEST_PPAPI_NACL(UMA)
835 // NetAddress tests.
836 #define RUN_NETADDRESS_SUBTESTS \
837 RunTestViaHTTP( \
838 LIST_TEST(NetAddress_IPv4Address) \
839 LIST_TEST(NetAddress_IPv6Address) \
840 LIST_TEST(NetAddress_DescribeAsString) \
843 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, NetAddress) {
844 RUN_NETADDRESS_SUBTESTS;
846 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, NetAddress) {
847 RUN_NETADDRESS_SUBTESTS;
849 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(NetAddress)) {
850 RUN_NETADDRESS_SUBTESTS;
852 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, NetAddress) {
853 RUN_NETADDRESS_SUBTESTS;
855 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
856 MAYBE_PNACL_NONSFI(NetAddress)) {
857 RUN_NETADDRESS_SUBTESTS;
860 // NetAddressPrivate tests.
861 #define RUN_NETADDRESS_PRIVATE_SUBTESTS \
862 RunTestViaHTTP( \
863 LIST_TEST(NetAddressPrivate_AreEqual) \
864 LIST_TEST(NetAddressPrivate_AreHostsEqual) \
865 LIST_TEST(NetAddressPrivate_Describe) \
866 LIST_TEST(NetAddressPrivate_ReplacePort) \
867 LIST_TEST(NetAddressPrivate_GetAnyAddress) \
868 LIST_TEST(NetAddressPrivate_DescribeIPv6) \
869 LIST_TEST(NetAddressPrivate_GetFamily) \
870 LIST_TEST(NetAddressPrivate_GetPort) \
871 LIST_TEST(NetAddressPrivate_GetAddress) \
872 LIST_TEST(NetAddressPrivate_GetScopeID) \
875 IN_PROC_BROWSER_TEST_F(PPAPITest, NetAddressPrivate) {
876 RUN_NETADDRESS_PRIVATE_SUBTESTS;
878 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, NetAddressPrivate) {
879 RUN_NETADDRESS_PRIVATE_SUBTESTS;
882 #define RUN_NETADDRESS_PRIVATE_UNTRUSTED_SUBTESTS \
883 RunTestViaHTTP( \
884 LIST_TEST(NetAddressPrivateUntrusted_AreEqual) \
885 LIST_TEST(NetAddressPrivateUntrusted_AreHostsEqual) \
886 LIST_TEST(NetAddressPrivateUntrusted_Describe) \
887 LIST_TEST(NetAddressPrivateUntrusted_ReplacePort) \
888 LIST_TEST(NetAddressPrivateUntrusted_GetAnyAddress) \
889 LIST_TEST(NetAddressPrivateUntrusted_GetFamily) \
890 LIST_TEST(NetAddressPrivateUntrusted_GetPort) \
891 LIST_TEST(NetAddressPrivateUntrusted_GetAddress) \
894 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, NetAddressPrivate) {
895 RUN_NETADDRESS_PRIVATE_UNTRUSTED_SUBTESTS;
897 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(NetAddressPrivate)) {
898 RUN_NETADDRESS_PRIVATE_UNTRUSTED_SUBTESTS;
900 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, NetAddressPrivate) {
901 RUN_NETADDRESS_PRIVATE_UNTRUSTED_SUBTESTS;
903 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
904 MAYBE_PNACL_NONSFI(NetAddressPrivate)) {
905 RUN_NETADDRESS_PRIVATE_UNTRUSTED_SUBTESTS;
908 // NetworkMonitor tests.
909 #define RUN_NETWORK_MONITOR_SUBTESTS \
910 RunTestViaHTTP( \
911 LIST_TEST(NetworkMonitor_Basic) \
912 LIST_TEST(NetworkMonitor_2Monitors) \
913 LIST_TEST(NetworkMonitor_DeleteInCallback) \
916 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, NetworkMonitor) {
917 RUN_NETWORK_MONITOR_SUBTESTS;
919 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, NetworkMonitor) {
920 RUN_NETWORK_MONITOR_SUBTESTS;
922 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(NetworkMonitor)) {
923 RUN_NETWORK_MONITOR_SUBTESTS;
925 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, NetworkMonitor) {
926 RUN_NETWORK_MONITOR_SUBTESTS;
928 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
929 MAYBE_PNACL_NONSFI(NetworkMonitor)) {
930 RUN_NETWORK_MONITOR_SUBTESTS;
933 // Flash tests.
934 #define RUN_FLASH_SUBTESTS \
935 RunTestViaHTTP( \
936 LIST_TEST(Flash_SetInstanceAlwaysOnTop) \
937 LIST_TEST(Flash_GetCommandLineArgs) \
940 IN_PROC_BROWSER_TEST_F(PPAPITest, Flash) {
941 RUN_FLASH_SUBTESTS;
943 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, Flash) {
944 RUN_FLASH_SUBTESTS;
947 // In-process WebSocket tests. Note, the WebSocket tests are split into two,
948 // because all of them together sometimes take too long on windows:
949 // crbug.com/336999
950 #define RUN_WEBSOCKET_SUBTESTS_1 \
951 RunTestWithWebSocketServer( \
952 LIST_TEST(WebSocket_IsWebSocket) \
953 LIST_TEST(WebSocket_UninitializedPropertiesAccess) \
954 LIST_TEST(WebSocket_InvalidConnect) \
955 LIST_TEST(WebSocket_Protocols) \
956 LIST_TEST(WebSocket_GetURL) \
957 LIST_TEST(WebSocket_ValidConnect) \
958 LIST_TEST(WebSocket_InvalidClose) \
959 LIST_TEST(WebSocket_ValidClose) \
960 LIST_TEST(WebSocket_GetProtocol) \
961 LIST_TEST(WebSocket_TextSendReceive) \
962 LIST_TEST(WebSocket_BinarySendReceive) \
963 LIST_TEST(WebSocket_StressedSendReceive) \
964 LIST_TEST(WebSocket_BufferedAmount) \
967 #define RUN_WEBSOCKET_SUBTESTS_2 \
968 RunTestWithWebSocketServer( \
969 LIST_TEST(WebSocket_AbortCallsWithCallback) \
970 LIST_TEST(WebSocket_AbortSendMessageCall) \
971 LIST_TEST(WebSocket_AbortCloseCall) \
972 LIST_TEST(WebSocket_AbortReceiveMessageCall) \
973 LIST_TEST(WebSocket_ClosedFromServerWhileSending) \
974 LIST_TEST(WebSocket_CcInterfaces) \
975 LIST_TEST(WebSocket_UtilityInvalidConnect) \
976 LIST_TEST(WebSocket_UtilityProtocols) \
977 LIST_TEST(WebSocket_UtilityGetURL) \
978 LIST_TEST(WebSocket_UtilityValidConnect) \
979 LIST_TEST(WebSocket_UtilityInvalidClose) \
980 LIST_TEST(WebSocket_UtilityValidClose) \
981 LIST_TEST(WebSocket_UtilityGetProtocol) \
982 LIST_TEST(WebSocket_UtilityTextSendReceive) \
983 LIST_TEST(WebSocket_UtilityBinarySendReceive) \
984 LIST_TEST(WebSocket_UtilityBufferedAmount) \
987 IN_PROC_BROWSER_TEST_F(PPAPITest, WebSocket1) {
988 RUN_WEBSOCKET_SUBTESTS_1;
990 IN_PROC_BROWSER_TEST_F(PPAPITest, WebSocket2) {
991 RUN_WEBSOCKET_SUBTESTS_2;
993 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, WebSocket1) {
994 RUN_WEBSOCKET_SUBTESTS_1;
996 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, WebSocket2) {
997 RUN_WEBSOCKET_SUBTESTS_2;
999 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(WebSocket1)) {
1000 RUN_WEBSOCKET_SUBTESTS_1;
1002 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(WebSocket2)) {
1003 RUN_WEBSOCKET_SUBTESTS_2;
1005 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, WebSocket1) {
1006 RUN_WEBSOCKET_SUBTESTS_1;
1008 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, WebSocket2) {
1009 RUN_WEBSOCKET_SUBTESTS_2;
1011 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, WebSocket1) {
1012 RUN_WEBSOCKET_SUBTESTS_1;
1014 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, WebSocket2) {
1015 RUN_WEBSOCKET_SUBTESTS_2;
1017 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
1018 MAYBE_PNACL_NONSFI(WebSocket1)) {
1019 RUN_WEBSOCKET_SUBTESTS_1;
1021 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
1022 MAYBE_PNACL_NONSFI(WebSocket2)) {
1023 RUN_WEBSOCKET_SUBTESTS_2;
1026 // AudioConfig tests
1027 #define RUN_AUDIO_CONFIG_SUBTESTS \
1028 RunTestViaHTTP( \
1029 LIST_TEST(AudioConfig_RecommendSampleRate) \
1030 LIST_TEST(AudioConfig_ValidConfigs) \
1031 LIST_TEST(AudioConfig_InvalidConfigs) \
1034 IN_PROC_BROWSER_TEST_F(PPAPITest, AudioConfig) {
1035 RUN_AUDIO_CONFIG_SUBTESTS;
1037 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, AudioConfig) {
1038 RUN_AUDIO_CONFIG_SUBTESTS;
1040 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, AudioConfig) {
1041 RUN_AUDIO_CONFIG_SUBTESTS;
1043 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(AudioConfig)) {
1044 RUN_AUDIO_CONFIG_SUBTESTS;
1046 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, AudioConfig) {
1047 RUN_AUDIO_CONFIG_SUBTESTS;
1049 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
1050 MAYBE_PNACL_NONSFI(AudioConfig)) {
1051 RUN_AUDIO_CONFIG_SUBTESTS;
1054 // PPB_Audio tests.
1055 #define RUN_AUDIO_SUBTESTS \
1056 RunTestViaHTTP( \
1057 LIST_TEST(Audio_Creation) \
1058 LIST_TEST(Audio_DestroyNoStop) \
1059 LIST_TEST(Audio_Failures) \
1060 LIST_TEST(Audio_AudioCallback1) \
1061 LIST_TEST(Audio_AudioCallback2) \
1062 LIST_TEST(Audio_AudioCallback3) \
1063 LIST_TEST(Audio_AudioCallback4) \
1066 #if defined(OS_LINUX)
1067 // http://crbug.com/396464
1068 #define MAYBE_Audio DISABLED_Audio
1069 #else
1070 #define MAYBE_Audio Audio
1071 #endif
1072 // PPB_Audio is not supported in-process.
1073 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, MAYBE_Audio) {
1074 RUN_AUDIO_SUBTESTS;
1076 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, Audio) {
1077 RUN_AUDIO_SUBTESTS;
1079 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(Audio)) {
1080 RUN_AUDIO_SUBTESTS;
1082 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, Audio) {
1083 RUN_AUDIO_SUBTESTS;
1085 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
1086 MAYBE_PNACL_NONSFI(Audio)) {
1087 RUN_AUDIO_SUBTESTS;
1090 #define RUN_AUDIO_THREAD_CREATOR_SUBTESTS \
1091 RunTestViaHTTP( \
1092 LIST_TEST(Audio_AudioThreadCreatorIsRequired) \
1093 LIST_TEST(Audio_AudioThreadCreatorIsCalled) \
1096 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, AudioThreadCreator) {
1097 RUN_AUDIO_THREAD_CREATOR_SUBTESTS;
1099 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(AudioThreadCreator)) {
1100 RUN_AUDIO_THREAD_CREATOR_SUBTESTS;
1102 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, AudioThreadCreator) {
1103 RUN_AUDIO_THREAD_CREATOR_SUBTESTS;
1105 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
1106 MAYBE_PNACL_NONSFI(AudioThreadCreator)) {
1107 RUN_AUDIO_THREAD_CREATOR_SUBTESTS;
1110 TEST_PPAPI_IN_PROCESS(View_CreatedVisible);
1111 TEST_PPAPI_OUT_OF_PROCESS(View_CreatedVisible);
1112 TEST_PPAPI_NACL(View_CreatedVisible);
1113 // This test ensures that plugins created in a background tab have their
1114 // initial visibility set to false. We don't bother testing in-process for this
1115 // custom test since the out of process code also exercises in-process.
1117 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, View_CreateInvisible) {
1118 // Make a second tab in the foreground.
1119 GURL url = GetTestFileUrl("View_CreatedInvisible");
1120 chrome::NavigateParams params(browser(), url, ui::PAGE_TRANSITION_LINK);
1121 params.disposition = NEW_BACKGROUND_TAB;
1122 ui_test_utils::NavigateToURL(&params);
1125 // This test messes with tab visibility so is custom.
1126 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, DISABLED_View_PageHideShow) {
1127 // The plugin will be loaded in the foreground tab and will send us a message.
1128 PPAPITestMessageHandler handler;
1129 content::JavascriptTestObserver observer(
1130 browser()->tab_strip_model()->GetActiveWebContents(),
1131 &handler);
1133 GURL url = GetTestFileUrl("View_PageHideShow");
1134 ui_test_utils::NavigateToURL(browser(), url);
1136 ASSERT_TRUE(observer.Run()) << handler.error_message();
1137 EXPECT_STREQ("TestPageHideShow:Created", handler.message().c_str());
1138 observer.Reset();
1140 // Make a new tab to cause the original one to hide, this should trigger the
1141 // next phase of the test.
1142 chrome::NavigateParams params(
1143 browser(), GURL(url::kAboutBlankURL), ui::PAGE_TRANSITION_LINK);
1144 params.disposition = NEW_FOREGROUND_TAB;
1145 ui_test_utils::NavigateToURL(&params);
1147 // Wait until the test acks that it got hidden.
1148 ASSERT_TRUE(observer.Run()) << handler.error_message();
1149 EXPECT_STREQ("TestPageHideShow:Hidden", handler.message().c_str());
1150 observer.Reset();
1152 // Switch back to the test tab.
1153 browser()->tab_strip_model()->ActivateTabAt(0, true);
1155 ASSERT_TRUE(observer.Run()) << handler.error_message();
1156 EXPECT_STREQ("PASS", handler.message().c_str());
1159 // Tests that if a plugin accepts touch events, the browser knows to send touch
1160 // events to the renderer.
1161 IN_PROC_BROWSER_TEST_F(PPAPITest, InputEvent_AcceptTouchEvent) {
1162 std::string positive_tests[] = { "InputEvent_AcceptTouchEvent_1",
1163 "InputEvent_AcceptTouchEvent_2",
1164 "InputEvent_AcceptTouchEvent_3",
1165 "InputEvent_AcceptTouchEvent_4"
1168 for (size_t i = 0; i < arraysize(positive_tests); ++i) {
1169 RenderViewHost* host = browser()->tab_strip_model()->
1170 GetActiveWebContents()->GetRenderViewHost();
1171 RunTest(positive_tests[i]);
1172 EXPECT_TRUE(content::RenderViewHostTester::HasTouchEventHandler(host));
1176 // View tests.
1177 #define RUN_VIEW_SUBTESTS \
1178 RunTestViaHTTP( \
1179 LIST_TEST(View_SizeChange) \
1180 LIST_TEST(View_ClipChange) \
1181 LIST_TEST(View_ScrollOffsetChange) \
1184 IN_PROC_BROWSER_TEST_F(PPAPITest, View) {
1185 RUN_VIEW_SUBTESTS;
1187 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, View) {
1188 RUN_VIEW_SUBTESTS;
1190 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, View) {
1191 RUN_VIEW_SUBTESTS;
1193 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(View)) {
1194 RUN_VIEW_SUBTESTS;
1196 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, View) {
1197 RUN_VIEW_SUBTESTS;
1199 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest, MAYBE_PNACL_NONSFI(View)) {
1200 RUN_VIEW_SUBTESTS;
1203 // FlashMessageLoop tests.
1204 #define RUN_FLASH_MESSAGE_LOOP_SUBTESTS \
1205 RunTest( \
1206 LIST_TEST(FlashMessageLoop_Basics) \
1207 LIST_TEST(FlashMessageLoop_RunWithoutQuit) \
1210 IN_PROC_BROWSER_TEST_F(PPAPITest, FlashMessageLoop) {
1211 RUN_FLASH_MESSAGE_LOOP_SUBTESTS;
1213 #if defined(OS_LINUX) // Disabled due to flakiness http://crbug.com/316925
1214 #define MAYBE_FlashMessageLoop DISABLED_FlashMessageLoop
1215 #else
1216 #define MAYBE_FlashMessageLoop FlashMessageLoop
1217 #endif
1218 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, MAYBE_FlashMessageLoop) {
1219 RUN_FLASH_MESSAGE_LOOP_SUBTESTS;
1222 // The compositor test timeouts sometimes, so we have to split it to two
1223 // subtests.
1224 #define RUN_COMPOSITOR_SUBTESTS_0 \
1225 RunTestViaHTTP( \
1226 LIST_TEST(Compositor_BindUnbind) \
1227 LIST_TEST(Compositor_Release) \
1228 LIST_TEST(Compositor_ReleaseUnbound) \
1229 LIST_TEST(Compositor_ReleaseWithoutCommit) \
1230 LIST_TEST(Compositor_ReleaseWithoutCommitUnbound) \
1233 #define RUN_COMPOSITOR_SUBTESTS_1 \
1234 RunTestViaHTTP( \
1235 LIST_TEST(Compositor_CommitTwoTimesWithoutChange) \
1236 LIST_TEST(Compositor_CommitTwoTimesWithoutChangeUnbound) \
1237 LIST_TEST(Compositor_General) \
1238 LIST_TEST(Compositor_GeneralUnbound) \
1241 #if defined(OS_WIN)
1242 // This test fails with the test compositor which is what's used by default for
1243 // browser tests on Windows. Renable when the software compositor is available.
1244 #define MAYBE_Compositor0 DISABLED_Compositor0
1245 #define MAYBE_Compositor1 DISABLED_Compositor1
1246 #elif defined(OS_MACOSX)
1247 // This test fails when using the legacy software mode. Reenable when the
1248 // software compositor is enabled crbug.com/286038
1249 #define MAYBE_Compositor0 DISABLED_Compositor0
1250 #define MAYBE_Compositor1 DISABLED_Compositor1
1251 #else
1252 // flaky on Linux: http://crbug.com/396482
1253 #define MAYBE_Compositor0 DISABLED_Compositor0
1254 #define MAYBE_Compositor1 DISABLED_Compositor1
1255 #endif
1257 TEST_PPAPI_NACL_SUBTESTS(MAYBE_Compositor0, RUN_COMPOSITOR_SUBTESTS_0)
1258 TEST_PPAPI_NACL_SUBTESTS(MAYBE_Compositor1, RUN_COMPOSITOR_SUBTESTS_1)
1260 TEST_PPAPI_NACL(MediaStreamAudioTrack)
1262 TEST_PPAPI_NACL(MediaStreamVideoTrack)
1264 TEST_PPAPI_NACL(MouseCursor)
1266 TEST_PPAPI_NACL(NetworkProxy)
1268 TEST_PPAPI_NACL(TrueTypeFont)
1270 TEST_PPAPI_NACL(VideoDecoder)
1272 // VideoDestination doesn't work in content_browsertests.
1273 TEST_PPAPI_OUT_OF_PROCESS(VideoDestination)
1274 TEST_PPAPI_NACL(VideoDestination)
1276 // VideoSource doesn't work in content_browsertests.
1277 TEST_PPAPI_OUT_OF_PROCESS(VideoSource)
1278 TEST_PPAPI_NACL(VideoSource)
1280 // Printing doesn't work in content_browsertests.
1281 TEST_PPAPI_OUT_OF_PROCESS(Printing)
1283 TEST_PPAPI_NACL(MessageHandler)
1285 TEST_PPAPI_NACL(MessageLoop_Basics)
1286 TEST_PPAPI_NACL(MessageLoop_Post)
1288 // Going forward, Flash APIs will only work out-of-process.
1289 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetLocalTimeZoneOffset)
1290 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetProxyForURL)
1291 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetSetting)
1292 TEST_PPAPI_OUT_OF_PROCESS(Flash_SetCrashData)
1293 // http://crbug.com/176822
1294 #if !defined(OS_WIN)
1295 TEST_PPAPI_OUT_OF_PROCESS(FlashClipboard)
1296 #endif
1297 TEST_PPAPI_OUT_OF_PROCESS(FlashFile)
1298 // Mac/Aura reach NOTIMPLEMENTED/time out.
1299 // mac: http://crbug.com/96767
1300 // aura: http://crbug.com/104384
1301 // cros: http://crbug.com/396502
1302 #if defined(OS_MACOSX) || defined(OS_CHROMEOS)
1303 #define MAYBE_FlashFullscreen DISABLED_FlashFullscreen
1304 #else
1305 #define MAYBE_FlashFullscreen FlashFullscreen
1306 #endif
1307 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_FlashFullscreen)
1309 TEST_PPAPI_OUT_OF_PROCESS(PDF)
1311 // TODO(dalecurtis): Renable once the platform verification infobar has been
1312 // implemented; see http://crbug.com/270908
1313 // #if defined(OS_CHROMEOS)
1314 // TEST_PPAPI_OUT_OF_PROCESS(PlatformVerificationPrivate)
1315 // #endif
1317 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, FlashDRM) {
1318 RunTest(
1319 #if (defined(OS_WIN) && defined(ENABLE_RLZ)) || defined(OS_CHROMEOS)
1320 // Only implemented on Windows and ChromeOS currently.
1321 LIST_TEST(FlashDRM_GetDeviceID)
1322 #endif
1323 LIST_TEST(FlashDRM_GetHmonitor)
1324 LIST_TEST(FlashDRM_GetVoucherFile));
1327 TEST_PPAPI_IN_PROCESS(TalkPrivate)
1328 TEST_PPAPI_OUT_OF_PROCESS(TalkPrivate)
1330 #if defined(OS_CHROMEOS)
1331 TEST_PPAPI_OUT_OF_PROCESS(OutputProtectionPrivate)
1332 #endif