From d2a160a0d3daf0d9d0fc5fff23a16c11dc796d15 Mon Sep 17 00:00:00 2001 From: Sebastian Urban Date: Thu, 8 Nov 2018 16:25:06 +0100 Subject: [PATCH] Websocket continuation tests --- tests/test_ws.rs | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/tests/test_ws.rs b/tests/test_ws.rs index 5a0ce204f..030c428cb 100644 --- a/tests/test_ws.rs +++ b/tests/test_ws.rs @@ -147,6 +147,31 @@ fn test_large_text() { } } +#[test] +fn test_continuation_text() { + let data1 = rand::thread_rng() + .sample_iter(&Alphanumeric) + .take(10_000) + .collect::(); + let data2 = rand::thread_rng() + .sample_iter(&Alphanumeric) + .take(10_000) + .collect::(); + let data = data1.clone() + &data2; + + let mut srv = test::TestServer::new(|app| app.handler(|req| ws::start(req, Ws))); + let (mut reader, mut writer) = srv.ws().unwrap(); + + for _ in 0..100 { + writer.text_part(data1.clone(), false); + writer.text_part(data2.clone(), true); + + let (item, r) = srv.execute(reader.into_future()).unwrap(); + reader = r; + assert_eq!(item, Some(ws::Message::Text(data.clone()))); + } +} + #[test] fn test_large_bin() { let data = rand::thread_rng() @@ -165,6 +190,31 @@ fn test_large_bin() { } } +#[test] +fn test_continuation_binary() { + let data1 = rand::thread_rng() + .sample_iter(&Alphanumeric) + .take(10_000) + .collect::(); + let data2 = rand::thread_rng() + .sample_iter(&Alphanumeric) + .take(10_000) + .collect::(); + let data = data1.clone() + &data2; + + let mut srv = test::TestServer::new(|app| app.handler(|req| ws::start(req, Ws))); + let (mut reader, mut writer) = srv.ws().unwrap(); + + for _ in 0..100 { + writer.binary_part(data1.clone(), false); + writer.binary_part(data2.clone(), true); + + let (item, r) = srv.execute(reader.into_future()).unwrap(); + reader = r; + assert_eq!(item, Some(ws::Message::Binary(Binary::from(data.clone())))); + } +} + #[test] fn test_client_frame_size() { let data = rand::thread_rng()