Skip to content

Commit 0675364

Browse files
authored
Merge pull request #9 from jtgeibel/new-body
Add support for changes to `conduit::Body`
2 parents d8260cb + d79b46c commit 0675364

File tree

2 files changed

+19
-21
lines changed

2 files changed

+19
-21
lines changed

Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
[package]
22

33
name = "conduit-static"
4-
version = "0.9.0-alpha.1"
4+
version = "0.9.0-alpha.2"
55
authors = ["[email protected]",
66
"Alex Crichton <[email protected]>"]
77
description = "Middleware for serving static files for conduit"
88
repository = "https://github.com/conduit-rust/conduit-static"
99
license = "MIT"
1010

1111
[dependencies]
12-
conduit = "0.9.0-alpha.1"
12+
conduit = "0.9.0-alpha.2"
1313
conduit-mime-types = "0.7"
1414
time = "0.1"
1515
filetime = "0.2"
1616

1717
[dev-dependencies]
18-
civet = "0.12.0-alpha.2"
19-
conduit-test = "0.9.0-alpha.1"
18+
civet = "0.12.0-alpha.3"
19+
conduit-test = "0.9.0-alpha.2"
2020
tempdir = "0.3"

src/lib.rs

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ extern crate time;
1212
use conduit::{box_error, header, Body, Handler, HandlerResult, RequestExt, Response, StatusCode};
1313
use filetime::FileTime;
1414
use std::fs::File;
15-
use std::io;
1615
use std::path::{Path, PathBuf};
1716

1817
pub struct Static {
@@ -61,7 +60,7 @@ impl Handler for Static {
6160
header::LAST_MODIFIED,
6261
tm.strftime("%a, %d %b %Y %T GMT").unwrap().to_string(),
6362
)
64-
.body(Box::new(file) as Body)
63+
.body(Body::File(file))
6564
.map_err(box_error)
6665
}
6766
}
@@ -71,18 +70,19 @@ fn not_found() -> Response<Body> {
7170
.status(StatusCode::NOT_FOUND)
7271
.header(header::CONTENT_LENGTH, 0)
7372
.header(header::CONTENT_TYPE, "text/plain")
74-
.body(Box::new(io::empty()) as Body)
73+
.body(Body::empty())
7574
.unwrap()
7675
}
7776

7877
#[cfg(test)]
7978
mod tests {
80-
extern crate conduit_test as test;
79+
extern crate conduit_test;
8180

8281
use std::fs::{self, File};
8382
use std::io::prelude::*;
8483
use tempdir::TempDir;
8584

85+
use self::conduit_test::{MockRequest, ResponseExt};
8686
use conduit::{header, Handler, Method, StatusCode};
8787
use Static;
8888

@@ -95,16 +95,14 @@ mod tests {
9595
.unwrap()
9696
.write_all(b"[package]")
9797
.unwrap();
98-
let mut req = test::MockRequest::new(Method::GET, "/Cargo.toml");
99-
let mut res = handler.call(&mut req).ok().expect("No response");
100-
let mut body = Vec::new();
101-
res.body_mut().write_body(&mut body).unwrap();
102-
assert_eq!(body, b"[package]");
98+
let mut req = MockRequest::new(Method::GET, "/Cargo.toml");
99+
let res = handler.call(&mut req).expect("No response");
103100
assert_eq!(
104101
res.headers().get(header::CONTENT_TYPE).unwrap(),
105102
"text/plain"
106103
);
107104
assert_eq!(res.headers().get(header::CONTENT_LENGTH).unwrap(), "9");
105+
assert_eq!(res.into_cow(), "[package]".as_bytes());
108106
}
109107

110108
#[test]
@@ -115,8 +113,8 @@ mod tests {
115113
File::create(&root.join("src/fixture.css")).unwrap();
116114

117115
let handler = Static::new(root.clone());
118-
let mut req = test::MockRequest::new(Method::GET, "/src/fixture.css");
119-
let res = handler.call(&mut req).ok().expect("No response");
116+
let mut req = MockRequest::new(Method::GET, "/src/fixture.css");
117+
let res = handler.call(&mut req).expect("No response");
120118
assert_eq!(res.headers().get(header::CONTENT_TYPE).unwrap(), "text/css");
121119
assert_eq!(res.headers().get(header::CONTENT_LENGTH).unwrap(), "0");
122120
}
@@ -127,8 +125,8 @@ mod tests {
127125
let root = td.path();
128126

129127
let handler = Static::new(root.clone());
130-
let mut req = test::MockRequest::new(Method::GET, "/nope");
131-
let res = handler.call(&mut req).ok().expect("No response");
128+
let mut req = MockRequest::new(Method::GET, "/nope");
129+
let res = handler.call(&mut req).expect("No response");
132130
assert_eq!(res.status(), StatusCode::NOT_FOUND);
133131
}
134132

@@ -140,8 +138,8 @@ mod tests {
140138
fs::create_dir(&root.join("foo")).unwrap();
141139

142140
let handler = Static::new(root.clone());
143-
let mut req = test::MockRequest::new(Method::GET, "/foo");
144-
let res = handler.call(&mut req).ok().expect("No response");
141+
let mut req = MockRequest::new(Method::GET, "/foo");
142+
let res = handler.call(&mut req).expect("No response");
145143
assert_eq!(res.status(), StatusCode::NOT_FOUND);
146144
}
147145

@@ -151,8 +149,8 @@ mod tests {
151149
let root = td.path();
152150
File::create(&root.join("test")).unwrap();
153151
let handler = Static::new(root.clone());
154-
let mut req = test::MockRequest::new(Method::GET, "/test");
155-
let res = handler.call(&mut req).ok().expect("No response");
152+
let mut req = MockRequest::new(Method::GET, "/test");
153+
let res = handler.call(&mut req).expect("No response");
156154
assert_eq!(res.status(), StatusCode::OK);
157155
assert!(res.headers().get(header::LAST_MODIFIED).is_some());
158156
}

0 commit comments

Comments
 (0)