.unwrap();
assert_res_ok_body(res, b"Hello rust from TestBrowser 0.1").await;
}
+
+ #[tokio::test]
+ async fn test_static_dir() {
+ let res = super::app()
+ .oneshot(Request::builder().uri("/dir/plain.txt").body(Body::empty()).unwrap())
+ .await
+ .unwrap();
+ assert_res_ok_body(res, b"Hello world! This is uncompressed text.\n").await;
+
+ // transparent .gz lookup, without gzip transfer encoding
+ let res = super::app()
+ .oneshot(Request::builder()
+ .uri("/dir/dir1/optzip.txt")
+ .header("accept-encoding", "deflate")
+ .body(Body::empty()).unwrap())
+ .await
+ .unwrap();
+ assert_eq!(res.status(), StatusCode::OK);
+ // that returns the uncompressed file
+ assert_res_ok_body(res, b"This file is available uncompressed or compressed\n\
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n").await;
+
+ // transparent .gz lookup, with gzip transfer encoding
+ let res = super::app()
+ .oneshot(Request::builder()
+ .uri("/dir/dir1/optzip.txt")
+ .header("accept-encoding", "deflate, gzip")
+ .body(Body::empty()).unwrap())
+ .await
+ .unwrap();
+ assert_eq!(res.status(), StatusCode::OK);
+ let res_bytes: &[u8] = &hyper::body::to_bytes(res.into_body()).await.unwrap();
+ // that returns the compressed file
+ assert_eq!(res_bytes.len(), 63); // file size of ../static/dir1/optzip.txt.gz
+ assert_eq!(res_bytes[0], 31);
+ }
}