src/api2/types.rs: add regression test for PROXMOX_USER_ID_SCHEMA
This commit is contained in:
parent
ae62c4fe59
commit
ff620a3d1a
@ -218,3 +218,53 @@ pub struct SnapshotListItem {
|
|||||||
#[serde(skip_serializing_if="Option::is_none")]
|
#[serde(skip_serializing_if="Option::is_none")]
|
||||||
pub size: Option<u64>,
|
pub size: Option<u64>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Regression tests
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_proxmox_user_id_schema() -> Result<(), Error> {
|
||||||
|
|
||||||
|
let schema = PROXMOX_USER_ID_SCHEMA;
|
||||||
|
|
||||||
|
let invalid_user_ids = [
|
||||||
|
"x", // too short
|
||||||
|
"xx", // too short
|
||||||
|
"xxx", // no realm
|
||||||
|
"xxx@", // no realm
|
||||||
|
"xx x@test", // contains space
|
||||||
|
"xx\nx@test", // contains control character
|
||||||
|
"x:xx@test", // contains collon
|
||||||
|
"xx/x@test", // contains slash
|
||||||
|
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@test", // too long
|
||||||
|
];
|
||||||
|
|
||||||
|
for name in invalid_user_ids.iter() {
|
||||||
|
if let Ok(_) = parse_simple_value(name, &schema) {
|
||||||
|
bail!("test userid '{}' failed - got Ok() while expection an error.", name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let valid_user_ids = [
|
||||||
|
"xxx@y",
|
||||||
|
"name@y",
|
||||||
|
"xxx@test-it.com",
|
||||||
|
"xxx@_T_E_S_T-it.com",
|
||||||
|
"x_x-x.x@test-it.com",
|
||||||
|
];
|
||||||
|
|
||||||
|
for name in valid_user_ids.iter() {
|
||||||
|
let v = match parse_simple_value(name, &schema) {
|
||||||
|
Ok(v) => v,
|
||||||
|
Err(err) => {
|
||||||
|
bail!("unable to parse userid '{}' - {}", name, err);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if v != serde_json::json!(name) {
|
||||||
|
bail!("unable to parse userid '{}' - got wrong value {:?}", name, v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user