]>
Commit | Line | Data |
---|---|---|
3c0e092e | 1 | use super::{write_code, DecorationInfo}; |
5869c6ff | 2 | use crate::html::format::Buffer; |
1b1a35ee | 3 | use expect_test::expect_file; |
3c0e092e | 4 | use rustc_data_structures::fx::FxHashMap; |
136023e0 | 5 | use rustc_span::create_default_session_globals_then; |
3dfed10e | 6 | |
1b1a35ee XL |
7 | const STYLE: &str = r#" |
8 | <style> | |
9 | .kw { color: #8959A8; } | |
10 | .kw-2, .prelude-ty { color: #4271AE; } | |
11 | .number, .string { color: #718C00; } | |
12 | .self, .bool-val, .prelude-val, .attribute, .attribute .ident { color: #C82829; } | |
13 | .macro, .macro-nonterminal { color: #3E999F; } | |
14 | .lifetime { color: #B76514; } | |
15 | .question-mark { color: #ff9011; } | |
16 | </style> | |
17 | "#; | |
2a314972 XL |
18 | |
19 | #[test] | |
20 | fn test_html_highlighting() { | |
136023e0 | 21 | create_default_session_globals_then(|| { |
17df50a5 XL |
22 | let src = include_str!("fixtures/sample.rs"); |
23 | let html = { | |
24 | let mut out = Buffer::new(); | |
f2b60f7d | 25 | write_code(&mut out, src, None, None); |
17df50a5 XL |
26 | format!("{}<pre><code>{}</code></pre>\n", STYLE, out.into_inner()) |
27 | }; | |
28 | expect_file!["fixtures/sample.html"].assert_eq(&html); | |
29 | }); | |
2a314972 XL |
30 | } |
31 | ||
32 | #[test] | |
33 | fn test_dos_backline() { | |
136023e0 | 34 | create_default_session_globals_then(|| { |
17df50a5 | 35 | let src = "pub fn foo() {\r\n\ |
2a314972 XL |
36 | println!(\"foo\");\r\n\ |
37 | }\r\n"; | |
17df50a5 | 38 | let mut html = Buffer::new(); |
f2b60f7d | 39 | write_code(&mut html, src, None, None); |
17df50a5 XL |
40 | expect_file!["fixtures/dos_line.html"].assert_eq(&html.into_inner()); |
41 | }); | |
2a314972 | 42 | } |
94222f64 XL |
43 | |
44 | #[test] | |
45 | fn test_keyword_highlight() { | |
46 | create_default_session_globals_then(|| { | |
47 | let src = "use crate::a::foo; | |
48 | use self::whatever; | |
49 | let x = super::b::foo; | |
50 | let y = Self::whatever;"; | |
51 | ||
52 | let mut html = Buffer::new(); | |
f2b60f7d | 53 | write_code(&mut html, src, None, None); |
94222f64 XL |
54 | expect_file!["fixtures/highlight.html"].assert_eq(&html.into_inner()); |
55 | }); | |
56 | } | |
c295e0f8 XL |
57 | |
58 | #[test] | |
59 | fn test_union_highlighting() { | |
60 | create_default_session_globals_then(|| { | |
61 | let src = include_str!("fixtures/union.rs"); | |
62 | let mut html = Buffer::new(); | |
f2b60f7d | 63 | write_code(&mut html, src, None, None); |
c295e0f8 XL |
64 | expect_file!["fixtures/union.html"].assert_eq(&html.into_inner()); |
65 | }); | |
66 | } | |
3c0e092e XL |
67 | |
68 | #[test] | |
69 | fn test_decorations() { | |
70 | create_default_session_globals_then(|| { | |
71 | let src = "let x = 1; | |
f2b60f7d FG |
72 | let y = 2; |
73 | let z = 3; | |
74 | let a = 4;"; | |
3c0e092e | 75 | let mut decorations = FxHashMap::default(); |
f2b60f7d FG |
76 | decorations.insert("example", vec![(0, 10), (11, 21)]); |
77 | decorations.insert("example2", vec![(22, 32)]); | |
3c0e092e XL |
78 | |
79 | let mut html = Buffer::new(); | |
f2b60f7d | 80 | write_code(&mut html, src, None, Some(DecorationInfo(decorations))); |
3c0e092e XL |
81 | expect_file!["fixtures/decorations.html"].assert_eq(&html.into_inner()); |
82 | }); | |
83 | } |