humphrey_ws 0.3.3

WebSocket support for the Humphrey web server.
Documentation
use crate::message::Message;
use crate::tests::frame::{FRAME_1_BYTES, FRAME_2_BYTES, STANDALONE_FRAME_BYTES, UNMASKED_BYTES};
use crate::tests::mock_stream::MockStream;

#[test]
fn test_read_single_message() {
    let mut stream = MockStream::with_data(STANDALONE_FRAME_BYTES.to_vec());
    let message = Message::from_stream(&mut stream).unwrap();
    let expected_message = Message::new("hello");
    assert_eq!(message.bytes(), expected_message.bytes());
}

#[test]
fn test_read_fragmented_message() {
    let mut bytes = Vec::with_capacity(23);
    bytes.extend(FRAME_1_BYTES);
    bytes.extend(FRAME_2_BYTES);

    let mut stream = MockStream::with_data(bytes);
    let message = Message::from_stream(&mut stream).unwrap();
    let expected_message = Message::new("hello world");

    assert_eq!(message.bytes(), expected_message.bytes());
}

#[test]
fn test_write_message() {
    let message = Message::new("hello world");
    let bytes = message.to_frame();

    assert_eq!(bytes, UNMASKED_BYTES);
}