From 010d020ba1938b04e187a003e33529d1a2af46f7 Mon Sep 17 00:00:00 2001 From: Johann150 Date: Sun, 7 Nov 2021 15:24:01 +0100 Subject: [PATCH] add tests for directory listing --- tests/data/dirlist-preamble/#yeah | 0 .../dirlist-preamble/.directory-listing-ok | 1 + tests/data/dirlist-preamble/a | 0 tests/data/dirlist-preamble/b | 0 tests/data/dirlist-preamble/huh? | 0 tests/data/dirlist-preamble/wao spaces | 0 tests/data/dirlist/.directory-listing-ok | 0 tests/data/dirlist/a | 0 tests/data/dirlist/b | 0 tests/tests.rs | 50 +++++++++++++++++++ 10 files changed, 51 insertions(+) create mode 100644 tests/data/dirlist-preamble/#yeah create mode 100644 tests/data/dirlist-preamble/.directory-listing-ok create mode 100644 tests/data/dirlist-preamble/a create mode 100644 tests/data/dirlist-preamble/b create mode 100644 tests/data/dirlist-preamble/huh? create mode 100644 tests/data/dirlist-preamble/wao spaces create mode 100644 tests/data/dirlist/.directory-listing-ok create mode 100644 tests/data/dirlist/a create mode 100644 tests/data/dirlist/b diff --git a/tests/data/dirlist-preamble/#yeah b/tests/data/dirlist-preamble/#yeah new file mode 100644 index 0000000..e69de29 diff --git a/tests/data/dirlist-preamble/.directory-listing-ok b/tests/data/dirlist-preamble/.directory-listing-ok new file mode 100644 index 0000000..2f67267 --- /dev/null +++ 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 new file mode 100644 index 0000000..e69de29 diff --git a/tests/data/dirlist-preamble/b b/tests/data/dirlist-preamble/b new file mode 100644 index 0000000..e69de29 diff --git a/tests/data/dirlist-preamble/huh? b/tests/data/dirlist-preamble/huh? new file mode 100644 index 0000000..e69de29 diff --git a/tests/data/dirlist-preamble/wao spaces b/tests/data/dirlist-preamble/wao spaces new file mode 100644 index 0000000..e69de29 diff --git a/tests/data/dirlist/.directory-listing-ok b/tests/data/dirlist/.directory-listing-ok new file mode 100644 index 0000000..e69de29 diff --git a/tests/data/dirlist/a b/tests/data/dirlist/a new file mode 100644 index 0000000..e69de29 diff --git a/tests/data/dirlist/b b/tests/data/dirlist/b new file mode 100644 index 0000000..e69de29 diff --git a/tests/tests.rs b/tests/tests.rs index 2ea4433..5cba88a 100644 --- 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()),); + } +}