0.3.5-alpha.3

This commit is contained in:
2026-09-21 22:55:21 +02:00
parent 5b7939cbd8
commit fd6ffecdf5
11 changed files with 750 additions and 37 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/common/game-realtime-webtransport-lib/unit_tests/webtransport.rs
// version: 1
// version: 2
#[test]
fn certificate_hash_preserves_exact_sha256_bytes() {
@@ -25,6 +25,29 @@ fn client_config_accepts_https_and_rejects_non_secure_schemes() {
}
}
#[test]
fn frame_header_is_big_endian_and_payload_bound_is_enforced() {
let header = match super::frame_header(0x00_01_02_03) {
Ok(value) => value,
Err(error) => panic!("valid frame header rejected: {error}"),
};
assert_eq!(header, [0x00, 0x01, 0x02, 0x03]);
let oversized = super::frame_header(super::PRIMARY_FRAME_MAX_PAYLOAD_SIZE + 1);
match oversized {
Ok(_) => panic!("oversized WebTransport frame unexpectedly accepted"),
Err(error) => assert_eq!(error.kind(), game_realtime_transport_lib::TransportErrorKind::MessageTooLarge),
}
}
#[test]
fn generated_loopback_identity_has_sha256_fingerprint() {
let identity = match super::WebTransportServerIdentity::generate_loopback() {
Ok(value) => value,
Err(error) => panic!("loopback identity generation failed: {error}"),
};
assert_eq!(identity.certificate_hash().as_bytes().len(), super::CERTIFICATE_HASH_SIZE);
}
#[test]
fn injected_identity_rejects_empty_certificate_or_key() {
let missing_certificate = super::WebTransportServerIdentity::from_pkcs8_der(Vec::new(), vec![1]);
@@ -38,12 +61,3 @@ fn injected_identity_rejects_empty_certificate_or_key() {
Err(error) => assert_eq!(error.kind(), game_realtime_transport_lib::TransportErrorKind::InvalidConfiguration),
}
}
#[test]
fn generated_loopback_identity_has_sha256_fingerprint() {
let identity = match super::WebTransportServerIdentity::generate_loopback() {
Ok(value) => value,
Err(error) => panic!("loopback identity generation failed: {error}"),
};
assert_eq!(identity.certificate_hash().as_bytes().len(), super::CERTIFICATE_HASH_SIZE);
}