agate

Simple gemini server for static files
git clone https://github.com/mbrubeck/agate.git
Log | Files | Refs | README

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:
Atests/data/dirlist-preamble/#yeah | 0
Atests/data/dirlist-preamble/.directory-listing-ok | 1+
Atests/data/dirlist-preamble/a | 0
Atests/data/dirlist-preamble/b | 0
Atests/data/dirlist-preamble/huh? | 0
Atests/data/dirlist-preamble/wao spaces | 0
Atests/data/dirlist/.directory-listing-ok | 0
Atests/data/dirlist/a | 0
Atests/data/dirlist/b | 0
Mtests/tests.rs | 50++++++++++++++++++++++++++++++++++++++++++++++++++
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()),); + } +}