1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
//! Tests for `AlgorithmName` parsing.
#![cfg(feature = "alloc")]
use ssh_key::AlgorithmName;
use std::str::FromStr;
#[test]
fn additional_algorithm_name() {
const NAME: &str = "name@example.com";
const CERT_STR: &str = "name-cert-v01@example.com";
let name = AlgorithmName::from_str(NAME).unwrap();
assert_eq!(name.as_str(), NAME);
assert_eq!(name.certificate_type(), CERT_STR);
let name = AlgorithmName::from_certificate_type(CERT_STR).unwrap();
assert_eq!(name.as_str(), NAME);
assert_eq!(name.certificate_type(), CERT_STR);
}
#[test]
fn invalid_algorithm_name() {
const INVALID_NAMES: &[&str] = &[
"nameß@example.com",
"name@example@com",
"name",
"@name",
"name@",
"",
"@",
"a-name-that-is-too-long-but-would-otherwise-be-valid-@example.com",
];
const INVALID_CERT_STRS: &[&str] = &[
"nameß-cert-v01@example.com",
"name-cert-v01@example@com",
"name@example.com",
];
for name in INVALID_NAMES {
assert!(
AlgorithmName::from_str(&name).is_err(),
"{:?} should be an invalid algorithm name",
name
);
}
for name in INVALID_CERT_STRS {
assert!(
AlgorithmName::from_certificate_type(&name).is_err(),
"{:?} should be an invalid certificate str",
name
);
}
}
|