diff --git a/server/tests/test_util/mod.rs b/server/tests/test_util/mod.rs new file mode 100644 index 00000000..cca6744b --- /dev/null +++ b/server/tests/test_util/mod.rs @@ -0,0 +1,22 @@ +use rouille::Request; + +use librojo::web::Server; + +pub trait HttpTestUtil { + fn get_string(&self, url: &str) -> String; +} + +impl HttpTestUtil for Server { + fn get_string(&self, url: &str) -> String { + let info_request = Request::fake_http("GET", url, vec![], vec![]); + let response = self.handle_request(&info_request); + + assert_eq!(response.status_code, 200); + + let (mut reader, _) = response.data.into_reader_and_size(); + let mut body = String::new(); + reader.read_to_string(&mut body).unwrap(); + + body + } +} diff --git a/server/tests/web.rs b/server/tests/web.rs index 8d15f3e1..b1e163a3 100644 --- a/server/tests/web.rs +++ b/server/tests/web.rs @@ -4,30 +4,18 @@ extern crate serde; extern crate librojo; +mod test_util; +use test_util::*; + use std::collections::HashMap; use std::path::PathBuf; -use rouille::Request; - use librojo::{ session::Session, project::Project, web::{Server, WebConfig, ServerInfoResponse}, }; -fn get(server: &Server, url: &str) -> String { - let info_request = Request::fake_http("GET", url, vec![], vec![]); - let response = server.handle_request(&info_request); - - assert_eq!(response.status_code, 200); - - let (mut reader, _) = response.data.into_reader_and_size(); - let mut body = String::new(); - reader.read_to_string(&mut body).unwrap(); - - body -} - #[test] fn empty() { let project_path = { @@ -44,7 +32,7 @@ fn empty() { let server = Server::new(web_config); { - let body = get(&server, "/api/rojo"); + let body = server.get_string("/api/rojo"); let response = serde_json::from_str::(&body).unwrap(); assert_eq!(response.server_id, "0");