Add tests
This commit is contained in:
parent
72d5675fef
commit
fb7008c0a0
@ -585,6 +585,7 @@ fn t(s: &str,
|
||||
fn issue_17736() {
|
||||
let markdown = "# title";
|
||||
format!("{}", Markdown(markdown));
|
||||
reset_ids();
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -609,6 +610,32 @@ fn t(input: &str, expect: &str) {
|
||||
<em><code>baz</code></em> ❤ #qux</a></h4>");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_header_ids_multiple_blocks() {
|
||||
fn t(input: &str, expect: &str) {
|
||||
let output = format!("{}", Markdown(input));
|
||||
assert_eq!(output, expect);
|
||||
}
|
||||
|
||||
let test = || {
|
||||
t("# Example", "\n<h1 id='example' class='section-header'>\
|
||||
<a href='#example'>Example</a></h1>");
|
||||
t("# Panics", "\n<h1 id='panics' class='section-header'>\
|
||||
<a href='#panics'>Panics</a></h1>");
|
||||
t("# Example", "\n<h1 id='example-1' class='section-header'>\
|
||||
<a href='#example-1'>Example</a></h1>");
|
||||
t("# Main", "\n<h1 id='main-1' class='section-header'>\
|
||||
<a href='#main-1'>Main</a></h1>");
|
||||
t("# Example", "\n<h1 id='example-2' class='section-header'>\
|
||||
<a href='#example-2'>Example</a></h1>");
|
||||
t("# Panics", "\n<h1 id='panics-1' class='section-header'>\
|
||||
<a href='#panics-1'>Panics</a></h1>");
|
||||
};
|
||||
test();
|
||||
reset_ids();
|
||||
test();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_plain_summary_line() {
|
||||
fn t(input: &str, expect: &str) {
|
||||
|
@ -2708,3 +2708,22 @@ fn get_index_type_name(clean_type: &clean::Type) -> Option<String> {
|
||||
pub fn cache() -> Arc<Cache> {
|
||||
CACHE_KEY.with(|c| c.borrow().clone())
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
#[test]
|
||||
fn test_unique_id() {
|
||||
let input = ["foo", "examples", "examples", "method.into_iter","examples",
|
||||
"method.into_iter", "foo", "main", "search", "methods",
|
||||
"examples", "method.into_iter", "assoc_type.Item", "assoc_type.Item"];
|
||||
let expected = ["foo", "examples", "examples-1", "method.into_iter", "examples-2",
|
||||
"method.into_iter-1", "foo-1", "main-1", "search-1", "methods-1",
|
||||
"examples-3", "method.into_iter-2", "assoc_type.Item", "assoc_type.Item-1"];
|
||||
|
||||
let test = || {
|
||||
let actual: Vec<String> = input.iter().map(|s| derive_id(s.to_string())).collect();
|
||||
assert_eq!(&actual[..], expected);
|
||||
};
|
||||
test();
|
||||
reset_ids();
|
||||
test();
|
||||
}
|
||||
|
53
src/test/rustdoc/issue-25001.rs
Normal file
53
src/test/rustdoc/issue-25001.rs
Normal file
@ -0,0 +1,53 @@
|
||||
// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// @has issue_25001/struct.Foo.html
|
||||
pub struct Foo<T>(T);
|
||||
|
||||
pub trait Bar {
|
||||
type Item;
|
||||
|
||||
fn quux(self);
|
||||
}
|
||||
|
||||
impl<T> Foo<T> {
|
||||
// @has - '//*[@id="method.pass"]//code' 'fn pass()'
|
||||
pub fn pass() {}
|
||||
}
|
||||
impl<T> Foo<T> {
|
||||
// @has - '//*[@id="method.pass-1"]//code' 'fn pass() -> usize'
|
||||
pub fn pass() -> usize { 42 }
|
||||
}
|
||||
impl<T> Foo<T> {
|
||||
// @has - '//*[@id="method.pass-2"]//code' 'fn pass() -> isize'
|
||||
pub fn pass() -> isize { 42 }
|
||||
}
|
||||
|
||||
impl<T> Bar for Foo<T> {
|
||||
// @has - '//*[@id="assoc_type.Item"]//code' 'type Item = T'
|
||||
type Item=T;
|
||||
|
||||
// @has - '//*[@id="method.quux"]//code' 'fn quux(self)'
|
||||
fn quux(self) {}
|
||||
}
|
||||
impl<'a, T> Bar for &'a Foo<T> {
|
||||
// @has - '//*[@id="assoc_type.Item-1"]//code' "type Item = &'a T"
|
||||
type Item=&'a T;
|
||||
|
||||
// @has - '//*[@id="method.quux-1"]//code' 'fn quux(self)'
|
||||
fn quux(self) {}
|
||||
}
|
||||
impl<'a, T> Bar for &'a mut Foo<T> {
|
||||
// @has - '//*[@id="assoc_type.Item-2"]//code' "type Item = &'a mut T"
|
||||
type Item=&'a mut T;
|
||||
|
||||
// @has - '//*[@id="method.quux-2"]//code' 'fn quux(self)'
|
||||
fn quux(self) {}
|
||||
}
|
30
src/test/rustdoc/issue-29449.rs
Normal file
30
src/test/rustdoc/issue-29449.rs
Normal file
@ -0,0 +1,30 @@
|
||||
// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// @has issue_29449/struct.Foo.html
|
||||
pub struct Foo;
|
||||
|
||||
impl Foo {
|
||||
// @has - '//*[@id="examples"]//a' 'Examples'
|
||||
// @has - '//*[@id="panics"]//a' 'Panics'
|
||||
/// # Examples
|
||||
/// # Panics
|
||||
pub fn bar() {}
|
||||
|
||||
// @has - '//*[@id="examples-1"]//a' 'Examples'
|
||||
/// # Examples
|
||||
pub fn bar_1() {}
|
||||
|
||||
// @has - '//*[@id="examples-2"]//a' 'Examples'
|
||||
// @has - '//*[@id="panics-1"]//a' 'Panics'
|
||||
/// # Examples
|
||||
/// # Panics
|
||||
pub fn bar_2() {}
|
||||
}
|
Loading…
Reference in New Issue
Block a user