1 //  ██████╗  █████╗ ███████╗███████╗██╗███╗   ██╗ ██████╗
2 //  ██╔══██╗██╔══██╗██╔════╝██╔════╝██║████╗  ██║██╔════╝
3 //  ██████╔╝███████║███████╗███████╗██║██╔██╗ ██║██║  ███╗
4 //  ██╔═══╝ ██╔══██║╚════██║╚════██║██║██║╚██╗██║██║   ██║
5 //  ██║     ██║  ██║███████║███████║██║██║ ╚████║╚██████╔╝
6 //  ╚═╝     ╚═╝  ╚═╝╚══════╝╚══════╝╚═╝╚═╝  ╚═══╝ ╚═════╝
7 
8 #[cfg(test)]
9 mod passing {
10     use crate::html;
11     use crate::opts::Options;
12 
13     #[test]
isolated()14     fn isolated() {
15         let mut options = Options::default();
16         options.isolate = true;
17         let csp_content = html::compose_csp(&options);
18 
19         assert_eq!(csp_content, "default-src 'unsafe-inline' data:;");
20     }
21 
22     #[test]
no_css()23     fn no_css() {
24         let mut options = Options::default();
25         options.no_css = true;
26         let csp_content = html::compose_csp(&options);
27 
28         assert_eq!(csp_content, "style-src 'none';");
29     }
30 
31     #[test]
no_fonts()32     fn no_fonts() {
33         let mut options = Options::default();
34         options.no_fonts = true;
35         let csp_content = html::compose_csp(&options);
36 
37         assert_eq!(csp_content, "font-src 'none';");
38     }
39 
40     #[test]
no_frames()41     fn no_frames() {
42         let mut options = Options::default();
43         options.no_frames = true;
44         let csp_content = html::compose_csp(&options);
45 
46         assert_eq!(csp_content, "frame-src 'none'; child-src 'none';");
47     }
48 
49     #[test]
no_js()50     fn no_js() {
51         let mut options = Options::default();
52         options.no_js = true;
53         let csp_content = html::compose_csp(&options);
54 
55         assert_eq!(csp_content, "script-src 'none';");
56     }
57 
58     #[test]
no_images()59     fn no_images() {
60         let mut options = Options::default();
61         options.no_images = true;
62         let csp_content = html::compose_csp(&options);
63 
64         assert_eq!(csp_content, "img-src data:;");
65     }
66 
67     #[test]
all()68     fn all() {
69         let mut options = Options::default();
70         options.isolate = true;
71         options.no_css = true;
72         options.no_fonts = true;
73         options.no_frames = true;
74         options.no_js = true;
75         options.no_images = true;
76         let csp_content = html::compose_csp(&options);
77 
78         assert_eq!(csp_content, "default-src 'unsafe-inline' data:; style-src 'none'; font-src 'none'; frame-src 'none'; child-src 'none'; script-src 'none'; img-src data:;");
79     }
80 }
81