From c3afb4c69f26cdfce2097464387c0d51c474feb8 Mon Sep 17 00:00:00 2001 From: Madeline Shao Date: Wed, 27 Aug 2025 23:50:27 +0000 Subject: [PATCH 1/2] fix namespace validation logic --- src/env.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/env.rs b/src/env.rs index d9456ca..67353fa 100644 --- a/src/env.rs +++ b/src/env.rs @@ -196,7 +196,7 @@ impl Env { } label .chars() - .all(|c| (c.is_ascii_lowercase() && c.is_ascii_alphanumeric()) || c == '-') + .all(|c| (c.is_ascii_lowercase() || c.is_ascii_digit()) || c == '-') && label.chars().next().unwrap().is_ascii_alphanumeric() && label.chars().last().unwrap().is_ascii_alphanumeric() } From 9dd8e91e6875121e928b00179614d8e3c58cebb5 Mon Sep 17 00:00:00 2001 From: Madeline Shao Date: Thu, 28 Aug 2025 00:35:36 +0000 Subject: [PATCH 2/2] unit test --- src/env.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/env.rs b/src/env.rs index 67353fa..a819d3d 100644 --- a/src/env.rs +++ b/src/env.rs @@ -637,4 +637,32 @@ mod tests { assert_eq!(exp4.expansion, None); assert_eq!(exp4.rest, "x"); } + + #[test] + fn test_validate_rfc_1123_label() { + // Valid cases + assert!(Env::validate_rfc_1123_label("valid")); + assert!(Env::validate_rfc_1123_label("valid-name")); + assert!(Env::validate_rfc_1123_label("valid-123")); + assert!(Env::validate_rfc_1123_label("123-valid")); + assert!(Env::validate_rfc_1123_label("a")); + assert!(Env::validate_rfc_1123_label("1")); + assert!(Env::validate_rfc_1123_label("abc-123-def")); + + // Invalid cases - empty or too long + assert!(!Env::validate_rfc_1123_label("")); + assert!(!Env::validate_rfc_1123_label(&"a".repeat(64))); // Max length is 63 + + // Invalid cases - starts or ends with hyphen + assert!(!Env::validate_rfc_1123_label("-invalid")); + assert!(!Env::validate_rfc_1123_label("invalid-")); + assert!(!Env::validate_rfc_1123_label("-")); + + // Invalid cases - contains uppercase or invalid characters + assert!(!Env::validate_rfc_1123_label("Invalid")); + assert!(!Env::validate_rfc_1123_label("invalid_name")); + assert!(!Env::validate_rfc_1123_label("invalid.name")); + assert!(!Env::validate_rfc_1123_label("invalid@name")); + assert!(!Env::validate_rfc_1123_label("invalid name")); + } }