diff --git a/tests/rendered_output.rs b/tests/rendered_output.rs
index 591634db..7a726f87 100644
--- a/tests/rendered_output.rs
+++ b/tests/rendered_output.rs
@@ -328,26 +328,6 @@ fn example_book_can_build() {
md.build().unwrap();
}
-#[test]
-fn by_default_mdbook_use_index_preprocessor_to_convert_readme_to_index() {
- let temp = DummyBook::new().build().unwrap();
- let mut cfg = Config::default();
- cfg.set("book.src", "src2")
- .expect("Couldn't set config.book.src to \"src2\".");
- let md = MDBook::load_with_config(temp.path(), cfg).unwrap();
- md.build().unwrap();
-
- let first_index = temp.path().join("book").join("toc.js");
- let expected_strings = vec![
- r#"href="first/index.html""#,
- r#"href="second/index.html""#,
- "1st README",
- "2nd README",
- ];
- assert_contains_strings(&first_index, &expected_strings);
- assert_doesnt_contain_strings(&first_index, &["README.html", "Second README"]);
-}
-
#[test]
fn first_chapter_is_copied_as_index_even_if_not_first_elem() {
let temp = DummyBook::new().build().unwrap();
diff --git a/tests/testsuite/index.rs b/tests/testsuite/index.rs
new file mode 100644
index 00000000..0555cc63
--- /dev/null
+++ b/tests/testsuite/index.rs
@@ -0,0 +1,38 @@
+//! Tests for the index preprocessor.
+
+use crate::prelude::*;
+
+// Checks basic README to index.html conversion.
+#[test]
+fn readme_to_index() {
+ let mut test = BookTest::from_dir("index/basic_readme");
+ test.check_main_file(
+ "book/index.html",
+ str![[r##"
"##]],
+ )
+ .check_main_file(
+ "book/first/index.html",
+ str![[r##""##]],
+ )
+ .check_main_file(
+ "book/second/index.html",
+ str![[r##""##]],
+ )
+ .check_toc_js(str![[r#"
+
+-
+Intro
+
+-
+
+1. First
+
+-
+
+2. Second
+
+
+"#]]);
+ assert!(test.dir.join("book/index.html").exists());
+ assert!(!test.dir.join("book/README.html").exists());
+}
diff --git a/tests/testsuite/index/basic_readme/book.toml b/tests/testsuite/index/basic_readme/book.toml
new file mode 100644
index 00000000..271699ca
--- /dev/null
+++ b/tests/testsuite/index/basic_readme/book.toml
@@ -0,0 +1,2 @@
+[book]
+title = "basic_readme"
diff --git a/tests/testsuite/index/basic_readme/src/README.md b/tests/testsuite/index/basic_readme/src/README.md
new file mode 100644
index 00000000..1e0981f1
--- /dev/null
+++ b/tests/testsuite/index/basic_readme/src/README.md
@@ -0,0 +1 @@
+# Intro
diff --git a/tests/testsuite/index/basic_readme/src/SUMMARY.md b/tests/testsuite/index/basic_readme/src/SUMMARY.md
new file mode 100644
index 00000000..fd4cbac2
--- /dev/null
+++ b/tests/testsuite/index/basic_readme/src/SUMMARY.md
@@ -0,0 +1,6 @@
+# Summary
+
+[Intro](./README.md)
+
+- [First](first/README)
+- [Second](second/Readme.md)
diff --git a/tests/testsuite/index/basic_readme/src/first/README b/tests/testsuite/index/basic_readme/src/first/README
new file mode 100644
index 00000000..f6758542
--- /dev/null
+++ b/tests/testsuite/index/basic_readme/src/first/README
@@ -0,0 +1 @@
+# First
diff --git a/tests/testsuite/index/basic_readme/src/second/Readme.md b/tests/testsuite/index/basic_readme/src/second/Readme.md
new file mode 100644
index 00000000..64e2582b
--- /dev/null
+++ b/tests/testsuite/index/basic_readme/src/second/Readme.md
@@ -0,0 +1 @@
+# Second
diff --git a/tests/testsuite/main.rs b/tests/testsuite/main.rs
index d273b992..6141c4f7 100644
--- a/tests/testsuite/main.rs
+++ b/tests/testsuite/main.rs
@@ -6,6 +6,7 @@ mod book_test;
mod build;
mod cli;
mod includes;
+mod index;
mod prelude {
pub use crate::book_test::BookTest;