use http2::{ Flags,
FrameType,
Parser };
use http2::test::*;
#[test]
fn all_flags() {
let mut v = Vec::new();
pack_u32!(
v,
(
255 ) << 8
| 0x0 );
pack_u8!(v, 0xFF);
pack_u32!(v, 0x7FFFFFFF);
let mut h = DebugHandler::new();
let mut p = Parser::new();
p.resume(&mut h, &v);
assert_eq!(
255,
h.frame_payload_length
);
assert_eq!(
FrameType::from_u8(h.frame_type),
FrameType::Data
);
assert!(Flags::from_u8(h.frame_flags).is_end_headers());
assert!(Flags::from_u8(h.frame_flags).is_end_stream());
assert!(Flags::from_u8(h.frame_flags).is_padded());
assert!(Flags::from_u8(h.frame_flags).is_priority());
assert_eq!(
h.frame_stream_id,
0x7FFFFFFF
);
}
#[test]
fn no_flags() {
let mut v = Vec::new();
pack_u32!(
v,
(
255 ) << 8
| 0x0 );
pack_u8!(v, 0);
pack_u32!(v, 0x7FFFFFFF);
let mut h = DebugHandler::new();
let mut p = Parser::new();
p.resume(&mut h, &v);
assert_eq!(
255,
h.frame_payload_length
);
assert_eq!(
FrameType::from_u8(h.frame_type),
FrameType::Data
);
assert!(Flags::from_u8(h.frame_flags).is_empty());
assert_eq!(
h.frame_stream_id,
0x7FFFFFFF
);
}