()
| 96 | |
| 97 | #[test] |
| 98 | fn parse_token_format() { |
| 99 | // Build a valid token manually: 8-byte key_id, 32-byte secret. |
| 100 | let key_id_bytes = [0xde, 0xad, 0xbe, 0xef, 0xca, 0xfe, 0xba, 0xbe]; |
| 101 | let secret_bytes = [0x42u8; 32]; |
| 102 | let key_id_enc = base64::engine::general_purpose::URL_SAFE_NO_PAD.encode(key_id_bytes); |
| 103 | let secret_enc = base64::engine::general_purpose::URL_SAFE_NO_PAD.encode(secret_bytes); |
| 104 | let token = format!("ndb_{key_id_enc}.{secret_enc}"); |
| 105 | |
| 106 | let (kid, sec) = parse_token(&token).unwrap(); |
| 107 | assert_eq!(kid, key_id_enc); |
| 108 | assert_eq!(sec, secret_enc); |
| 109 | |
| 110 | // Invalid cases. |
| 111 | assert!(parse_token("not_valid").is_none()); |
| 112 | assert!(parse_token("ndb_.emptykeyid").is_none()); |
| 113 | assert!(parse_token("ndb_onlynoseparator").is_none()); |
| 114 | // Underscore separator (no dot) rejected. |
| 115 | assert!(parse_token("ndb_abc123_secretpart").is_none()); |
| 116 | } |
| 117 | |
| 118 | #[test] |
| 119 | fn encode_decode_roundtrip_1000() { |
nothing calls this directly
no test coverage detected