1
0
mirror of https://github.com/actix/actix-extras.git synced 2024-11-27 17:22:57 +01:00

tests for default resource

This commit is contained in:
Nikolay Kim 2017-12-06 13:02:53 -08:00
parent c63f058647
commit 8d52e2bbd9

View File

@ -257,3 +257,53 @@ impl<S: 'static> Iterator for Application<S> {
}
}
}
#[cfg(test)]
mod tests {
use std::str::FromStr;
use http::{Method, Version, Uri, HeaderMap, StatusCode};
use super::*;
use handler::ReplyItem;
use httprequest::HttpRequest;
use httpresponse::HttpResponse;
use payload::Payload;
use httpcodes;
impl Reply {
fn msg(self) -> Option<HttpResponse> {
match self.into() {
ReplyItem::Message(resp) => Some(resp),
_ => None,
}
}
}
#[test]
fn test_default_resource() {
let app = Application::new("/")
.resource("/test", |r| r.h(httpcodes::HTTPOk))
.finish();
let req = HttpRequest::new(
Method::GET, Uri::from_str("/test").unwrap(),
Version::HTTP_11, HeaderMap::new(), Payload::empty());
let resp = app.run(req).msg().unwrap();
assert_eq!(resp.status(), StatusCode::OK);
let req = HttpRequest::new(
Method::GET, Uri::from_str("/blah").unwrap(),
Version::HTTP_11, HeaderMap::new(), Payload::empty());
let resp = app.run(req).msg().unwrap();
assert_eq!(resp.status(), StatusCode::NOT_FOUND);
let app = Application::new("/")
.default_resource(|r| r.h(httpcodes::HTTPMethodNotAllowed))
.finish();
let req = HttpRequest::new(
Method::GET, Uri::from_str("/blah").unwrap(),
Version::HTTP_11, HeaderMap::new(), Payload::empty());
let resp = app.run(req).msg().unwrap();
assert_eq!(resp.status(), StatusCode::METHOD_NOT_ALLOWED);
}
}