use racer_testutils::*;
#[test]
fn finds_def_of_i64() {
let src = "
fn main() {
let a: i64~ = 0;
}
";
let got = get_definition(src, None);
assert_eq!(got.matchstr, "i64", "{:?}", got);
}
#[test]
fn get_def_of_str_method() {
let src = r#"
fn check() {
"hello".to_lowerca~se();
}
"#;
let got = get_definition(src, None);
assert_eq!("to_lowercase", got.matchstr);
}
#[test]
fn completes_liballoc_method_for_str() {
let src = r#"
fn in_let() {
let foo = "hello";
foo.to_lowerc~
}
"#;
let got = get_only_completion(src, None);
assert_eq!(got.matchstr, "to_lowercase");
}
#[test]
fn completes_libcore_method_for_str() {
let src = r#"
fn in_let() {
let foo = "hello";
foo.le~
}
"#;
let got = get_only_completion(src, None);
assert_eq!(got.matchstr, "len");
}
#[test]
fn completes_tuple_field() {
let src = "
fn foo() -> (usize, usize) { (1, 2) }
fn main() {
foo().~
}
";
let got = get_all_completions(src, None);
assert!(got
.into_iter()
.all(|ma| ma.matchstr == "0" || ma.matchstr == "1"))
}
#[test]
fn completes_methods_for_char() {
let src = r#"
fn main() {
'c'.is_upperc~
}
"#;
let got = get_only_completion(src, None);
assert_eq!(got.matchstr, "is_uppercase");
}
#[test]
fn completes_slice_methods_for_array() {
let src = r#"
fn main() {
[1, 2, 3].split_mu~
}
"#;
let got = get_only_completion(src, None);
assert_eq!(got.matchstr, "split_mut");
}
#[test]
fn completes_methods_for_slice() {
let src = r#"
fn slice() -> &'static [usize] {
&[1, 2, 3]
}
fn main() {
let s = slice();
s.split_first_m~
}
"#;
let got = get_only_completion(src, None);
assert_eq!(got.matchstr, "split_first_mut");
}
#[test]
fn completes_slice_methods_for_vec() {
let src = r#"
fn main() {
let v = vec![];
v.split_first_m~
}
"#;
let got = get_only_completion(src, None);
assert_eq!(got.matchstr, "split_first_mut");
}