11extern crate content_security_policy;
2- use content_security_policy:: * ;
32use content_security_policy:: sandboxing_directive:: SandboxingFlagSet ;
3+ use content_security_policy:: * ;
44
55#[ test]
66fn sandbox_document_flags ( ) {
77 let policy = CspList :: parse ( "sandbox" , PolicySource :: Header , PolicyDisposition :: Enforce ) ;
8- assert_eq ! ( Some ( SandboxingFlagSet :: all( ) ) , policy. get_sandboxing_flag_set_for_document( ) ) ;
9- let policy = CspList :: parse ( "sandbox allow-popups" , PolicySource :: Header , PolicyDisposition :: Enforce ) ;
10- assert_eq ! ( Some ( SandboxingFlagSet :: all( ) ^ SandboxingFlagSet :: SANDBOXED_AUXILIARY_NAVIGATION_BROWSING_CONTEXT_FLAG ^ SandboxingFlagSet :: SANBOXED_CUSTOM_PROTOCOLS_NAVIGATION_BROWSING_CONTEXT_FLAG ) , policy. get_sandboxing_flag_set_for_document( ) ) ;
11- let policy = CspList :: parse ( "sandbox allow-forms" , PolicySource :: Header , PolicyDisposition :: Enforce ) ;
12- assert_eq ! ( Some ( SandboxingFlagSet :: all( ) ^ SandboxingFlagSet :: SANDBOXED_FORMS_BROWSING_CONTEXT_FLAG ) , policy. get_sandboxing_flag_set_for_document( ) ) ;
13- let policy = CspList :: parse ( "sandbox allow-downloads" , PolicySource :: Header , PolicyDisposition :: Enforce ) ;
14- assert_eq ! ( Some ( SandboxingFlagSet :: all( ) ^ SandboxingFlagSet :: SANDBOXED_DOWNLOADS_BROWSING_CONTEXT_FLAG ) , policy. get_sandboxing_flag_set_for_document( ) ) ;
15- let policy = CspList :: parse ( "sandbox; connect-src https://*.notriddle.com:443" , PolicySource :: Header , PolicyDisposition :: Enforce ) ;
16- assert_eq ! ( Some ( SandboxingFlagSet :: all( ) ) , policy. get_sandboxing_flag_set_for_document( ) ) ;
17- let policy = CspList :: parse ( "sandbox allow-popups; connect-src https://*.notriddle.com:443" , PolicySource :: Header , PolicyDisposition :: Enforce ) ;
18- assert_eq ! ( Some ( SandboxingFlagSet :: all( ) ^ SandboxingFlagSet :: SANDBOXED_AUXILIARY_NAVIGATION_BROWSING_CONTEXT_FLAG ^ SandboxingFlagSet :: SANBOXED_CUSTOM_PROTOCOLS_NAVIGATION_BROWSING_CONTEXT_FLAG ) , policy. get_sandboxing_flag_set_for_document( ) ) ;
19- let policy = CspList :: parse ( "connect-src https://*.notriddle.com:443" , PolicySource :: Header , PolicyDisposition :: Enforce ) ;
8+ assert_eq ! (
9+ Some ( SandboxingFlagSet :: all( ) ) ,
10+ policy. get_sandboxing_flag_set_for_document( )
11+ ) ;
12+ let policy = CspList :: parse (
13+ "sandbox allow-popups" ,
14+ PolicySource :: Header ,
15+ PolicyDisposition :: Enforce ,
16+ ) ;
17+ assert_eq ! (
18+ Some (
19+ SandboxingFlagSet :: all( )
20+ ^ SandboxingFlagSet :: SANDBOXED_AUXILIARY_NAVIGATION_BROWSING_CONTEXT_FLAG
21+ ^ SandboxingFlagSet :: SANBOXED_CUSTOM_PROTOCOLS_NAVIGATION_BROWSING_CONTEXT_FLAG
22+ ) ,
23+ policy. get_sandboxing_flag_set_for_document( )
24+ ) ;
25+ let policy = CspList :: parse (
26+ "sandbox allow-forms" ,
27+ PolicySource :: Header ,
28+ PolicyDisposition :: Enforce ,
29+ ) ;
30+ assert_eq ! (
31+ Some ( SandboxingFlagSet :: all( ) ^ SandboxingFlagSet :: SANDBOXED_FORMS_BROWSING_CONTEXT_FLAG ) ,
32+ policy. get_sandboxing_flag_set_for_document( )
33+ ) ;
34+ let policy = CspList :: parse (
35+ "sandbox allow-downloads" ,
36+ PolicySource :: Header ,
37+ PolicyDisposition :: Enforce ,
38+ ) ;
39+ assert_eq ! (
40+ Some (
41+ SandboxingFlagSet :: all( ) ^ SandboxingFlagSet :: SANDBOXED_DOWNLOADS_BROWSING_CONTEXT_FLAG
42+ ) ,
43+ policy. get_sandboxing_flag_set_for_document( )
44+ ) ;
45+ let policy = CspList :: parse (
46+ "sandbox; connect-src https://*.notriddle.com:443" ,
47+ PolicySource :: Header ,
48+ PolicyDisposition :: Enforce ,
49+ ) ;
50+ assert_eq ! (
51+ Some ( SandboxingFlagSet :: all( ) ) ,
52+ policy. get_sandboxing_flag_set_for_document( )
53+ ) ;
54+ let policy = CspList :: parse (
55+ "sandbox allow-popups; connect-src https://*.notriddle.com:443" ,
56+ PolicySource :: Header ,
57+ PolicyDisposition :: Enforce ,
58+ ) ;
59+ assert_eq ! (
60+ Some (
61+ SandboxingFlagSet :: all( )
62+ ^ SandboxingFlagSet :: SANDBOXED_AUXILIARY_NAVIGATION_BROWSING_CONTEXT_FLAG
63+ ^ SandboxingFlagSet :: SANBOXED_CUSTOM_PROTOCOLS_NAVIGATION_BROWSING_CONTEXT_FLAG
64+ ) ,
65+ policy. get_sandboxing_flag_set_for_document( )
66+ ) ;
67+ let policy = CspList :: parse (
68+ "connect-src https://*.notriddle.com:443" ,
69+ PolicySource :: Header ,
70+ PolicyDisposition :: Enforce ,
71+ ) ;
2072 assert_eq ! ( None , policy. get_sandboxing_flag_set_for_document( ) ) ;
21- }
73+ }
0 commit comments