#![cfg(unix)]
extern crate tiny_http;
use std::{
io::{Read, Write},
os::unix::net::UnixStream,
path::{Path, PathBuf},
};
#[allow(dead_code)]
mod support;
#[test]
fn unix_basic_handling() {
let server = tiny_http::Server::http_unix(Path::new("/tmp/tiny-http-test.sock")).unwrap();
let path: PathBuf = server
.server_addr()
.to_unix()
.unwrap()
.as_pathname()
.unwrap()
.into();
let mut client = UnixStream::connect(path).unwrap();
write!(
client,
"GET / HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n"
)
.unwrap();
let request = server.recv().unwrap();
assert!(*request.method() == tiny_http::Method::Get);
request
.respond(tiny_http::Response::from_string("hello world".to_owned()))
.unwrap();
server.try_recv().unwrap();
let mut content = String::new();
client.read_to_string(&mut content).unwrap();
assert!(content.ends_with("hello world"));
}