diff --git a/tests/rustdoc-html/README.md b/tests/rustdoc-html/README.md
index 4acb1d54bbb89..055c03b1eed35 100644
--- a/tests/rustdoc-html/README.md
+++ b/tests/rustdoc-html/README.md
@@ -48,6 +48,11 @@ conflicts, in particular for simpler crate names).
Contains tests to check the display of items implementing the `Deref` and/or `DerefMut` traits.
+## `tests/rustdoc-html/display`
+
+Contains tests checking how items are displayed in the docs. Ensuring that methods with a lot
+of arguments or with a lot of generics are correctly split between multiple lines for example.
+
## `tests/rustdoc-html/doc-cfg`
Contains tests to check the rustdoc `doc_cfg` feature.
diff --git a/tests/rustdoc-html/decl-line-wrapping-empty-arg-list.decl.html b/tests/rustdoc-html/display/decl-line-wrapping-empty-arg-list.decl.html
similarity index 100%
rename from tests/rustdoc-html/decl-line-wrapping-empty-arg-list.decl.html
rename to tests/rustdoc-html/display/decl-line-wrapping-empty-arg-list.decl.html
diff --git a/tests/rustdoc-html/decl-line-wrapping-empty-arg-list.rs b/tests/rustdoc-html/display/decl-line-wrapping-empty-arg-list.rs
similarity index 100%
rename from tests/rustdoc-html/decl-line-wrapping-empty-arg-list.rs
rename to tests/rustdoc-html/display/decl-line-wrapping-empty-arg-list.rs
diff --git a/tests/rustdoc-html/decl-trailing-whitespace.declaration.html b/tests/rustdoc-html/display/decl-trailing-whitespace.declaration.html
similarity index 100%
rename from tests/rustdoc-html/decl-trailing-whitespace.declaration.html
rename to tests/rustdoc-html/display/decl-trailing-whitespace.declaration.html
diff --git a/tests/rustdoc-html/decl-trailing-whitespace.rs b/tests/rustdoc-html/display/decl-trailing-whitespace.rs
similarity index 100%
rename from tests/rustdoc-html/decl-trailing-whitespace.rs
rename to tests/rustdoc-html/display/decl-trailing-whitespace.rs
diff --git a/tests/rustdoc-html/extremely_long_typename.extremely_long_typename.html b/tests/rustdoc-html/display/extremely_long_typename.extremely_long_typename.html
similarity index 100%
rename from tests/rustdoc-html/extremely_long_typename.extremely_long_typename.html
rename to tests/rustdoc-html/display/extremely_long_typename.extremely_long_typename.html
diff --git a/tests/rustdoc-html/extremely_long_typename.rs b/tests/rustdoc-html/display/extremely_long_typename.rs
similarity index 100%
rename from tests/rustdoc-html/extremely_long_typename.rs
rename to tests/rustdoc-html/display/extremely_long_typename.rs
diff --git a/tests/rustdoc-html/item-desc-list-at-start.item-table.html b/tests/rustdoc-html/display/item-desc-list-at-start.item-table.html
similarity index 100%
rename from tests/rustdoc-html/item-desc-list-at-start.item-table.html
rename to tests/rustdoc-html/display/item-desc-list-at-start.item-table.html
diff --git a/tests/rustdoc-html/item-desc-list-at-start.rs b/tests/rustdoc-html/display/item-desc-list-at-start.rs
similarity index 100%
rename from tests/rustdoc-html/item-desc-list-at-start.rs
rename to tests/rustdoc-html/display/item-desc-list-at-start.rs
diff --git a/tests/rustdoc-html/where.SWhere_Echo_impl.html b/tests/rustdoc-html/display/where.SWhere_Echo_impl.html
similarity index 100%
rename from tests/rustdoc-html/where.SWhere_Echo_impl.html
rename to tests/rustdoc-html/display/where.SWhere_Echo_impl.html
diff --git a/tests/rustdoc-html/where.SWhere_Simd_item-decl.html b/tests/rustdoc-html/display/where.SWhere_Simd_item-decl.html
similarity index 100%
rename from tests/rustdoc-html/where.SWhere_Simd_item-decl.html
rename to tests/rustdoc-html/display/where.SWhere_Simd_item-decl.html
diff --git a/tests/rustdoc-html/where.SWhere_TraitWhere_item-decl.html b/tests/rustdoc-html/display/where.SWhere_TraitWhere_item-decl.html
similarity index 100%
rename from tests/rustdoc-html/where.SWhere_TraitWhere_item-decl.html
rename to tests/rustdoc-html/display/where.SWhere_TraitWhere_item-decl.html
diff --git a/tests/rustdoc-html/where.alpha_trait_decl.html b/tests/rustdoc-html/display/where.alpha_trait_decl.html
similarity index 100%
rename from tests/rustdoc-html/where.alpha_trait_decl.html
rename to tests/rustdoc-html/display/where.alpha_trait_decl.html
diff --git a/tests/rustdoc-html/where.bravo_trait_decl.html b/tests/rustdoc-html/display/where.bravo_trait_decl.html
similarity index 100%
rename from tests/rustdoc-html/where.bravo_trait_decl.html
rename to tests/rustdoc-html/display/where.bravo_trait_decl.html
diff --git a/tests/rustdoc-html/where.charlie_fn_decl.html b/tests/rustdoc-html/display/where.charlie_fn_decl.html
similarity index 100%
rename from tests/rustdoc-html/where.charlie_fn_decl.html
rename to tests/rustdoc-html/display/where.charlie_fn_decl.html
diff --git a/tests/rustdoc-html/where.golf_type_alias_decl.html b/tests/rustdoc-html/display/where.golf_type_alias_decl.html
similarity index 100%
rename from tests/rustdoc-html/where.golf_type_alias_decl.html
rename to tests/rustdoc-html/display/where.golf_type_alias_decl.html
diff --git a/tests/rustdoc-html/where.rs b/tests/rustdoc-html/display/where.rs
similarity index 100%
rename from tests/rustdoc-html/where.rs
rename to tests/rustdoc-html/display/where.rs
diff --git a/tests/rustdoc-html/whitespace-after-where-clause.enum.html b/tests/rustdoc-html/display/whitespace-after-where-clause.enum.html
similarity index 100%
rename from tests/rustdoc-html/whitespace-after-where-clause.enum.html
rename to tests/rustdoc-html/display/whitespace-after-where-clause.enum.html
diff --git a/tests/rustdoc-html/whitespace-after-where-clause.enum2.html b/tests/rustdoc-html/display/whitespace-after-where-clause.enum2.html
similarity index 100%
rename from tests/rustdoc-html/whitespace-after-where-clause.enum2.html
rename to tests/rustdoc-html/display/whitespace-after-where-clause.enum2.html
diff --git a/tests/rustdoc-html/whitespace-after-where-clause.rs b/tests/rustdoc-html/display/whitespace-after-where-clause.rs
similarity index 100%
rename from tests/rustdoc-html/whitespace-after-where-clause.rs
rename to tests/rustdoc-html/display/whitespace-after-where-clause.rs
diff --git a/tests/rustdoc-html/whitespace-after-where-clause.struct.html b/tests/rustdoc-html/display/whitespace-after-where-clause.struct.html
similarity index 100%
rename from tests/rustdoc-html/whitespace-after-where-clause.struct.html
rename to tests/rustdoc-html/display/whitespace-after-where-clause.struct.html
diff --git a/tests/rustdoc-html/whitespace-after-where-clause.struct2.html b/tests/rustdoc-html/display/whitespace-after-where-clause.struct2.html
similarity index 100%
rename from tests/rustdoc-html/whitespace-after-where-clause.struct2.html
rename to tests/rustdoc-html/display/whitespace-after-where-clause.struct2.html
diff --git a/tests/rustdoc-html/whitespace-after-where-clause.trait.html b/tests/rustdoc-html/display/whitespace-after-where-clause.trait.html
similarity index 100%
rename from tests/rustdoc-html/whitespace-after-where-clause.trait.html
rename to tests/rustdoc-html/display/whitespace-after-where-clause.trait.html
diff --git a/tests/rustdoc-html/whitespace-after-where-clause.trait2.html b/tests/rustdoc-html/display/whitespace-after-where-clause.trait2.html
similarity index 100%
rename from tests/rustdoc-html/whitespace-after-where-clause.trait2.html
rename to tests/rustdoc-html/display/whitespace-after-where-clause.trait2.html
diff --git a/tests/rustdoc-html/whitespace-after-where-clause.union.html b/tests/rustdoc-html/display/whitespace-after-where-clause.union.html
similarity index 100%
rename from tests/rustdoc-html/whitespace-after-where-clause.union.html
rename to tests/rustdoc-html/display/whitespace-after-where-clause.union.html
diff --git a/tests/rustdoc-html/whitespace-after-where-clause.union2.html b/tests/rustdoc-html/display/whitespace-after-where-clause.union2.html
similarity index 100%
rename from tests/rustdoc-html/whitespace-after-where-clause.union2.html
rename to tests/rustdoc-html/display/whitespace-after-where-clause.union2.html
diff --git a/tests/rustdoc-html/auxiliary/rustdoc-ffi.rs b/tests/rustdoc-html/extern/auxiliary/rustdoc-ffi.rs
similarity index 100%
rename from tests/rustdoc-html/auxiliary/rustdoc-ffi.rs
rename to tests/rustdoc-html/extern/auxiliary/rustdoc-ffi.rs
diff --git a/tests/rustdoc-html/ffi.rs b/tests/rustdoc-html/extern/ffi.rs
similarity index 100%
rename from tests/rustdoc-html/ffi.rs
rename to tests/rustdoc-html/extern/ffi.rs
diff --git a/tests/rustdoc-html/foreigntype.rs b/tests/rustdoc-html/extern/foreigntype.rs
similarity index 100%
rename from tests/rustdoc-html/foreigntype.rs
rename to tests/rustdoc-html/extern/foreigntype.rs
diff --git a/tests/rustdoc-html/hidden-methods.rs b/tests/rustdoc-html/hidden-methods.rs
deleted file mode 100644
index ed9c1ee1aac29..0000000000000
--- a/tests/rustdoc-html/hidden-methods.rs
+++ /dev/null
@@ -1,29 +0,0 @@
-#![crate_name = "foo"]
-
-#[doc(hidden)]
-pub mod hidden {
- pub struct Foo;
-
- impl Foo {
- #[doc(hidden)]
- pub fn this_should_be_hidden() {}
- }
-
- pub struct Bar;
-
- impl Bar {
- fn this_should_be_hidden() {}
- }
-}
-
-//@ has foo/struct.Foo.html
-//@ !hasraw - 'Methods'
-//@ !has - '//code' 'impl Foo'
-//@ !hasraw - 'this_should_be_hidden'
-pub use hidden::Foo;
-
-//@ has foo/struct.Bar.html
-//@ !hasraw - 'Methods'
-//@ !has - '//code' 'impl Bar'
-//@ !hasraw - 'this_should_be_hidden'
-pub use hidden::Bar;
diff --git a/tests/rustdoc-html/doc-hidden-crate.rs b/tests/rustdoc-html/hidden/doc-hidden-crate.rs
similarity index 100%
rename from tests/rustdoc-html/doc-hidden-crate.rs
rename to tests/rustdoc-html/hidden/doc-hidden-crate.rs
diff --git a/tests/rustdoc-html/reexport/auxiliary/pub-extern-crate.rs b/tests/rustdoc-html/reexport/auxiliary/pub-extern-crate.rs
new file mode 100644
index 0000000000000..8c89c8d6c76c5
--- /dev/null
+++ b/tests/rustdoc-html/reexport/auxiliary/pub-extern-crate.rs
@@ -0,0 +1,2 @@
+#![crate_name = "inner"]
+pub struct SomeStruct;
diff --git a/tests/rustdoc-html/auxiliary/reexp-stripped.rs b/tests/rustdoc-html/reexport/auxiliary/reexp-stripped.rs
similarity index 100%
rename from tests/rustdoc-html/auxiliary/reexp-stripped.rs
rename to tests/rustdoc-html/reexport/auxiliary/reexp-stripped.rs
diff --git a/tests/rustdoc-html/extern/duplicate-reexports-section-150211.rs b/tests/rustdoc-html/reexport/duplicate-reexports-section-150211.rs
similarity index 100%
rename from tests/rustdoc-html/extern/duplicate-reexports-section-150211.rs
rename to tests/rustdoc-html/reexport/duplicate-reexports-section-150211.rs
diff --git a/tests/rustdoc-html/reexport/hidden-methods.rs b/tests/rustdoc-html/reexport/hidden-methods.rs
new file mode 100644
index 0000000000000..4be81da1cf775
--- /dev/null
+++ b/tests/rustdoc-html/reexport/hidden-methods.rs
@@ -0,0 +1,40 @@
+#![crate_name = "foo"]
+
+#[doc(hidden)]
+pub mod hidden {
+ pub struct Foo;
+
+ impl Foo {
+ #[doc(hidden)]
+ pub fn this_should_be_hidden() {}
+ }
+
+ pub struct Bar;
+
+ impl Bar {
+ fn this_should_be_hidden() {}
+ }
+}
+
+//@ has foo/struct.Foo.html
+// Only `not_hidden` should be present.
+//@ count - '//*[@id="implementations-list"]//*[@class="method"]' 1
+//@ has - '//*[@id="implementations-list"]//*[@class="method"]' 'pub fn not_hidden'
+//@ count - '//*[@id="rustdoc-toc"]/*[@class="block method"]//a' 1
+//@ has - '//*[@id="rustdoc-toc"]/*[@class="block method"]//a' 'not_hidden'
+pub use hidden::Foo;
+
+impl Foo {
+ pub fn not_hidden() {}
+}
+
+//@ has foo/struct.Bar.html
+//@ count - '//*[@id="implementations-list"]//*[@class="method"]' 1
+//@ has - '//*[@id="implementations-list"]//*[@class="method"]' 'pub fn not_hidden'
+//@ count - '//*[@id="rustdoc-toc"]/*[@class="block method"]//a' 1
+//@ has - '//*[@id="rustdoc-toc"]/*[@class="block method"]//a' 'not_hidden'
+pub use hidden::Bar;
+
+impl Bar {
+ pub fn not_hidden() {}
+}
diff --git a/tests/rustdoc-html/redirect.rs b/tests/rustdoc-html/reexport/redirect.rs
similarity index 100%
rename from tests/rustdoc-html/redirect.rs
rename to tests/rustdoc-html/reexport/redirect.rs
diff --git a/tests/rustdoc-html/cap-lints.rs b/tests/rustdoc-ui/lints/cap-lints.rs
similarity index 84%
rename from tests/rustdoc-html/cap-lints.rs
rename to tests/rustdoc-ui/lints/cap-lints.rs
index 30f9be0424c6a..692a63f2f7332 100644
--- a/tests/rustdoc-html/cap-lints.rs
+++ b/tests/rustdoc-ui/lints/cap-lints.rs
@@ -1,9 +1,11 @@
// This should fail a normal compile due to non_camel_case_types,
// It should pass a doc-compile as it only needs to type-check and
// therefore should not concern itself with the lints.
+
+//@ check-pass
+
#[deny(warnings)]
-//@ has cap_lints/struct.Foo.html //* 'Foo'
pub struct Foo {
field: i32,
}