From 8ab04b39df2dd550bb376c6e61c573be107c7ca2 Mon Sep 17 00:00:00 2001 From: Nikolay Kim Date: Sun, 29 Oct 2017 15:04:44 -0700 Subject: [PATCH] update tests; clippy warnings --- src/context.rs | 4 +- src/task.rs | 87 ++++++++++++++++++++------------------- src/ws.rs | 4 +- tests/test_httprequest.rs | 2 +- 4 files changed, 49 insertions(+), 48 deletions(-) diff --git a/src/context.rs b/src/context.rs index ae4f6607a..798a480fb 100644 --- a/src/context.rs +++ b/src/context.rs @@ -141,8 +141,8 @@ impl HttpContext where A: Actor + Route { /// Returns drain future pub fn drain(&mut self) -> Drain { - let fut = Rc::new(RefCell::new(DrainFut::new())); - self.stream.push_back(Frame::Drain(fut.clone())); + let fut = Rc::new(RefCell::new(DrainFut::default())); + self.stream.push_back(Frame::Drain(Rc::clone(&fut))); self.modified = true; Drain{ a: PhantomData, inner: fut } } diff --git a/src/task.rs b/src/task.rs index 74bb98b8d..b1486c3ea 100644 --- a/src/task.rs +++ b/src/task.rs @@ -66,14 +66,17 @@ pub struct DrainFut { task: Option, } -impl DrainFut { +impl Default for DrainFut { - pub fn new() -> DrainFut { + fn default() -> DrainFut { DrainFut { drained: false, task: None, } } +} + +impl DrainFut { fn set(&mut self) { self.drained = true; @@ -319,53 +322,51 @@ impl Task { // response is completed if self.frames.is_empty() && self.iostate.is_done() { return Ok(Async::Ready(self.state.is_done())); - } else { - if self.drain.is_empty() { - // poll stream - if self.state == TaskRunningState::Running { - match self.poll() { - Ok(Async::Ready(_)) => { - self.state = TaskRunningState::Done; - } - Ok(Async::NotReady) => (), - Err(_) => return Err(()) + } else if self.drain.is_empty() { + // poll stream + if self.state == TaskRunningState::Running { + match self.poll() { + Ok(Async::Ready(_)) => { + self.state = TaskRunningState::Done; } + Ok(Async::NotReady) => (), + Err(_) => return Err(()) } + } - // use exiting frames - while let Some(frame) = self.frames.pop_front() { - trace!("IO Frame: {:?}", frame); - match frame { - Frame::Message(response) => { - if !self.disconnected { - self.prepare(req, response); + // use exiting frames + while let Some(frame) = self.frames.pop_front() { + trace!("IO Frame: {:?}", frame); + match frame { + Frame::Message(response) => { + if !self.disconnected { + self.prepare(req, response); + } + } + Frame::Payload(Some(chunk)) => { + if !self.disconnected { + if self.prepared.is_some() { + // TODO: add warning, write after EOF + self.encoder.encode(&mut self.buffer, chunk.as_ref()); + } else { + // might be response for EXCEPT + self.buffer.extend_from_slice(chunk.as_ref()) } } - Frame::Payload(Some(chunk)) => { - if !self.disconnected { - if self.prepared.is_some() { - // TODO: add warning, write after EOF - self.encoder.encode(&mut self.buffer, chunk.as_ref()); - } else { - // might be response for EXCEPT - self.buffer.extend_from_slice(chunk.as_ref()) - } - } - }, - Frame::Payload(None) => { - if !self.disconnected && - !self.encoder.encode(&mut self.buffer, [].as_ref()) - { - // TODO: add error "not eof"" - debug!("last payload item, but it is not EOF "); - return Err(()) - } - break - }, - Frame::Drain(fut) => { - self.drain.push(fut); - break + }, + Frame::Payload(None) => { + if !self.disconnected && + !self.encoder.encode(&mut self.buffer, [].as_ref()) + { + // TODO: add error "not eof"" + debug!("last payload item, but it is not EOF "); + return Err(()) } + break + }, + Frame::Drain(fut) => { + self.drain.push(fut); + break } } } diff --git a/src/ws.rs b/src/ws.rs index 359400422..a017f7a97 100644 --- a/src/ws.rs +++ b/src/ws.rs @@ -344,7 +344,7 @@ mod tests { let req = HttpRequest::new(Method::GET, "/".to_owned(), Version::HTTP_11, HeaderMap::new(), String::new()); match handshake(&req) { - Err(err) => assert_eq!(err.status(), StatusCode::METHOD_NOT_ALLOWED), + Err(err) => assert_eq!(err.status(), StatusCode::BAD_REQUEST), _ => panic!("should not happen"), } @@ -354,7 +354,7 @@ mod tests { let req = HttpRequest::new(Method::GET, "/".to_owned(), Version::HTTP_11, headers, String::new()); match handshake(&req) { - Err(err) => assert_eq!(err.status(), StatusCode::METHOD_NOT_ALLOWED), + Err(err) => assert_eq!(err.status(), StatusCode::BAD_REQUEST), _ => panic!("should not happen"), } diff --git a/tests/test_httprequest.rs b/tests/test_httprequest.rs index 6f058443e..ebef5767a 100644 --- a/tests/test_httprequest.rs +++ b/tests/test_httprequest.rs @@ -73,7 +73,7 @@ fn test_request_query() { assert_eq!(req.query_string(), "id=test"); let query = req.query(); - assert_eq!(query.get("id").unwrap(), "test"); + assert_eq!(&query["id"], "test"); } #[test]