88 lines
2.9 KiB
Rust
88 lines
2.9 KiB
Rust
|
extern crate mdbook;
|
||
|
use mdbook::config::BookConfig;
|
||
|
use mdbook::config::tomlconfig::TomlConfig;
|
||
|
|
||
|
use std::path::PathBuf;
|
||
|
|
||
|
// Tests that the `title` key is correcly parsed in the TOML config
|
||
|
#[test]
|
||
|
fn from_toml_source() {
|
||
|
let toml = r#"source = "source""#;
|
||
|
|
||
|
let parsed = TomlConfig::from_toml(&toml).expect("This should parse");
|
||
|
let config = BookConfig::from_tomlconfig("root", parsed);
|
||
|
|
||
|
assert_eq!(config.get_source(), PathBuf::from("root/source"));
|
||
|
}
|
||
|
|
||
|
// Tests that the `title` key is correcly parsed in the TOML config
|
||
|
#[test]
|
||
|
fn from_toml_title() {
|
||
|
let toml = r#"title = "Some title""#;
|
||
|
|
||
|
let parsed = TomlConfig::from_toml(&toml).expect("This should parse");
|
||
|
let config = BookConfig::from_tomlconfig("root", parsed);
|
||
|
|
||
|
assert_eq!(config.get_title(), "Some title");
|
||
|
}
|
||
|
|
||
|
// Tests that the `description` key is correcly parsed in the TOML config
|
||
|
#[test]
|
||
|
fn from_toml_description() {
|
||
|
let toml = r#"description = "This is a description""#;
|
||
|
|
||
|
let parsed = TomlConfig::from_toml(&toml).expect("This should parse");
|
||
|
let config = BookConfig::from_tomlconfig("root", parsed);
|
||
|
|
||
|
assert_eq!(config.get_description(), "This is a description");
|
||
|
}
|
||
|
|
||
|
// Tests that the `author` key is correcly parsed in the TOML config
|
||
|
#[test]
|
||
|
fn from_toml_author() {
|
||
|
let toml = r#"author = "John Doe""#;
|
||
|
|
||
|
let parsed = TomlConfig::from_toml(&toml).expect("This should parse");
|
||
|
let config = BookConfig::from_tomlconfig("root", parsed);
|
||
|
|
||
|
assert_eq!(config.get_authors(), &[String::from("John Doe")]);
|
||
|
}
|
||
|
|
||
|
// Tests that the `authors` key is correcly parsed in the TOML config
|
||
|
#[test]
|
||
|
fn from_toml_authors() {
|
||
|
let toml = r#"authors = ["John Doe", "Jane Doe"]"#;
|
||
|
|
||
|
let parsed = TomlConfig::from_toml(&toml).expect("This should parse");
|
||
|
let config = BookConfig::from_tomlconfig("root", parsed);
|
||
|
|
||
|
assert_eq!(config.get_authors(), &[String::from("John Doe"), String::from("Jane Doe")]);
|
||
|
}
|
||
|
|
||
|
// Tests that the `output.html.destination` key is correcly parsed in the TOML config
|
||
|
#[test]
|
||
|
fn from_toml_output_html_destination() {
|
||
|
let toml = r#"[output.html]
|
||
|
destination = "htmlbook""#;
|
||
|
|
||
|
let parsed = TomlConfig::from_toml(&toml).expect("This should parse");
|
||
|
let config = BookConfig::from_tomlconfig("root", parsed);
|
||
|
|
||
|
let htmlconfig = config.get_html_config().expect("There should be an HtmlConfig");
|
||
|
|
||
|
assert_eq!(htmlconfig.get_destination(), PathBuf::from("root/htmlbook"));
|
||
|
}
|
||
|
|
||
|
// Tests that the `output.html.theme` key is correcly parsed in the TOML config
|
||
|
#[test]
|
||
|
fn from_toml_output_html_theme() {
|
||
|
let toml = r#"[output.html]
|
||
|
theme = "theme""#;
|
||
|
|
||
|
let parsed = TomlConfig::from_toml(&toml).expect("This should parse");
|
||
|
let config = BookConfig::from_tomlconfig("root", parsed);
|
||
|
|
||
|
let htmlconfig = config.get_html_config().expect("There should be an HtmlConfig");
|
||
|
|
||
|
assert_eq!(htmlconfig.get_theme().expect("the theme key was provided"), &PathBuf::from("root/src/theme"));
|
||
|
}
|