commit 010d020ba1938b04e187a003e33529d1a2af46f7
parent d10c5122531ac3e7297bd14834cb7bdcd46648ac
Author: Johann150 <johann.galle@protonmail.com>
Date: Sun, 7 Nov 2021 15:24:01 +0100
add tests for directory listing
Diffstat:
10 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/tests/data/dirlist-preamble/#yeah b/tests/data/dirlist-preamble/#yeah
diff --git a/tests/data/dirlist-preamble/.directory-listing-ok b/tests/data/dirlist-preamble/.directory-listing-ok
@@ -0,0 +1 @@
+This is a directory listing
diff --git a/tests/data/dirlist-preamble/a b/tests/data/dirlist-preamble/a
diff --git a/tests/data/dirlist-preamble/b b/tests/data/dirlist-preamble/b
diff --git a/tests/data/dirlist-preamble/huh? b/tests/data/dirlist-preamble/huh?
diff --git a/tests/data/dirlist-preamble/wao spaces b/tests/data/dirlist-preamble/wao spaces
diff --git a/tests/data/dirlist/.directory-listing-ok b/tests/data/dirlist/.directory-listing-ok
diff --git a/tests/data/dirlist/a b/tests/data/dirlist/a
diff --git a/tests/data/dirlist/b b/tests/data/dirlist/b
diff --git a/tests/tests.rs b/tests/tests.rs
@@ -669,3 +669,53 @@ mod multicert {
server.stop().unwrap();
}
}
+
+mod directory_listing {
+ use super::*;
+
+ #[test]
+ /// - shows directory listing when enabled
+ /// - shows directory listing preamble correctly
+ /// - encodes link URLs correctly
+ fn with_preamble() {
+ let page = get(
+ &["--addr", "[::]:1990", "--content", "dirlist-preamble"],
+ addr(1990),
+ "gemini://localhost/",
+ )
+ .expect("could not get page");
+
+ assert_eq!(
+ page.header,
+ Header {
+ status: Status::Success,
+ meta: "text/gemini".into(),
+ }
+ );
+
+ assert_eq!(
+ page.body,
+ Some("This is a directory listing\n=> %23yeah #yeah\n=> a\n=> b\n=> huh%3F huh?\n=> wao%20spaces wao spaces\n".into())
+ );
+ }
+
+ #[test]
+ fn empty_preamble() {
+ let page = get(
+ &["--addr", "[::]:1991", "--content", "dirlist"],
+ addr(1991),
+ "gemini://localhost/",
+ )
+ .expect("could not get page");
+
+ assert_eq!(
+ page.header,
+ Header {
+ status: Status::Success,
+ meta: "text/gemini".into(),
+ }
+ );
+
+ assert_eq!(page.body, Some("=> a\n=> b\n".into()),);
+ }
+}