From 8215b74032de15481af15d3c5805c67158d80d96 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 27 Feb 2020 14:15:32 +0100 Subject: Move tests to a new file --- crates/ra_ide/src/syntax_highlighting.rs | 136 +------------------------ crates/ra_ide/src/syntax_highlighting/tests.rs | 127 +++++++++++++++++++++++ 2 files changed, 129 insertions(+), 134 deletions(-) create mode 100644 crates/ra_ide/src/syntax_highlighting/tests.rs (limited to 'crates/ra_ide') diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ra_ide/src/syntax_highlighting.rs index d31c09abb..796f0e545 100644 --- a/crates/ra_ide/src/syntax_highlighting.rs +++ b/crates/ra_ide/src/syntax_highlighting.rs @@ -2,6 +2,8 @@ mod tags; mod html; +#[cfg(test)] +mod tests; use hir::{Name, Semantics}; use ra_ide_db::{ @@ -279,137 +281,3 @@ fn highlight_name_by_syntax(name: ast::Name) -> Highlight { _ => default, } } - -#[cfg(test)] -mod tests { - use std::fs; - - use test_utils::{assert_eq_text, project_dir, read_text}; - - use crate::{ - mock_analysis::{single_file, MockAnalysis}, - FileRange, TextRange, - }; - - #[test] - fn test_highlighting() { - let (analysis, file_id) = single_file( - r#" -#[derive(Clone, Debug)] -struct Foo { - pub x: i32, - pub y: i32, -} - -fn foo() -> T { - unimplemented!(); - foo::(); -} - -macro_rules! def_fn { - ($($tt:tt)*) => {$($tt)*} -} - -def_fn!{ - fn bar() -> u32 { - 100 - } -} - -// comment -fn main() { - println!("Hello, {}!", 92); - - let mut vec = Vec::new(); - if true { - let x = 92; - vec.push(Foo { x, y: 1 }); - } - unsafe { vec.set_len(0); } - - let mut x = 42; - let y = &mut x; - let z = &y; - - y; -} - -enum E { - V(X) -} - -impl E { - fn new() -> E {} -} -"# - .trim(), - ); - let dst_file = project_dir().join("crates/ra_ide/src/snapshots/highlighting.html"); - let actual_html = &analysis.highlight_as_html(file_id, false).unwrap(); - let expected_html = &read_text(&dst_file); - fs::write(dst_file, &actual_html).unwrap(); - assert_eq_text!(expected_html, actual_html); - } - - #[test] - fn test_rainbow_highlighting() { - let (analysis, file_id) = single_file( - r#" -fn main() { - let hello = "hello"; - let x = hello.to_string(); - let y = hello.to_string(); - - let x = "other color please!"; - let y = x.to_string(); -} - -fn bar() { - let mut hello = "hello"; -} -"# - .trim(), - ); - let dst_file = project_dir().join("crates/ra_ide/src/snapshots/rainbow_highlighting.html"); - let actual_html = &analysis.highlight_as_html(file_id, true).unwrap(); - let expected_html = &read_text(&dst_file); - fs::write(dst_file, &actual_html).unwrap(); - assert_eq_text!(expected_html, actual_html); - } - - #[test] - fn accidentally_quadratic() { - let file = project_dir().join("crates/ra_syntax/test_data/accidentally_quadratic"); - let src = fs::read_to_string(file).unwrap(); - - let mut mock = MockAnalysis::new(); - let file_id = mock.add_file("/main.rs", &src); - let host = mock.analysis_host(); - - // let t = std::time::Instant::now(); - let _ = host.analysis().highlight(file_id).unwrap(); - // eprintln!("elapsed: {:?}", t.elapsed()); - } - - #[test] - fn test_ranges() { - let (analysis, file_id) = single_file( - r#" - #[derive(Clone, Debug)] - struct Foo { - pub x: i32, - pub y: i32, - }"#, - ); - - // The "x" - let highlights = &analysis - .highlight_range(FileRange { - file_id, - range: TextRange::offset_len(82.into(), 1.into()), - }) - .unwrap(); - - assert_eq!(&highlights[0].highlight.to_string(), "field"); - } -} diff --git a/crates/ra_ide/src/syntax_highlighting/tests.rs b/crates/ra_ide/src/syntax_highlighting/tests.rs new file mode 100644 index 000000000..ff23d4ac5 --- /dev/null +++ b/crates/ra_ide/src/syntax_highlighting/tests.rs @@ -0,0 +1,127 @@ +use std::fs; + +use test_utils::{assert_eq_text, project_dir, read_text}; + +use crate::{ + mock_analysis::{single_file, MockAnalysis}, + FileRange, TextRange, +}; + +#[test] +fn test_highlighting() { + let (analysis, file_id) = single_file( + r#" +#[derive(Clone, Debug)] +struct Foo { + pub x: i32, + pub y: i32, +} + +fn foo() -> T { + unimplemented!(); + foo::(); +} + +macro_rules! def_fn { + ($($tt:tt)*) => {$($tt)*} +} + +def_fn!{ + fn bar() -> u32 { + 100 + } +} + +// comment +fn main() { + println!("Hello, {}!", 92); + + let mut vec = Vec::new(); + if true { + let x = 92; + vec.push(Foo { x, y: 1 }); + } + unsafe { vec.set_len(0); } + + let mut x = 42; + let y = &mut x; + let z = &y; + + y; +} + +enum E { + V(X) +} + +impl E { + fn new() -> E {} +} +"# + .trim(), + ); + let dst_file = project_dir().join("crates/ra_ide/src/snapshots/highlighting.html"); + let actual_html = &analysis.highlight_as_html(file_id, false).unwrap(); + let expected_html = &read_text(&dst_file); + fs::write(dst_file, &actual_html).unwrap(); + assert_eq_text!(expected_html, actual_html); +} + +#[test] +fn test_rainbow_highlighting() { + let (analysis, file_id) = single_file( + r#" +fn main() { + let hello = "hello"; + let x = hello.to_string(); + let y = hello.to_string(); + + let x = "other color please!"; + let y = x.to_string(); +} + +fn bar() { + let mut hello = "hello"; +} +"# + .trim(), + ); + let dst_file = project_dir().join("crates/ra_ide/src/snapshots/rainbow_highlighting.html"); + let actual_html = &analysis.highlight_as_html(file_id, true).unwrap(); + let expected_html = &read_text(&dst_file); + fs::write(dst_file, &actual_html).unwrap(); + assert_eq_text!(expected_html, actual_html); +} + +#[test] +fn accidentally_quadratic() { + let file = project_dir().join("crates/ra_syntax/test_data/accidentally_quadratic"); + let src = fs::read_to_string(file).unwrap(); + + let mut mock = MockAnalysis::new(); + let file_id = mock.add_file("/main.rs", &src); + let host = mock.analysis_host(); + + // let t = std::time::Instant::now(); + let _ = host.analysis().highlight(file_id).unwrap(); + // eprintln!("elapsed: {:?}", t.elapsed()); +} + +#[test] +fn test_ranges() { + let (analysis, file_id) = single_file( + r#" + #[derive(Clone, Debug)] + struct Foo { + pub x: i32, + pub y: i32, + }"#, + ); + + // The "x" + let highlights = &analysis + .highlight_range(FileRange { file_id, range: TextRange::offset_len(82.into(), 1.into()) }) + .unwrap(); + + assert_eq!(&highlights[0].highlight.to_string(), "field"); +} -- cgit v1.2.3