http-fs 2.0.1

HTTP File Service library
Documentation
use http_fs::config::{self, StaticFileConfig, DummyWorker};
use http_fs::{ServeEntry, StaticFiles};

use std::path::Path;

pub struct DirectoryConfig;
impl StaticFileConfig for DirectoryConfig {
    type FileService = config::DefaultConfig;
    type DirService = config::DefaultConfig;

    fn handle_directory(&self, _path: &Path) -> bool {
        true
    }
}

#[test]
fn list_directory() {
    let service = StaticFiles::new(DummyWorker, DirectoryConfig);

    let result = service.serve(Path::new(""));

    let (path, dir) = match result {
        ServeEntry::Directory(path, dir) => (path, dir),
        res => panic!("Unexpected result {:?}", res),
    };

    let result = String::from_utf8(service.list_dir(&path, dir).to_vec()).unwrap();

    assert!(result.contains("Cargo.toml"));

    let result = service.serve(Path::new("src"));

    let (path, dir) = match result {
        ServeEntry::Directory(path, dir) => (path, dir),
        res => panic!("Unexpected result {:?}", res),
    };

    let result = String::from_utf8(service.list_dir(&path, dir).to_vec()).unwrap();

    assert!(result.contains("lib.rs"));
}