| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 | use crate::html::format::href_relative_parts;
fn assert_relative_path(expected: &[&str], relative_to_fqp: &[&str], fqp: &[&str]) {
    let relative_to_fqp: Vec<String> = relative_to_fqp.iter().copied().map(String::from).collect();
    let fqp: Vec<String> = fqp.iter().copied().map(String::from).collect();
    assert_eq!(expected, href_relative_parts(&fqp, &relative_to_fqp));
}
#[test]
fn href_relative_parts_basic() {
    let relative_to_fqp = &["std", "vec"];
    let fqp = &["std", "iter"];
    assert_relative_path(&["..", "iter"], relative_to_fqp, fqp);
}
#[test]
fn href_relative_parts_parent_module() {
    let relative_to_fqp = &["std", "vec"];
    let fqp = &["std"];
    assert_relative_path(&[".."], relative_to_fqp, fqp);
}
#[test]
fn href_relative_parts_different_crate() {
    let relative_to_fqp = &["std", "vec"];
    let fqp = &["core", "iter"];
    assert_relative_path(&["..", "..", "core", "iter"], relative_to_fqp, fqp);
}
#[test]
fn href_relative_parts_same_module() {
    let relative_to_fqp = &["std", "vec"];
    let fqp = &["std", "vec"];
    assert_relative_path(&[], relative_to_fqp, fqp);
}
#[test]
fn href_relative_parts_child_module() {
    let relative_to_fqp = &["std"];
    let fqp = &["std", "vec"];
    assert_relative_path(&["vec"], relative_to_fqp, fqp);
}
#[test]
fn href_relative_parts_root() {
    let relative_to_fqp = &[];
    let fqp = &["std"];
    assert_relative_path(&["std"], relative_to_fqp, fqp);
}
 |