use libwifi::frame::Frame;
use libwifi::parse_frame;
#[test]
fn test_beacon() {
let payload = [
128, 0, 0, 0, 255, 255, 255, 255, 255, 255, 248, 50, 228, 173, 71, 184, 248, 50, 228, 173, 71, 184, 96, 119, 151, 161, 39, 206, 165, 0, 0, 0, 100, 0, 17, 4, 0, 15, 77, 121, 32, 102, 97, 99, 101, 32, 119, 104, 101, 110, 32, 73, 80, 1, 8, 130, 132, 139, 150, 36, 48, 72, 108, 3, 1, 9, 5, 4, 0, 3, 1, 0, 42, 1, 4, 47, 1, 4, 48, 20, 1, 0, 0, 15, 172, 4, 1, 0, 0, 15, 172, 4, 1, 0, 0, 15, 172, 2, 12, 0, 50, 4, 12,
18, 24, 96, 45, 26, 189, 25, 23, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 61, 22, 9, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 14, 20, 0, 10, 0, 44, 1, 200, 0, 20, 0, 5, 0, 25, 0, 127, 8, 1, 0, 0, 0, 0, 0, 0, 64, 221, 49, 0, 80, 242, 4, 16, 74, 0, 1, 16, 16, 68, 0, 1, 2, 16, 71, 0, 16, 190, 15, 245,
213, 137, 177, 64, 140, 203, 243, 77, 29, 90, 130, 118, 247, 16, 60, 0, 1, 3, 16, 73, 0, 6,
0, 55, 42, 0, 1, 32, 221, 9, 0, 16, 24, 2, 5, 0, 28, 0, 0, 221, 24, 0, 80, 242, 2, 1, 1, 132, 0, 3, 164, 0, 0, 39, 164, 0, 0, 66, 67, 94, 0, 98, 50,
47, 0,
];
let frame = parse_frame(&payload, false).expect("Payload should be valid");
println!("{frame:?}");
assert!(matches!(frame, Frame::Beacon(_)));
if let Frame::Beacon(beacon) = frame {
assert_eq!("My face when IP", beacon.station_info.ssid.unwrap());
}
}
#[test]
fn test_probe_request() {
let payload = [
64, 0, 0, 0, 255, 255, 255, 255, 255, 255, 192, 238, 251, 75, 207, 58, 255, 255, 255, 255, 255, 255, 48, 89, 0, 0, 1, 4, 2, 4, 11, 22, 50, 8, 12, 18, 24, 36, 48, 72, 96, 108, 221, 7, 0, 80, 242, 8, 0,
36, 0, 3, 1, 9, 45, 26, 111, 1, 31, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 191, 12, 178, 97, 128, 51, 254, 255, 134, 1, 254, 255, 134, 1,
];
let frame = parse_frame(&payload, false).expect("Payload should be valid");
println!("{frame:?}");
assert!(matches!(frame, Frame::ProbeRequest(_)));
}
#[test]
fn test_probe_response() {
let payload = [
80, 0, 58, 1, 192, 238, 251, 75, 207, 58, 248, 50, 228, 173, 71, 184, 248, 50, 228, 173, 71, 184, 144, 1, 129, 106, 187, 25, 166, 0, 0, 0, 100, 0, 17, 4, 0, 15, 77, 121, 32, 102, 97, 99, 101, 32, 119, 104, 101, 110, 32, 73, 80, 1, 8, 130, 132, 139, 150, 36, 48, 72, 108, 3, 1, 9, 42, 1, 4, 47, 1, 4, 48, 20, 1, 0, 0,
15, 172, 4, 1, 0, 0, 15, 172, 4, 1, 0, 0, 15, 172, 2, 12, 0, 50, 4, 12, 18, 24, 96, 45, 26,
189, 25, 23, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61,
22, 9, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 14, 20, 0, 10, 0,
44, 1, 200, 0, 20, 0, 5, 0, 25, 0, 127, 8, 1, 0, 0, 0, 0, 0, 0, 64, 221, 172, 0, 80, 242,
4, 16, 74, 0, 1, 16, 16, 68, 0, 1, 2, 16, 59, 0, 1, 3, 16, 71, 0, 16, 190, 15, 245, 213,
137, 177, 64, 140, 203, 243, 77, 29, 90, 130, 118, 247, 16, 33, 0, 21, 65, 83, 85, 83, 84,
101, 75, 32, 67, 111, 109, 112, 117, 116, 101, 114, 32, 73, 110, 99, 46, 16, 35, 0, 28, 87,
105, 45, 70, 105, 32, 80, 114, 111, 116, 101, 99, 116, 101, 100, 32, 83, 101, 116, 117,
112, 32, 82, 111, 117, 116, 101, 114, 16, 36, 0, 7, 82, 84, 45, 78, 54, 54, 85, 16, 66, 0,
17, 102, 56, 58, 51, 50, 58, 101, 52, 58, 97, 100, 58, 52, 55, 58, 98, 56, 16, 84, 0, 8, 0,
6, 0, 80, 242, 4, 0, 1, 16, 17, 0, 7, 82, 84, 45, 78, 54, 54, 85, 16, 8, 0, 2, 32, 8, 16,
60, 0, 1, 3, 16, 73, 0, 6, 0, 55, 42, 0, 1, 32, 221, 9, 0, 16, 24, 2, 5, 0, 28, 0, 0, 221,
24, 0, 80, 242, 2, 1, 1, 132, 0, 3, 164, 0, 0, 39, 164, 0, 0, 66, 67, 94, 0, 98, 50, 47, 0,
];
let frame = parse_frame(&payload, false).expect("Payload should be valid");
println!("{frame:?}");
assert!(matches!(frame, Frame::ProbeResponse(_)));
if let Frame::ProbeResponse(response) = frame {
assert_eq!("My face when IP", response.station_info.ssid.unwrap());
}
}
#[test]
fn test_authentication() {
let _payload = [
176, 0, 58, 1, 248, 50, 228, 173, 71, 184, 192, 238, 251, 75, 207, 58, 248, 50, 228, 173, 71, 184, 0, 147, 0, 0, 1, 0, 0, 0,
];
}
#[test]
fn test_deauthentication() {
let _payload = [
192, 0, 58, 1, 248, 50, 228, 173, 71, 184, 192, 238, 251, 75, 207, 58, 248, 50, 228, 173, 71, 184, 224, 146, 3, 0,
];
}