.and(warp::ws())
.map(|ws: warp::ws::Ws| { ws.on_upgrade(ws_rev_connected) });
+ let static_dir = warp::path("dir")
+ .and(warp::fs::dir("../static"));
+
hello
.or(ws_echo)
.or(ws_rev)
+ .or(static_dir)
.with(warp::log("warp-server"))
}
client.send(warp::ws::Message::close()).await;
client.recv_closed().await.unwrap();
}
+
+ #[tokio::test]
+ async fn test_static_dir() {
+ let res = warp::test::request()
+ .path("/dir/plain.txt")
+ .reply(&super::api())
+ .await;
+ assert_eq!(res.status(), 200);
+ assert_eq!(res.body(), "Hello world! This is uncompressed text.\n");
+
+ // subdir
+ let res = warp::test::request()
+ .path("/dir/dir1/optzip.txt")
+ .reply(&super::api())
+ .await;
+ assert_eq!(res.status(), 200);
+ assert_eq!(res.body(), "This file is available uncompressed or compressed\n\
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n");
+
+ // fs::dir does not support transparent decompression
+ let res = warp::test::request()
+ .path("/dir/onlycompressed.txt")
+ .reply(&super::api())
+ .await;
+ assert_eq!(res.status(), 404);
+ }
}