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 "base/path_service.h"
6 #include "base/test/test_timeouts.h"
7 #include "build/build_config.h"
8 #include "chrome/browser/extensions/extension_browsertest.h"
9 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/browser/ui/browser.h"
11 #include "chrome/browser/ui/browser_navigator.h"
12 #include "chrome/browser/ui/extensions/app_launch_params.h"
13 #include "chrome/browser/ui/extensions/application_launch.h"
14 #include "chrome/browser/ui/tabs/tab_strip_model.h"
15 #include "chrome/common/chrome_paths.h"
16 #include "chrome/test/base/ui_test_utils.h"
17 #include "chrome/test/nacl/nacl_browsertest_util.h"
18 #include "chrome/test/ppapi/ppapi_test.h"
19 #include "components/content_settings/core/browser/host_content_settings_map.h"
20 #include "components/nacl/common/nacl_switches.h"
21 #include "content/public/browser/web_contents.h"
22 #include "content/public/common/url_constants.h"
23 #include "content/public/test/javascript_test_observer.h"
24 #include "content/public/test/test_renderer_host.h"
25 #include "extensions/test/extension_test_message_listener.h"
26 #include "ppapi/shared_impl/test_harness_utils.h"
28 using content::RenderViewHost
;
30 // This macro finesses macro expansion to do what we want.
31 #define STRIP_PREFIXES(test_name) ppapi::StripTestPrefixes(#test_name)
32 // Turn the given token into a string. This allows us to use precompiler stuff
33 // to turn names into DISABLED_Foo, but still pass a string to RunTest.
34 #define STRINGIFY(test_name) #test_name
35 #define LIST_TEST(test_name) STRINGIFY(test_name) ","
37 // Use these macros to run the tests for a specific interface.
38 // Most interfaces should be tested with both macros.
39 #define TEST_PPAPI_IN_PROCESS(test_name) \
40 IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \
41 RunTest(STRIP_PREFIXES(test_name)); \
43 #define TEST_PPAPI_OUT_OF_PROCESS(test_name) \
44 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \
45 RunTest(STRIP_PREFIXES(test_name)); \
48 // Similar macros that test over HTTP.
49 #define TEST_PPAPI_IN_PROCESS_VIA_HTTP(test_name) \
50 IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \
51 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
53 #define TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(test_name) \
54 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \
55 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
58 // Similar macros that test with an SSL server.
59 #define TEST_PPAPI_IN_PROCESS_WITH_SSL_SERVER(test_name) \
60 IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \
61 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
63 #define TEST_PPAPI_OUT_OF_PROCESS_WITH_SSL_SERVER(test_name) \
64 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \
65 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
68 #if defined(DISABLE_NACL)
70 #define TEST_PPAPI_NACL(test_name)
71 #define TEST_PPAPI_NACL_DISALLOWED_SOCKETS(test_name)
72 #define TEST_PPAPI_NACL_WITH_SSL_SERVER(test_name)
73 #define TEST_PPAPI_NACL_SUBTESTS(test_name, run_statement)
77 // NaCl based PPAPI tests
78 #define TEST_PPAPI_NACL(test_name) \
79 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \
80 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
82 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(test_name)) { \
83 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
85 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, test_name) { \
86 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
88 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest, \
89 MAYBE_PNACL_NONSFI(test_name)) { \
90 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
92 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest, \
93 MAYBE_PNACL_TRANSITIONAL_NONSFI(test_name)) { \
94 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
97 // NaCl based PPAPI tests
98 #define TEST_PPAPI_NACL_SUBTESTS(test_name, run_statement) \
99 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \
102 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(test_name)) { \
105 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, test_name) { \
108 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest, \
109 MAYBE_PNACL_NONSFI(test_name)) { \
112 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest, \
113 MAYBE_PNACL_TRANSITIONAL_NONSFI(test_name)) { \
117 // NaCl based PPAPI tests with disallowed socket API
118 #define TEST_PPAPI_NACL_DISALLOWED_SOCKETS(test_name) \
119 IN_PROC_BROWSER_TEST_F(PPAPINaClTestDisallowedSockets, test_name) { \
120 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
123 // NaCl based PPAPI tests with SSL server
124 #define TEST_PPAPI_NACL_WITH_SSL_SERVER(test_name) \
125 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \
126 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
128 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(test_name)) { \
129 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
131 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, test_name) { \
132 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
134 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest, \
135 MAYBE_PNACL_NONSFI(test_name)) { \
136 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
138 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest, \
139 MAYBE_PNACL_TRANSITIONAL_NONSFI(test_name)) { \
140 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
144 #endif // DISABLE_NACL
150 TEST_PPAPI_IN_PROCESS(Broker
)
151 // Flaky, http://crbug.com/111355
152 TEST_PPAPI_OUT_OF_PROCESS(DISABLED_Broker
)
154 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest
, Accept
) {
155 // Accepting the infobar should grant permission to access the PPAPI broker.
156 InfoBarObserver
observer(this);
157 observer
.ExpectInfoBarAndAccept(true);
159 // PPB_Broker_Trusted::IsAllowed should return false before the infobar is
160 // popped and true after the infobar is popped.
161 RunTest("Broker_IsAllowedPermissionDenied");
162 RunTest("Broker_ConnectPermissionGranted");
163 RunTest("Broker_IsAllowedPermissionGranted");
165 // It should also set a content settings exception for the site.
166 GURL url
= GetTestFileUrl("Broker_ConnectPermissionGranted");
167 HostContentSettingsMap
* content_settings
=
168 browser()->profile()->GetHostContentSettingsMap();
169 EXPECT_EQ(CONTENT_SETTING_ALLOW
,
170 content_settings
->GetContentSetting(
171 url
, url
, CONTENT_SETTINGS_TYPE_PPAPI_BROKER
, std::string()));
174 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest
, Deny
) {
175 // Canceling the infobar should deny permission to access the PPAPI broker.
176 InfoBarObserver
observer(this);
177 observer
.ExpectInfoBarAndAccept(false);
179 // PPB_Broker_Trusted::IsAllowed should return false before and after the
180 // infobar is popped.
181 RunTest("Broker_IsAllowedPermissionDenied");
182 RunTest("Broker_ConnectPermissionDenied");
183 RunTest("Broker_IsAllowedPermissionDenied");
185 // It should also set a content settings exception for the site.
186 GURL url
= GetTestFileUrl("Broker_ConnectPermissionDenied");
187 HostContentSettingsMap
* content_settings
=
188 browser()->profile()->GetHostContentSettingsMap();
189 EXPECT_EQ(CONTENT_SETTING_BLOCK
,
190 content_settings
->GetContentSetting(
191 url
, url
, CONTENT_SETTINGS_TYPE_PPAPI_BROKER
, std::string()));
194 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest
, Blocked
) {
195 // Block access to the PPAPI broker.
196 browser()->profile()->GetHostContentSettingsMap()->SetDefaultContentSetting(
197 CONTENT_SETTINGS_TYPE_PPAPI_BROKER
, CONTENT_SETTING_BLOCK
);
199 // We shouldn't see an infobar.
200 InfoBarObserver
observer(this);
202 RunTest("Broker_ConnectPermissionDenied");
203 RunTest("Broker_IsAllowedPermissionDenied");
206 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest
, Allowed
) {
207 // Always allow access to the PPAPI broker.
208 browser()->profile()->GetHostContentSettingsMap()->SetDefaultContentSetting(
209 CONTENT_SETTINGS_TYPE_PPAPI_BROKER
, CONTENT_SETTING_ALLOW
);
211 // We shouldn't see an infobar.
212 InfoBarObserver
observer(this);
214 RunTest("Broker_ConnectPermissionGranted");
215 RunTest("Broker_IsAllowedPermissionGranted");
218 TEST_PPAPI_NACL(Console
)
220 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_AURA)
221 // TODO(erg): linux_aura bringup: http://crbug.com/318961
222 #define MAYBE_Core DISABLED_Core
224 #define MAYBE_Core Core
226 TEST_PPAPI_NACL(MAYBE_Core
)
228 // Non-NaCl TraceEvent tests are in content/test/ppapi/ppapi_browsertest.cc.
229 TEST_PPAPI_NACL(TraceEvent
)
231 TEST_PPAPI_NACL(InputEvent
)
233 // Flaky on Linux and Windows. http://crbug.com/135403
234 #if defined(OS_LINUX) || defined(OS_WIN)
235 #define MAYBE_ImeInputEvent DISABLED_ImeInputEvent
237 #define MAYBE_ImeInputEvent ImeInputEvent
240 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_ImeInputEvent
)
241 TEST_PPAPI_NACL(MAYBE_ImeInputEvent
)
243 // Graphics2D_Dev isn't supported in NaCl, only test the other interfaces
244 // TODO(jhorwich) Enable when Graphics2D_Dev interfaces are proxied in NaCl.
245 TEST_PPAPI_NACL(Graphics2D_InvalidResource
)
246 TEST_PPAPI_NACL(Graphics2D_InvalidSize
)
247 TEST_PPAPI_NACL(Graphics2D_Humongous
)
248 TEST_PPAPI_NACL(Graphics2D_InitToZero
)
249 TEST_PPAPI_NACL(Graphics2D_Describe
)
250 TEST_PPAPI_NACL(Graphics2D_Paint
)
251 TEST_PPAPI_NACL(Graphics2D_Scroll
)
252 TEST_PPAPI_NACL(Graphics2D_Replace
)
253 TEST_PPAPI_NACL(Graphics2D_Flush
)
254 TEST_PPAPI_NACL(Graphics2D_FlushOffscreenUpdate
)
255 TEST_PPAPI_NACL(Graphics2D_BindNull
)
258 #if defined(USE_AURA)
259 // These tests fail with the test compositor which is what's used by default for
260 // browser tests on Windows Aura. Renable when the software compositor is
262 #define MAYBE_IN_Graphics3D DISABLED_Graphics3D
263 #define MAYBE_OUT_Graphics3D DISABLED_Graphics3D
264 #define MAYBE_NACL_Graphics3D DISABLED_Graphics3D
265 #else // defined(USE_AURA)
266 // In-process and NaCl tests are having flaky failures on Win: crbug.com/242252
267 #define MAYBE_IN_Graphics3D DISABLED_Graphics3D
268 #define MAYBE_OUT_Graphics3D Graphics3D
269 #define MAYBE_NACL_Graphics3D DISABLED_Graphics3D
270 #endif // defined(USE_AURA)
271 #elif defined(OS_MACOSX)
272 // These tests fail when using the legacy software mode. Reenable when the
273 // software compositor is enabled crbug.com/286038
274 #define MAYBE_IN_Graphics3D DISABLED_Graphics3D
275 #define MAYBE_OUT_Graphics3D DISABLED_Graphics3D
276 #define MAYBE_NACL_Graphics3D DISABLED_Graphics3D
278 // The tests are failing in-process. crbug.com/280282
279 #define MAYBE_IN_Graphics3D DISABLED_Graphics3D
280 #define MAYBE_OUT_Graphics3D Graphics3D
281 #define MAYBE_NACL_Graphics3D Graphics3D
283 TEST_PPAPI_IN_PROCESS(MAYBE_IN_Graphics3D
)
284 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_OUT_Graphics3D
)
285 TEST_PPAPI_NACL(MAYBE_NACL_Graphics3D
)
287 TEST_PPAPI_NACL(ImageData
)
289 // TCPSocket and TCPSocketPrivate tests.
290 #define RUN_TCPSOCKET_SUBTESTS \
292 LIST_TEST(TCPSocket_Connect) \
293 LIST_TEST(TCPSocket_ReadWrite) \
294 LIST_TEST(TCPSocket_SetOption) \
295 LIST_TEST(TCPSocket_Listen) \
296 LIST_TEST(TCPSocket_Backlog) \
297 LIST_TEST(TCPSocket_Interface_1_0) \
300 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, TCPSocket
) {
301 RUN_TCPSOCKET_SUBTESTS
;
303 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, TCPSocket
) {
304 RUN_TCPSOCKET_SUBTESTS
;
306 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, MAYBE_GLIBC(TCPSocket
)) {
307 RUN_TCPSOCKET_SUBTESTS
;
309 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, TCPSocket
) {
310 RUN_TCPSOCKET_SUBTESTS
;
312 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
,
313 MAYBE_PNACL_NONSFI(TCPSocket
)) {
314 RUN_TCPSOCKET_SUBTESTS
;
316 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
317 MAYBE_PNACL_NONSFI(TCPSocket
)) {
318 RUN_TCPSOCKET_SUBTESTS
;
322 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(TCPServerSocketPrivate
)
323 TEST_PPAPI_NACL(TCPServerSocketPrivate
)
325 TEST_PPAPI_OUT_OF_PROCESS_WITH_SSL_SERVER(TCPSocketPrivate
)
326 TEST_PPAPI_NACL_WITH_SSL_SERVER(TCPSocketPrivate
)
328 TEST_PPAPI_OUT_OF_PROCESS_WITH_SSL_SERVER(TCPSocketPrivateTrusted
)
331 // UDPSocket_Broadcast is disabled for OSX because it requires root
332 // permissions on OSX 10.7+.
333 #if defined(OS_MACOSX)
334 #define MAYBE_UDPSocket_Broadcast DISABLED_UDPSocket_Broadcast
336 #define MAYBE_UDPSocket_Broadcast UDPSocket_Broadcast
339 #define RUN_UDPSOCKET_SUBTESTS \
341 LIST_TEST(UDPSocket_ReadWrite) \
342 LIST_TEST(UDPSocket_SetOption) \
343 LIST_TEST(MAYBE_UDPSocket_Broadcast) \
346 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, UDPSocket
) {
347 RUN_UDPSOCKET_SUBTESTS
;
349 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, UDPSocket
) {
350 RUN_UDPSOCKET_SUBTESTS
;
352 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, MAYBE_GLIBC(UDPSocket
)) {
353 RUN_UDPSOCKET_SUBTESTS
;
355 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, UDPSocket
) {
356 RUN_UDPSOCKET_SUBTESTS
;
358 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
,
359 MAYBE_PNACL_NONSFI(UDPSocket
)) {
360 RUN_UDPSOCKET_SUBTESTS
;
362 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
363 MAYBE_PNACL_TRANSITIONAL_NONSFI(UDPSocket
)) {
364 RUN_UDPSOCKET_SUBTESTS
;
368 // UDPSocketPrivate tests.
369 // UDPSocketPrivate_Broadcast is disabled for OSX because it requires root
370 // permissions on OSX 10.7+.
371 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_Connect
)
372 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_ConnectFailure
)
373 #if !defined(OS_MACOSX)
374 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_Broadcast
)
375 #endif // !defined(OS_MACOSX)
376 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_SetSocketFeatureErrors
)
377 TEST_PPAPI_NACL(UDPSocketPrivate_Connect
)
378 TEST_PPAPI_NACL(UDPSocketPrivate_ConnectFailure
)
379 #if !defined(OS_MACOSX)
380 TEST_PPAPI_NACL(UDPSocketPrivate_Broadcast
)
381 #endif // !defined(OS_MACOSX)
382 TEST_PPAPI_NACL(UDPSocketPrivate_SetSocketFeatureErrors
)
384 // Disallowed socket tests.
385 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(HostResolverPrivateDisallowed
)
386 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(TCPServerSocketPrivateDisallowed
)
387 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(TCPSocketPrivateDisallowed
)
388 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(UDPSocketPrivateDisallowed
)
390 // HostResolver and HostResolverPrivate tests.
391 #define RUN_HOST_RESOLVER_SUBTESTS \
393 LIST_TEST(HostResolver_Empty) \
394 LIST_TEST(HostResolver_Resolve) \
395 LIST_TEST(HostResolver_ResolveIPv4) \
398 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, HostResolver
) {
399 RUN_HOST_RESOLVER_SUBTESTS
;
401 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, HostResolver
) {
402 RUN_HOST_RESOLVER_SUBTESTS
;
404 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, MAYBE_GLIBC(HostResolver
)) {
405 RUN_HOST_RESOLVER_SUBTESTS
;
407 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, HostResolver
) {
408 RUN_HOST_RESOLVER_SUBTESTS
;
410 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
,
411 MAYBE_PNACL_NONSFI(HostResolver
)) {
412 RUN_HOST_RESOLVER_SUBTESTS
;
414 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
415 MAYBE_PNACL_TRANSITIONAL_NONSFI(HostResolver
)) {
416 RUN_HOST_RESOLVER_SUBTESTS
;
419 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(HostResolverPrivate_Resolve
)
420 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(HostResolverPrivate_ResolveIPv4
)
421 TEST_PPAPI_NACL(HostResolverPrivate_Resolve
)
422 TEST_PPAPI_NACL(HostResolverPrivate_ResolveIPv4
)
424 // URLLoader tests. These are split into multiple test fixtures because if we
425 // run them all together, they tend to time out.
426 #define RUN_URLLOADER_SUBTESTS_0 \
428 LIST_TEST(URLLoader_BasicGET) \
429 LIST_TEST(URLLoader_BasicPOST) \
430 LIST_TEST(URLLoader_BasicFilePOST) \
431 LIST_TEST(URLLoader_BasicFileRangePOST) \
432 LIST_TEST(URLLoader_CompoundBodyPOST) \
435 #define RUN_URLLOADER_SUBTESTS_1 \
437 LIST_TEST(URLLoader_EmptyDataPOST) \
438 LIST_TEST(URLLoader_BinaryDataPOST) \
439 LIST_TEST(URLLoader_CustomRequestHeader) \
440 LIST_TEST(URLLoader_FailsBogusContentLength) \
441 LIST_TEST(URLLoader_StreamToFile) \
444 // TODO(bbudge) Fix Javascript URLs for trusted loaders.
445 // http://crbug.com/103062
446 #define RUN_URLLOADER_SUBTESTS_2 \
448 LIST_TEST(URLLoader_UntrustedSameOriginRestriction) \
449 LIST_TEST(URLLoader_UntrustedCrossOriginRequest) \
450 LIST_TEST(URLLoader_UntrustedJavascriptURLRestriction) \
451 LIST_TEST(DISABLED_URLLoader_TrustedJavascriptURLRestriction) \
454 #define RUN_URLLOADER_NACL_SUBTESTS_2 \
456 LIST_TEST(URLLoader_UntrustedSameOriginRestriction) \
457 LIST_TEST(URLLoader_UntrustedCrossOriginRequest) \
458 LIST_TEST(URLLoader_UntrustedJavascriptURLRestriction) \
459 LIST_TEST(DISABLED_URLLoader_TrustedJavascriptURLRestriction) \
462 #define RUN_URLLOADER_SUBTESTS_3 \
464 LIST_TEST(URLLoader_UntrustedHttpRequests) \
465 LIST_TEST(URLLoader_FollowURLRedirect) \
466 LIST_TEST(URLLoader_AuditURLRedirect) \
467 LIST_TEST(URLLoader_AbortCalls) \
468 LIST_TEST(URLLoader_UntendedLoad) \
469 LIST_TEST(URLLoader_PrefetchBufferThreshold) \
472 // Note: we do not support Trusted APIs in NaCl, so these will be skipped.
473 // XRequestedWithHeader isn't trusted per-se, but the header isn't provided
474 // for NaCl and thus must be skipped.
475 #define RUN_URLLOADER_TRUSTED_SUBTESTS \
477 LIST_TEST(URLLoader_TrustedSameOriginRestriction) \
478 LIST_TEST(URLLoader_TrustedCrossOriginRequest) \
479 LIST_TEST(URLLoader_TrustedHttpRequests) \
480 LIST_TEST(URLLoader_XRequestedWithHeader) \
483 IN_PROC_BROWSER_TEST_F(PPAPITest
, URLLoader0
) {
484 RUN_URLLOADER_SUBTESTS_0
;
486 IN_PROC_BROWSER_TEST_F(PPAPITest
, URLLoader1
) {
487 RUN_URLLOADER_SUBTESTS_1
;
489 IN_PROC_BROWSER_TEST_F(PPAPITest
, URLLoader2
) {
490 RUN_URLLOADER_SUBTESTS_2
;
492 IN_PROC_BROWSER_TEST_F(PPAPITest
, URLLoader3
) {
493 RUN_URLLOADER_SUBTESTS_3
;
495 IN_PROC_BROWSER_TEST_F(PPAPITest
, URLLoaderTrusted
) {
496 RUN_URLLOADER_TRUSTED_SUBTESTS
;
498 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, URLLoader0
) {
499 RUN_URLLOADER_SUBTESTS_0
;
501 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, URLLoader1
) {
502 RUN_URLLOADER_SUBTESTS_1
;
504 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, URLLoader2
) {
505 RUN_URLLOADER_SUBTESTS_2
;
507 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, URLLoader3
) {
508 RUN_URLLOADER_SUBTESTS_3
;
510 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, URLLoaderTrusted
) {
511 RUN_URLLOADER_TRUSTED_SUBTESTS
;
513 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, URLLoader0
) {
514 RUN_URLLOADER_SUBTESTS_0
;
516 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, URLLoader1
) {
517 RUN_URLLOADER_SUBTESTS_1
;
519 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, URLLoader2
) {
520 RUN_URLLOADER_SUBTESTS_2
;
522 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, URLLoader3
) {
523 RUN_URLLOADER_SUBTESTS_3
;
526 // Flaky on 32-bit linux bot; http://crbug.com/308906
527 #if defined(OS_LINUX) && defined(ARCH_CPU_X86)
528 #define MAYBE_URLLoader_BasicFilePOST DISABLED_URLLoader_BasicFilePOST
530 #define MAYBE_URLLoader_BasicFilePOST URLLoader_BasicFilePOST
532 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, MAYBE_GLIBC(URLLoader0
)) {
534 LIST_TEST(URLLoader_BasicGET
)
535 LIST_TEST(URLLoader_BasicPOST
)
536 LIST_TEST(MAYBE_URLLoader_BasicFilePOST
)
537 LIST_TEST(URLLoader_BasicFileRangePOST
)
538 LIST_TEST(URLLoader_CompoundBodyPOST
)
542 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, MAYBE_GLIBC(URLLoader1
)) {
543 RUN_URLLOADER_SUBTESTS_1
;
545 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, MAYBE_GLIBC(URLLoader2
)) {
546 RUN_URLLOADER_SUBTESTS_2
;
548 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, MAYBE_GLIBC(URLLoader3
)) {
549 RUN_URLLOADER_SUBTESTS_3
;
551 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, URLLoader0
) {
552 RUN_URLLOADER_SUBTESTS_0
;
554 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, URLLoader1
) {
555 RUN_URLLOADER_SUBTESTS_1
;
557 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, URLLoader2
) {
558 RUN_URLLOADER_SUBTESTS_2
;
560 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, URLLoader3
) {
561 RUN_URLLOADER_SUBTESTS_3
;
563 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
,
564 MAYBE_PNACL_NONSFI(URLLoader0
)) {
565 RUN_URLLOADER_SUBTESTS_0
;
567 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
,
568 MAYBE_PNACL_NONSFI(URLLoader1
)) {
569 RUN_URLLOADER_SUBTESTS_1
;
571 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
,
572 MAYBE_PNACL_NONSFI(URLLoader2
)) {
573 RUN_URLLOADER_SUBTESTS_2
;
575 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
,
576 MAYBE_PNACL_NONSFI(URLLoader3
)) {
577 RUN_URLLOADER_SUBTESTS_3
;
579 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
580 MAYBE_PNACL_TRANSITIONAL_NONSFI(URLLoader0
)) {
581 RUN_URLLOADER_SUBTESTS_0
;
583 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
584 MAYBE_PNACL_TRANSITIONAL_NONSFI(URLLoader1
)) {
585 RUN_URLLOADER_SUBTESTS_1
;
587 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
588 MAYBE_PNACL_TRANSITIONAL_NONSFI(URLLoader2
)) {
589 RUN_URLLOADER_SUBTESTS_2
;
591 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
592 MAYBE_PNACL_TRANSITIONAL_NONSFI(URLLoader3
)) {
593 RUN_URLLOADER_SUBTESTS_3
;
597 // URLRequestInfo tests.
598 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_CreateAndIsURLRequestInfo
)
599 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_CreateAndIsURLRequestInfo
)
601 // Timing out on Windows. http://crbug.com/129571
603 #define MAYBE_URLRequest_CreateAndIsURLRequestInfo \
604 DISABLED_URLRequest_CreateAndIsURLRequestInfo
606 #define MAYBE_URLRequest_CreateAndIsURLRequestInfo \
607 URLRequest_CreateAndIsURLRequestInfo
609 TEST_PPAPI_NACL(MAYBE_URLRequest_CreateAndIsURLRequestInfo
)
611 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_SetProperty
)
612 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_SetProperty
)
613 TEST_PPAPI_NACL(URLRequest_SetProperty
)
614 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_AppendDataToBody
)
615 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_AppendDataToBody
)
616 TEST_PPAPI_NACL(URLRequest_AppendDataToBody
)
617 TEST_PPAPI_IN_PROCESS_VIA_HTTP(DISABLED_URLRequest_AppendFileToBody
)
618 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(DISABLED_URLRequest_AppendFileToBody
)
619 TEST_PPAPI_NACL(DISABLED_URLRequest_AppendFileToBody
)
620 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_Stress
)
621 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_Stress
)
622 TEST_PPAPI_NACL(URLRequest_Stress
)
624 TEST_PPAPI_IN_PROCESS(PaintAggregator
)
625 TEST_PPAPI_OUT_OF_PROCESS(PaintAggregator
)
626 TEST_PPAPI_NACL(PaintAggregator
)
628 // TODO(danakj): http://crbug.com/115286
629 TEST_PPAPI_NACL(DISABLED_Scrollbar
)
633 TEST_PPAPI_NACL(VarResource
)
635 // PostMessage tests.
636 #define RUN_POSTMESSAGE_SUBTESTS \
638 LIST_TEST(PostMessage_SendInInit) \
639 LIST_TEST(PostMessage_SendingData) \
640 LIST_TEST(PostMessage_SendingString) \
641 LIST_TEST(PostMessage_SendingArrayBuffer) \
642 LIST_TEST(PostMessage_SendingArray) \
643 LIST_TEST(PostMessage_SendingDictionary) \
644 LIST_TEST(PostMessage_SendingResource) \
645 LIST_TEST(PostMessage_SendingComplexVar) \
646 LIST_TEST(PostMessage_MessageEvent) \
647 LIST_TEST(PostMessage_NoHandler) \
648 LIST_TEST(PostMessage_ExtraParam) \
649 LIST_TEST(PostMessage_NonMainThread) \
652 // Windows defines 'PostMessage', so we have to undef it.
658 // http://crbug.com/95557
659 #define MAYBE_PostMessage DISABLED_PostMessage
661 #define MAYBE_PostMessage PostMessage
663 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, MAYBE_PostMessage
) {
664 RUN_POSTMESSAGE_SUBTESTS
;
666 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, PostMessage
) {
667 RUN_POSTMESSAGE_SUBTESTS
;
669 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, MAYBE_GLIBC(PostMessage
)) {
670 RUN_POSTMESSAGE_SUBTESTS
;
672 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, PostMessage
) {
673 RUN_POSTMESSAGE_SUBTESTS
;
675 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
,
676 MAYBE_PNACL_NONSFI(PostMessage
)) {
677 RUN_POSTMESSAGE_SUBTESTS
;
679 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
680 MAYBE_PNACL_TRANSITIONAL_NONSFI(PostMessage
)) {
681 RUN_POSTMESSAGE_SUBTESTS
;
684 TEST_PPAPI_NACL(Memory
)
687 #define RUN_FILEIO_SUBTESTS \
689 LIST_TEST(FileIO_Open) \
690 LIST_TEST(FileIO_OpenDirectory) \
691 LIST_TEST(FileIO_AbortCalls) \
692 LIST_TEST(FileIO_ParallelReads) \
693 LIST_TEST(FileIO_ParallelWrites) \
694 LIST_TEST(FileIO_NotAllowMixedReadWrite) \
695 LIST_TEST(FileIO_ReadWriteSetLength) \
696 LIST_TEST(FileIO_ReadToArrayWriteSetLength) \
697 LIST_TEST(FileIO_TouchQuery) \
700 #define RUN_FILEIO_PRIVATE_SUBTESTS \
702 LIST_TEST(FileIO_RequestOSFileHandle) \
703 LIST_TEST(FileIO_RequestOSFileHandleWithOpenExclusive) \
704 LIST_TEST(FileIO_Mmap) \
707 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_AURA)
708 // TODO(erg): linux_aura bringup: http://crbug.com/318961
709 #define MAYBE_FileIO DISABLED_FileIO
710 #define MAYBE_FileIO_Private DISABLED_FileIO_Private
712 #define MAYBE_FileIO FileIO
713 #define MAYBE_FileIO_Private FileIO_Private
716 IN_PROC_BROWSER_TEST_F(PPAPITest
, MAYBE_FileIO
) {
719 IN_PROC_BROWSER_TEST_F(PPAPIPrivateTest
, MAYBE_FileIO_Private
) {
720 RUN_FILEIO_PRIVATE_SUBTESTS
;
723 // See: crbug.com/421284
724 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, DISABLED_FileIO
) {
727 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPIPrivateTest
, MAYBE_FileIO_Private
) {
728 RUN_FILEIO_PRIVATE_SUBTESTS
;
731 // http://crbug.com/313401
732 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, DISABLED_FileIO
) {
735 // http://crbug.com/313401
736 IN_PROC_BROWSER_TEST_F(PPAPIPrivateNaClNewlibTest
,
737 DISABLED_NaCl_Newlib_FileIO_Private
) {
738 RUN_FILEIO_PRIVATE_SUBTESTS
;
741 // Flaky on 32-bit linux bot; http://crbug.com/308905
742 // Flaky on Windows too; http://crbug.com/321300
743 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, DISABLED_FileIO
) {
746 IN_PROC_BROWSER_TEST_F(PPAPIPrivateNaClGLibcTest
, DISABLED_FileIO_Private
) {
747 RUN_FILEIO_PRIVATE_SUBTESTS
;
750 // http://crbug.com/313205
751 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, DISABLED_FileIO
) {
754 IN_PROC_BROWSER_TEST_F(PPAPIPrivateNaClPNaClTest
,
755 DISABLED_PNaCl_FileIO_Private
) {
756 RUN_FILEIO_PRIVATE_SUBTESTS
;
759 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
, MAYBE_PNACL_NONSFI(FileIO
)) {
762 IN_PROC_BROWSER_TEST_F(PPAPIPrivateNaClPNaClNonSfiTest
,
763 MAYBE_PNACL_NONSFI(FILEIO_Private
)) {
764 RUN_FILEIO_PRIVATE_SUBTESTS
;
767 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
768 MAYBE_PNACL_TRANSITIONAL_NONSFI(FileIO
)) {
771 IN_PROC_BROWSER_TEST_F(PPAPIPrivateNaClPNaClTransitionalNonSfiTest
,
772 MAYBE_PNACL_TRANSITIONAL_NONSFI(FILEIO_Private
)) {
773 RUN_FILEIO_PRIVATE_SUBTESTS
;
776 // PPB_FileMapping is only implemented on POSIX currently.
777 // http://crbug.com/83774
779 #define MAYBE_FileMapping DISABLED_FileMapping
781 #define MAYBE_FileMapping FileMapping
783 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(MAYBE_FileMapping
)
784 TEST_PPAPI_NACL(MAYBE_FileMapping
)
787 #define RUN_FILEREF_SUBTESTS_1 \
789 LIST_TEST(FileRef_Create) \
790 LIST_TEST(FileRef_GetFileSystemType) \
791 LIST_TEST(FileRef_GetName) \
792 LIST_TEST(FileRef_GetPath) \
793 LIST_TEST(FileRef_GetParent) \
794 LIST_TEST(FileRef_MakeDirectory) \
797 #define RUN_FILEREF_SUBTESTS_2 \
799 LIST_TEST(FileRef_QueryAndTouchFile) \
800 LIST_TEST(FileRef_DeleteFileAndDirectory) \
801 LIST_TEST(FileRef_RenameFileAndDirectory) \
802 LIST_TEST(FileRef_Query) \
803 LIST_TEST(FileRef_FileNameEscaping) \
806 // Note, the FileRef tests are split into two, because all of them together
807 // sometimes take too long on windows: crbug.com/336999
808 IN_PROC_BROWSER_TEST_F(PPAPITest
, FileRef1
) {
809 RUN_FILEREF_SUBTESTS_1
;
811 IN_PROC_BROWSER_TEST_F(PPAPITest
, FileRef2
) {
812 RUN_FILEREF_SUBTESTS_2
;
814 // This test only works as an in-process test. See crbug.com/241646.
815 IN_PROC_BROWSER_TEST_F(PPAPITest
, FileRef_ReadDirectoryEntries
) {
816 RunTestViaHTTP(LIST_TEST(FileRef_ReadDirectoryEntries
));
818 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, FileRef1
) {
819 RUN_FILEREF_SUBTESTS_1
;
821 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, FileRef2
) {
822 RUN_FILEREF_SUBTESTS_2
;
824 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, FileRef1
) {
825 RUN_FILEREF_SUBTESTS_1
;
827 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, FileRef2
) {
828 RUN_FILEREF_SUBTESTS_2
;
830 // Flaky on 32-bit linux bot; http://crbug.com/308908
831 // Glibc not available on ARM
832 #if (defined(OS_LINUX) && defined(ARCH_CPU_X86)) \
833 || defined(ARCH_CPU_ARM_FAMILY)
834 #define MAYBE_NaCl_Glibc_FileRef1 DISABLED_FileRef1
835 #define MAYBE_NaCl_Glibc_FileRef2 DISABLED_FileRef2
837 #define MAYBE_NaCl_Glibc_FileRef1 FileRef1
838 #define MAYBE_NaCl_Glibc_FileRef2 FileRef2
840 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, MAYBE_NaCl_Glibc_FileRef1
) {
841 RUN_FILEREF_SUBTESTS_1
;
843 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, MAYBE_NaCl_Glibc_FileRef2
) {
844 RUN_FILEREF_SUBTESTS_2
;
846 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, FileRef1
) {
847 RUN_FILEREF_SUBTESTS_1
;
849 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, FileRef2
) {
850 RUN_FILEREF_SUBTESTS_2
;
852 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
,
853 MAYBE_PNACL_NONSFI(FileRef1
)) {
854 RUN_FILEREF_SUBTESTS_1
;
856 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
,
857 MAYBE_PNACL_NONSFI(FileRef2
)) {
858 RUN_FILEREF_SUBTESTS_2
;
860 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
861 MAYBE_PNACL_TRANSITIONAL_NONSFI(FileRef1
)) {
862 RUN_FILEREF_SUBTESTS_1
;
864 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
865 MAYBE_PNACL_TRANSITIONAL_NONSFI(FileRef2
)) {
866 RUN_FILEREF_SUBTESTS_2
;
869 TEST_PPAPI_IN_PROCESS_VIA_HTTP(FileSystem
)
870 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileSystem
)
872 // PPAPINaClTest.FileSystem times out consistently on Windows and Mac.
873 // http://crbug.com/130372
874 #if defined(OS_MACOSX) || defined(OS_WIN)
875 #define MAYBE_FileSystem DISABLED_FileSystem
877 #define MAYBE_FileSystem FileSystem
880 TEST_PPAPI_NACL(MAYBE_FileSystem
)
882 #if defined(OS_MACOSX)
883 // http://crbug.com/103912
884 #define MAYBE_Fullscreen DISABLED_Fullscreen
885 #elif defined(OS_LINUX)
886 // http://crbug.com/146008
887 #define MAYBE_Fullscreen DISABLED_Fullscreen
888 #elif defined(OS_WIN)
889 // http://crbug.com/342269
890 #define MAYBE_Fullscreen DISABLED_Fullscreen
892 #define MAYBE_Fullscreen Fullscreen
895 TEST_PPAPI_IN_PROCESS_VIA_HTTP(MAYBE_Fullscreen
)
896 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(MAYBE_Fullscreen
)
897 TEST_PPAPI_NACL(MAYBE_Fullscreen
)
899 TEST_PPAPI_OUT_OF_PROCESS(X509CertificatePrivate
)
901 TEST_PPAPI_IN_PROCESS(UMA
)
902 TEST_PPAPI_OUT_OF_PROCESS(UMA
)
906 #define RUN_NETADDRESS_SUBTESTS \
908 LIST_TEST(NetAddress_IPv4Address) \
909 LIST_TEST(NetAddress_IPv6Address) \
910 LIST_TEST(NetAddress_DescribeAsString) \
913 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, NetAddress
) {
914 RUN_NETADDRESS_SUBTESTS
;
916 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, NetAddress
) {
917 RUN_NETADDRESS_SUBTESTS
;
919 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, MAYBE_GLIBC(NetAddress
)) {
920 RUN_NETADDRESS_SUBTESTS
;
922 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, NetAddress
) {
923 RUN_NETADDRESS_SUBTESTS
;
925 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
,
926 MAYBE_PNACL_NONSFI(NetAddress
)) {
927 RUN_NETADDRESS_SUBTESTS
;
929 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
930 MAYBE_PNACL_TRANSITIONAL_NONSFI(NetAddress
)) {
931 RUN_NETADDRESS_SUBTESTS
;
934 // NetAddressPrivate tests.
935 #define RUN_NETADDRESS_PRIVATE_SUBTESTS \
937 LIST_TEST(NetAddressPrivate_AreEqual) \
938 LIST_TEST(NetAddressPrivate_AreHostsEqual) \
939 LIST_TEST(NetAddressPrivate_Describe) \
940 LIST_TEST(NetAddressPrivate_ReplacePort) \
941 LIST_TEST(NetAddressPrivate_GetAnyAddress) \
942 LIST_TEST(NetAddressPrivate_DescribeIPv6) \
943 LIST_TEST(NetAddressPrivate_GetFamily) \
944 LIST_TEST(NetAddressPrivate_GetPort) \
945 LIST_TEST(NetAddressPrivate_GetAddress) \
946 LIST_TEST(NetAddressPrivate_GetScopeID) \
949 IN_PROC_BROWSER_TEST_F(PPAPITest
, NetAddressPrivate
) {
950 RUN_NETADDRESS_PRIVATE_SUBTESTS
;
952 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, NetAddressPrivate
) {
953 RUN_NETADDRESS_PRIVATE_SUBTESTS
;
956 #define RUN_NETADDRESS_PRIVATE_UNTRUSTED_SUBTESTS \
958 LIST_TEST(NetAddressPrivateUntrusted_AreEqual) \
959 LIST_TEST(NetAddressPrivateUntrusted_AreHostsEqual) \
960 LIST_TEST(NetAddressPrivateUntrusted_Describe) \
961 LIST_TEST(NetAddressPrivateUntrusted_ReplacePort) \
962 LIST_TEST(NetAddressPrivateUntrusted_GetAnyAddress) \
963 LIST_TEST(NetAddressPrivateUntrusted_GetFamily) \
964 LIST_TEST(NetAddressPrivateUntrusted_GetPort) \
965 LIST_TEST(NetAddressPrivateUntrusted_GetAddress) \
968 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, NetAddressPrivate
) {
969 RUN_NETADDRESS_PRIVATE_UNTRUSTED_SUBTESTS
;
971 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, MAYBE_GLIBC(NetAddressPrivate
)) {
972 RUN_NETADDRESS_PRIVATE_UNTRUSTED_SUBTESTS
;
974 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, NetAddressPrivate
) {
975 RUN_NETADDRESS_PRIVATE_UNTRUSTED_SUBTESTS
;
977 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
,
978 MAYBE_PNACL_NONSFI(NetAddressPrivate
)) {
979 RUN_NETADDRESS_PRIVATE_UNTRUSTED_SUBTESTS
;
981 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
982 MAYBE_PNACL_TRANSITIONAL_NONSFI(NetAddressPrivate
)) {
983 RUN_NETADDRESS_PRIVATE_UNTRUSTED_SUBTESTS
;
986 // NetworkMonitor tests.
987 #define RUN_NETWORK_MONITOR_SUBTESTS \
989 LIST_TEST(NetworkMonitor_Basic) \
990 LIST_TEST(NetworkMonitor_2Monitors) \
991 LIST_TEST(NetworkMonitor_DeleteInCallback) \
994 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, NetworkMonitor
) {
995 RUN_NETWORK_MONITOR_SUBTESTS
;
997 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, NetworkMonitor
) {
998 RUN_NETWORK_MONITOR_SUBTESTS
;
1000 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, MAYBE_GLIBC(NetworkMonitor
)) {
1001 RUN_NETWORK_MONITOR_SUBTESTS
;
1003 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, NetworkMonitor
) {
1004 RUN_NETWORK_MONITOR_SUBTESTS
;
1006 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
,
1007 MAYBE_PNACL_NONSFI(NetworkMonitor
)) {
1008 RUN_NETWORK_MONITOR_SUBTESTS
;
1010 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
1011 MAYBE_PNACL_TRANSITIONAL_NONSFI(NetworkMonitor
)) {
1012 RUN_NETWORK_MONITOR_SUBTESTS
;
1016 #define RUN_FLASH_SUBTESTS \
1018 LIST_TEST(Flash_SetInstanceAlwaysOnTop) \
1019 LIST_TEST(Flash_GetCommandLineArgs) \
1022 IN_PROC_BROWSER_TEST_F(PPAPITest
, Flash
) {
1025 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, Flash
) {
1029 // In-process WebSocket tests. Note, the WebSocket tests are split into two,
1030 // because all of them together sometimes take too long on windows:
1032 #define RUN_WEBSOCKET_SUBTESTS_1 \
1033 RunTestWithWebSocketServer( \
1034 LIST_TEST(WebSocket_IsWebSocket) \
1035 LIST_TEST(WebSocket_UninitializedPropertiesAccess) \
1036 LIST_TEST(WebSocket_InvalidConnect) \
1037 LIST_TEST(WebSocket_Protocols) \
1038 LIST_TEST(WebSocket_GetURL) \
1039 LIST_TEST(WebSocket_ValidConnect) \
1040 LIST_TEST(WebSocket_InvalidClose) \
1041 LIST_TEST(WebSocket_ValidClose) \
1042 LIST_TEST(WebSocket_GetProtocol) \
1043 LIST_TEST(WebSocket_TextSendReceive) \
1044 LIST_TEST(WebSocket_BinarySendReceive) \
1045 LIST_TEST(WebSocket_StressedSendReceive) \
1046 LIST_TEST(WebSocket_BufferedAmount) \
1049 #define RUN_WEBSOCKET_SUBTESTS_2 \
1050 RunTestWithWebSocketServer( \
1051 LIST_TEST(WebSocket_AbortCallsWithCallback) \
1052 LIST_TEST(WebSocket_AbortSendMessageCall) \
1053 LIST_TEST(WebSocket_AbortCloseCall) \
1054 LIST_TEST(WebSocket_AbortReceiveMessageCall) \
1055 LIST_TEST(WebSocket_ClosedFromServerWhileSending) \
1056 LIST_TEST(WebSocket_CcInterfaces) \
1057 LIST_TEST(WebSocket_UtilityInvalidConnect) \
1058 LIST_TEST(WebSocket_UtilityProtocols) \
1059 LIST_TEST(WebSocket_UtilityGetURL) \
1060 LIST_TEST(WebSocket_UtilityValidConnect) \
1061 LIST_TEST(WebSocket_UtilityInvalidClose) \
1062 LIST_TEST(WebSocket_UtilityValidClose) \
1063 LIST_TEST(WebSocket_UtilityGetProtocol) \
1064 LIST_TEST(WebSocket_UtilityTextSendReceive) \
1065 LIST_TEST(WebSocket_UtilityBinarySendReceive) \
1066 LIST_TEST(WebSocket_UtilityBufferedAmount) \
1069 IN_PROC_BROWSER_TEST_F(PPAPITest
, WebSocket1
) {
1070 RUN_WEBSOCKET_SUBTESTS_1
;
1072 IN_PROC_BROWSER_TEST_F(PPAPITest
, WebSocket2
) {
1073 RUN_WEBSOCKET_SUBTESTS_2
;
1075 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, WebSocket1
) {
1076 RUN_WEBSOCKET_SUBTESTS_1
;
1078 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, WebSocket2
) {
1079 RUN_WEBSOCKET_SUBTESTS_2
;
1081 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, MAYBE_GLIBC(WebSocket1
)) {
1082 RUN_WEBSOCKET_SUBTESTS_1
;
1084 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, MAYBE_GLIBC(WebSocket2
)) {
1085 RUN_WEBSOCKET_SUBTESTS_2
;
1087 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, WebSocket1
) {
1088 RUN_WEBSOCKET_SUBTESTS_1
;
1090 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, WebSocket2
) {
1091 RUN_WEBSOCKET_SUBTESTS_2
;
1093 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, WebSocket1
) {
1094 RUN_WEBSOCKET_SUBTESTS_1
;
1096 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, WebSocket2
) {
1097 RUN_WEBSOCKET_SUBTESTS_2
;
1099 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
,
1100 MAYBE_PNACL_NONSFI(WebSocket1
)) {
1101 RUN_WEBSOCKET_SUBTESTS_1
;
1103 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
,
1104 MAYBE_PNACL_NONSFI(WebSocket2
)) {
1105 RUN_WEBSOCKET_SUBTESTS_2
;
1107 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
1108 MAYBE_PNACL_TRANSITIONAL_NONSFI(WebSocket1
)) {
1109 RUN_WEBSOCKET_SUBTESTS_1
;
1111 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
1112 MAYBE_PNACL_TRANSITIONAL_NONSFI(WebSocket2
)) {
1113 RUN_WEBSOCKET_SUBTESTS_2
;
1116 // AudioConfig tests
1117 #define RUN_AUDIO_CONFIG_SUBTESTS \
1119 LIST_TEST(AudioConfig_RecommendSampleRate) \
1120 LIST_TEST(AudioConfig_ValidConfigs) \
1121 LIST_TEST(AudioConfig_InvalidConfigs) \
1124 IN_PROC_BROWSER_TEST_F(PPAPITest
, AudioConfig
) {
1125 RUN_AUDIO_CONFIG_SUBTESTS
;
1127 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, AudioConfig
) {
1128 RUN_AUDIO_CONFIG_SUBTESTS
;
1130 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, AudioConfig
) {
1131 RUN_AUDIO_CONFIG_SUBTESTS
;
1133 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, MAYBE_GLIBC(AudioConfig
)) {
1134 RUN_AUDIO_CONFIG_SUBTESTS
;
1136 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, AudioConfig
) {
1137 RUN_AUDIO_CONFIG_SUBTESTS
;
1139 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
,
1140 MAYBE_PNACL_NONSFI(AudioConfig
)) {
1141 RUN_AUDIO_CONFIG_SUBTESTS
;
1143 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
1144 MAYBE_PNACL_TRANSITIONAL_NONSFI(AudioConfig
)) {
1145 RUN_AUDIO_CONFIG_SUBTESTS
;
1149 #define RUN_AUDIO_SUBTESTS \
1151 LIST_TEST(Audio_Creation) \
1152 LIST_TEST(Audio_DestroyNoStop) \
1153 LIST_TEST(Audio_Failures) \
1154 LIST_TEST(Audio_AudioCallback1) \
1155 LIST_TEST(Audio_AudioCallback2) \
1156 LIST_TEST(Audio_AudioCallback3) \
1157 LIST_TEST(Audio_AudioCallback4) \
1160 #if defined(OS_LINUX)
1161 // http://crbug.com/396464
1162 #define MAYBE_Audio DISABLED_Audio
1164 #define MAYBE_Audio Audio
1166 // PPB_Audio is not supported in-process.
1167 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, MAYBE_Audio
) {
1170 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, Audio
) {
1173 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, MAYBE_GLIBC(Audio
)) {
1176 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, Audio
) {
1179 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
,
1180 MAYBE_PNACL_NONSFI(Audio
)) {
1183 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
1184 MAYBE_PNACL_TRANSITIONAL_NONSFI(Audio
)) {
1188 #define RUN_AUDIO_THREAD_CREATOR_SUBTESTS \
1190 LIST_TEST(Audio_AudioThreadCreatorIsRequired) \
1191 LIST_TEST(Audio_AudioThreadCreatorIsCalled) \
1194 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, AudioThreadCreator
) {
1195 RUN_AUDIO_THREAD_CREATOR_SUBTESTS
;
1197 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, MAYBE_GLIBC(AudioThreadCreator
)) {
1198 RUN_AUDIO_THREAD_CREATOR_SUBTESTS
;
1200 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, AudioThreadCreator
) {
1201 RUN_AUDIO_THREAD_CREATOR_SUBTESTS
;
1203 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
,
1204 MAYBE_PNACL_NONSFI(AudioThreadCreator
)) {
1205 RUN_AUDIO_THREAD_CREATOR_SUBTESTS
;
1207 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
1208 MAYBE_PNACL_TRANSITIONAL_NONSFI(AudioThreadCreator
)) {
1209 RUN_AUDIO_THREAD_CREATOR_SUBTESTS
;
1212 TEST_PPAPI_IN_PROCESS(View_CreatedVisible
);
1213 TEST_PPAPI_OUT_OF_PROCESS(View_CreatedVisible
);
1214 TEST_PPAPI_NACL(View_CreatedVisible
);
1215 // This test ensures that plugins created in a background tab have their
1216 // initial visibility set to false. We don't bother testing in-process for this
1217 // custom test since the out of process code also exercises in-process.
1219 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, View_CreateInvisible
) {
1220 // Make a second tab in the foreground.
1221 GURL url
= GetTestFileUrl("View_CreatedInvisible");
1222 chrome::NavigateParams
params(browser(), url
, ui::PAGE_TRANSITION_LINK
);
1223 params
.disposition
= NEW_BACKGROUND_TAB
;
1224 ui_test_utils::NavigateToURL(¶ms
);
1227 // This test messes with tab visibility so is custom.
1228 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, DISABLED_View_PageHideShow
) {
1229 // The plugin will be loaded in the foreground tab and will send us a message.
1230 PPAPITestMessageHandler handler
;
1231 content::JavascriptTestObserver
observer(
1232 browser()->tab_strip_model()->GetActiveWebContents(),
1235 GURL url
= GetTestFileUrl("View_PageHideShow");
1236 ui_test_utils::NavigateToURL(browser(), url
);
1238 ASSERT_TRUE(observer
.Run()) << handler
.error_message();
1239 EXPECT_STREQ("TestPageHideShow:Created", handler
.message().c_str());
1242 // Make a new tab to cause the original one to hide, this should trigger the
1243 // next phase of the test.
1244 chrome::NavigateParams
params(
1245 browser(), GURL(url::kAboutBlankURL
), ui::PAGE_TRANSITION_LINK
);
1246 params
.disposition
= NEW_FOREGROUND_TAB
;
1247 ui_test_utils::NavigateToURL(¶ms
);
1249 // Wait until the test acks that it got hidden.
1250 ASSERT_TRUE(observer
.Run()) << handler
.error_message();
1251 EXPECT_STREQ("TestPageHideShow:Hidden", handler
.message().c_str());
1254 // Switch back to the test tab.
1255 browser()->tab_strip_model()->ActivateTabAt(0, true);
1257 ASSERT_TRUE(observer
.Run()) << handler
.error_message();
1258 EXPECT_STREQ("PASS", handler
.message().c_str());
1261 // Tests that if a plugin accepts touch events, the browser knows to send touch
1262 // events to the renderer.
1263 IN_PROC_BROWSER_TEST_F(PPAPITest
, InputEvent_AcceptTouchEvent
) {
1264 std::string positive_tests
[] = { "InputEvent_AcceptTouchEvent_1",
1265 "InputEvent_AcceptTouchEvent_2",
1266 "InputEvent_AcceptTouchEvent_3",
1267 "InputEvent_AcceptTouchEvent_4"
1270 for (size_t i
= 0; i
< arraysize(positive_tests
); ++i
) {
1271 RenderViewHost
* host
= browser()->tab_strip_model()->
1272 GetActiveWebContents()->GetRenderViewHost();
1273 RunTest(positive_tests
[i
]);
1274 EXPECT_TRUE(content::RenderViewHostTester::HasTouchEventHandler(host
));
1279 #define RUN_VIEW_SUBTESTS \
1281 LIST_TEST(View_SizeChange) \
1282 LIST_TEST(View_ClipChange) \
1283 LIST_TEST(View_ScrollOffsetChange) \
1286 IN_PROC_BROWSER_TEST_F(PPAPITest
, View
) {
1289 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, View
) {
1292 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest
, View
) {
1295 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest
, MAYBE_GLIBC(View
)) {
1298 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest
, View
) {
1301 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest
, MAYBE_PNACL_NONSFI(View
)) {
1304 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTransitionalNonSfiTest
,
1305 MAYBE_PNACL_TRANSITIONAL_NONSFI(View
)) {
1309 // FlashMessageLoop tests.
1310 #define RUN_FLASH_MESSAGE_LOOP_SUBTESTS \
1312 LIST_TEST(FlashMessageLoop_Basics) \
1313 LIST_TEST(FlashMessageLoop_RunWithoutQuit) \
1316 IN_PROC_BROWSER_TEST_F(PPAPITest
, FlashMessageLoop
) {
1317 RUN_FLASH_MESSAGE_LOOP_SUBTESTS
;
1319 #if defined(OS_LINUX) // Disabled due to flakiness http://crbug.com/316925
1320 #define MAYBE_FlashMessageLoop DISABLED_FlashMessageLoop
1322 #define MAYBE_FlashMessageLoop FlashMessageLoop
1324 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, MAYBE_FlashMessageLoop
) {
1325 RUN_FLASH_MESSAGE_LOOP_SUBTESTS
;
1328 // The compositor test timeouts sometimes, so we have to split it to two
1330 #define RUN_COMPOSITOR_SUBTESTS_0 \
1332 LIST_TEST(Compositor_BindUnbind) \
1333 LIST_TEST(Compositor_Release) \
1334 LIST_TEST(Compositor_ReleaseUnbound) \
1335 LIST_TEST(Compositor_ReleaseWithoutCommit) \
1336 LIST_TEST(Compositor_ReleaseWithoutCommitUnbound) \
1339 #define RUN_COMPOSITOR_SUBTESTS_1 \
1341 LIST_TEST(Compositor_CommitTwoTimesWithoutChange) \
1342 LIST_TEST(Compositor_CommitTwoTimesWithoutChangeUnbound) \
1343 LIST_TEST(Compositor_General) \
1344 LIST_TEST(Compositor_GeneralUnbound) \
1348 // This test fails with the test compositor which is what's used by default for
1349 // browser tests on Windows. Renable when the software compositor is available.
1350 #define MAYBE_Compositor0 DISABLED_Compositor0
1351 #define MAYBE_Compositor1 DISABLED_Compositor1
1352 #elif defined(OS_MACOSX)
1353 // This test fails when using the legacy software mode. Reenable when the
1354 // software compositor is enabled crbug.com/286038
1355 #define MAYBE_Compositor0 DISABLED_Compositor0
1356 #define MAYBE_Compositor1 DISABLED_Compositor1
1358 // flaky on Linux: http://crbug.com/396482
1359 #define MAYBE_Compositor0 DISABLED_Compositor0
1360 #define MAYBE_Compositor1 DISABLED_Compositor1
1363 TEST_PPAPI_NACL_SUBTESTS(MAYBE_Compositor0
, RUN_COMPOSITOR_SUBTESTS_0
)
1364 TEST_PPAPI_NACL_SUBTESTS(MAYBE_Compositor1
, RUN_COMPOSITOR_SUBTESTS_1
)
1366 TEST_PPAPI_NACL(MediaStreamAudioTrack
)
1368 TEST_PPAPI_NACL(MediaStreamVideoTrack
)
1370 TEST_PPAPI_NACL(MouseCursor
)
1372 TEST_PPAPI_NACL(NetworkProxy
)
1374 TEST_PPAPI_NACL(TrueTypeFont
)
1376 TEST_PPAPI_NACL(VideoDecoder
)
1378 // VideoDestination doesn't work in content_browsertests.
1379 TEST_PPAPI_OUT_OF_PROCESS(VideoDestination
)
1380 TEST_PPAPI_NACL(VideoDestination
)
1382 // VideoSource doesn't work in content_browsertests.
1383 TEST_PPAPI_OUT_OF_PROCESS(VideoSource
)
1384 TEST_PPAPI_NACL(VideoSource
)
1386 // Printing doesn't work in content_browsertests.
1387 TEST_PPAPI_OUT_OF_PROCESS(Printing
)
1389 TEST_PPAPI_NACL(MessageHandler
)
1391 TEST_PPAPI_NACL(MessageLoop_Basics
)
1392 TEST_PPAPI_NACL(MessageLoop_Post
)
1394 // Going forward, Flash APIs will only work out-of-process.
1395 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetLocalTimeZoneOffset
)
1396 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetProxyForURL
)
1397 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetSetting
)
1398 TEST_PPAPI_OUT_OF_PROCESS(Flash_SetCrashData
)
1399 // http://crbug.com/176822
1400 #if !defined(OS_WIN)
1401 TEST_PPAPI_OUT_OF_PROCESS(FlashClipboard
)
1403 TEST_PPAPI_OUT_OF_PROCESS(FlashFile
)
1404 // Mac/Aura reach NOTIMPLEMENTED/time out.
1405 // mac: http://crbug.com/96767
1406 // aura: http://crbug.com/104384
1407 // cros: http://crbug.com/396502
1408 #if defined(OS_MACOSX) || defined(OS_CHROMEOS)
1409 #define MAYBE_FlashFullscreen DISABLED_FlashFullscreen
1411 #define MAYBE_FlashFullscreen FlashFullscreen
1413 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_FlashFullscreen
)
1415 TEST_PPAPI_OUT_OF_PROCESS(PDF
)
1417 // TODO(dalecurtis): Renable once the platform verification infobar has been
1418 // implemented; see http://crbug.com/270908
1419 // #if defined(OS_CHROMEOS)
1420 // TEST_PPAPI_OUT_OF_PROCESS(PlatformVerificationPrivate)
1423 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest
, FlashDRM
) {
1425 #if (defined(OS_WIN) && defined(ENABLE_RLZ)) || defined(OS_CHROMEOS)
1426 // Only implemented on Windows and ChromeOS currently.
1427 LIST_TEST(FlashDRM_GetDeviceID
)
1429 LIST_TEST(FlashDRM_GetHmonitor
)
1430 LIST_TEST(FlashDRM_GetVoucherFile
));
1433 TEST_PPAPI_IN_PROCESS(TalkPrivate
)
1434 TEST_PPAPI_OUT_OF_PROCESS(TalkPrivate
)
1436 #if defined(OS_CHROMEOS)
1437 TEST_PPAPI_OUT_OF_PROCESS(OutputProtectionPrivate
)
1440 class PackagedAppTest
: public ExtensionBrowserTest
{
1442 explicit PackagedAppTest(const std::string
& toolchain
)
1443 : toolchain_(toolchain
) { }
1445 void LaunchTestingApp() {
1446 base::FilePath data_dir
;
1447 ASSERT_TRUE(PathService::Get(chrome::DIR_GEN_TEST_DATA
, &data_dir
));
1448 base::FilePath app_dir
= data_dir
.AppendASCII("ppapi")
1449 .AppendASCII("tests")
1450 .AppendASCII("extensions")
1451 .AppendASCII("packaged_app")
1452 .AppendASCII(toolchain_
);
1454 const extensions::Extension
* extension
= LoadExtension(app_dir
);
1455 ASSERT_TRUE(extension
);
1457 AppLaunchParams
params(browser()->profile(),
1459 extensions::LAUNCH_CONTAINER_NONE
,
1461 params
.command_line
= *CommandLine::ForCurrentProcess();
1462 OpenApplication(params
);
1466 ExtensionTestMessageListener
listener("hello", true);
1468 EXPECT_TRUE(listener
.WaitUntilSatisfied());
1471 std::string toolchain_
;
1474 class NewlibPackagedAppTest
: public PackagedAppTest
{
1476 NewlibPackagedAppTest() : PackagedAppTest("newlib") { }
1479 class NonSfiPackagedAppTest
: public PackagedAppTest
{
1481 NonSfiPackagedAppTest() : PackagedAppTest("nonsfi") { }
1483 void SetUpCommandLine(base::CommandLine
* command_line
) override
{
1484 #if !defined(DISABLE_NACL)
1485 PackagedAppTest::SetUpCommandLine(command_line
);
1486 command_line
->AppendSwitch(switches::kEnableNaClNonSfiMode
);
1491 // TODO(hidehiko): Switch for NonSfi tests to use nacl_helper_nonsfi, when
1492 // it is launched officially. See NaClBrowserTestPnaclTransitionalNonSfi
1493 // for more details.
1494 class TransitionalNonSfiPackagedAppTest
: public NonSfiPackagedAppTest
{
1496 void SetUpCommandLine(base::CommandLine
* command_line
) override
{
1497 #if !defined(DISABLE_NACL)
1498 NonSfiPackagedAppTest::SetUpCommandLine(command_line
);
1499 command_line
->AppendSwitch(switches::kUseNaClHelperNonSfi
);
1504 // Load a packaged app, and wait for it to successfully post a "hello" message
1506 IN_PROC_BROWSER_TEST_F(NewlibPackagedAppTest
, SuccessfulLoad
) {
1510 IN_PROC_BROWSER_TEST_F(NonSfiPackagedAppTest
,
1511 MAYBE_PNACL_NONSFI(SuccessfulLoad
)) {
1515 IN_PROC_BROWSER_TEST_F(TransitionalNonSfiPackagedAppTest
,
1516 MAYBE_PNACL_TRANSITIONAL_NONSFI(SuccessfulLoad
)) {