]> git.proxmox.com Git - rustc.git/blame - src/librustdoc/html/highlight/tests.rs
New upstream version 1.65.0+dfsg1
[rustc.git] / src / librustdoc / html / highlight / tests.rs
CommitLineData
3c0e092e 1use super::{write_code, DecorationInfo};
5869c6ff 2use crate::html::format::Buffer;
1b1a35ee 3use expect_test::expect_file;
3c0e092e 4use rustc_data_structures::fx::FxHashMap;
136023e0 5use rustc_span::create_default_session_globals_then;
3dfed10e 6
1b1a35ee
XL
7const 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]
20fn 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]
33fn 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]
45fn test_keyword_highlight() {
46 create_default_session_globals_then(|| {
47 let src = "use crate::a::foo;
48use self::whatever;
49let x = super::b::foo;
50let 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]
59fn 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]
69fn test_decorations() {
70 create_default_session_globals_then(|| {
71 let src = "let x = 1;
f2b60f7d
FG
72let y = 2;
73let z = 3;
74let 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}