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