2018-09-16 23:33:58 +08:00
|
|
|
mod dummy_book;
|
|
|
|
|
2019-05-26 02:50:41 +08:00
|
|
|
use crate::dummy_book::DummyBook;
|
2018-09-16 22:49:52 +08:00
|
|
|
use mdbook::preprocess::{CmdPreprocessor, Preprocessor};
|
2018-09-16 23:23:03 +08:00
|
|
|
use mdbook::MDBook;
|
2018-09-16 22:49:52 +08:00
|
|
|
|
|
|
|
fn example() -> CmdPreprocessor {
|
2018-12-04 07:11:41 +08:00
|
|
|
CmdPreprocessor::new(
|
|
|
|
"nop-preprocessor".to_string(),
|
|
|
|
"cargo run --example nop-preprocessor --".to_string(),
|
|
|
|
)
|
2018-09-16 22:49:52 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
2018-09-16 23:00:19 +08:00
|
|
|
fn example_supports_whatever() {
|
2018-09-16 22:49:52 +08:00
|
|
|
let cmd = example();
|
|
|
|
|
|
|
|
let got = cmd.supports_renderer("whatever");
|
|
|
|
|
2023-08-21 20:10:23 +08:00
|
|
|
assert!(got);
|
2018-09-16 22:49:52 +08:00
|
|
|
}
|
2018-09-16 23:00:19 +08:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn example_doesnt_support_not_supported() {
|
|
|
|
let cmd = example();
|
|
|
|
|
|
|
|
let got = cmd.supports_renderer("not-supported");
|
|
|
|
|
2023-08-21 20:10:23 +08:00
|
|
|
assert!(!got);
|
2018-09-16 23:00:19 +08:00
|
|
|
}
|
2018-09-16 23:23:03 +08:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn ask_the_preprocessor_to_blow_up() {
|
2018-09-16 23:33:58 +08:00
|
|
|
let dummy_book = DummyBook::new();
|
|
|
|
let temp = dummy_book.build().unwrap();
|
|
|
|
let mut md = MDBook::load(temp.path()).unwrap();
|
2019-05-04 02:32:56 +08:00
|
|
|
md.with_preprocessor(example());
|
2018-09-16 23:23:03 +08:00
|
|
|
|
2018-12-04 07:11:41 +08:00
|
|
|
md.config
|
|
|
|
.set("preprocessor.nop-preprocessor.blow-up", true)
|
|
|
|
.unwrap();
|
2018-09-16 23:23:03 +08:00
|
|
|
|
|
|
|
let got = md.build();
|
|
|
|
|
|
|
|
assert!(got.is_err());
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn process_the_dummy_book() {
|
2018-09-16 23:33:58 +08:00
|
|
|
let dummy_book = DummyBook::new();
|
|
|
|
let temp = dummy_book.build().unwrap();
|
|
|
|
let mut md = MDBook::load(temp.path()).unwrap();
|
2019-05-04 02:32:56 +08:00
|
|
|
md.with_preprocessor(example());
|
2018-09-16 23:23:03 +08:00
|
|
|
|
|
|
|
md.build().unwrap();
|
|
|
|
}
|