]> git.lizzy.rs Git - rust.git/blob - src/librustdoc/html/url_parts_builder/tests.rs
Auto merge of #92441 - cjgillot:resolve-trait-impl-item, r=matthewjasper
[rust.git] / src / librustdoc / html / url_parts_builder / tests.rs
1 use super::*;
2
3 fn t(builder: UrlPartsBuilder, expect: &str) {
4     assert_eq!(builder.finish(), expect);
5 }
6
7 #[test]
8 fn empty() {
9     t(UrlPartsBuilder::new(), "");
10 }
11
12 #[test]
13 fn singleton() {
14     t(UrlPartsBuilder::singleton("index.html"), "index.html");
15 }
16
17 #[test]
18 fn push_several() {
19     let mut builder = UrlPartsBuilder::new();
20     builder.push("core");
21     builder.push("str");
22     builder.push("struct.Bytes.html");
23     t(builder, "core/str/struct.Bytes.html");
24 }
25
26 #[test]
27 fn push_front_empty() {
28     let mut builder = UrlPartsBuilder::new();
29     builder.push_front("page.html");
30     t(builder, "page.html");
31 }
32
33 #[test]
34 fn push_front_non_empty() {
35     let mut builder = UrlPartsBuilder::new();
36     builder.push("core");
37     builder.push("str");
38     builder.push("struct.Bytes.html");
39     builder.push_front("nightly");
40     t(builder, "nightly/core/str/struct.Bytes.html");
41 }
42
43 #[test]
44 fn push_fmt() {
45     let mut builder = UrlPartsBuilder::new();
46     builder.push_fmt(format_args!("{}", "core"));
47     builder.push("str");
48     builder.push_front("nightly");
49     builder.push_fmt(format_args!("{}.{}.html", "struct", "Bytes"));
50     t(builder, "nightly/core/str/struct.Bytes.html");
51 }
52
53 #[test]
54 fn collect() {
55     t(["core", "str"].into_iter().collect(), "core/str");
56     t(["core", "str", "struct.Bytes.html"].into_iter().collect(), "core/str/struct.Bytes.html");
57 }
58
59 #[test]
60 fn extend() {
61     let mut builder = UrlPartsBuilder::singleton("core");
62     builder.extend(["str", "struct.Bytes.html"]);
63     t(builder, "core/str/struct.Bytes.html");
64 }