amazon-cloudfront-client-routing-lib 1.0.0

a library to encode and decode dns labels
Documentation
#[cfg(test)]
mod test_encode_request_data {
    use amazon_cloudfront_client_routing_lib::encode_request_data;

    #[test]
    fn validate_encode_with_ipv4() {
        let encoded_label = encode_request_data("85.83.215.126", "B086VX9VMK", "example.com");

        assert_eq!("abfku6xaaaaaaaamotptyubibrji6.example.com", encoded_label);
    }

    #[test]
    fn validate_encode_with_ipv6() {
        let encoded_label = encode_request_data(
            "819e:5c2e:21e4:0094:4805:1635:f8e4:049b",
            "Q9OP1I23",
            "example.com",
        );

        assert_eq!("abydhs4fyq6iaaaykudpmaxncecqs.example.com", encoded_label);
    }

    #[test]
    fn validate_encode_with_abbreviated_ipv6() {
        let encoded_label = encode_request_data("2c0f:f386:9f5b:a3ad::", "ZZAA12TP", "example.com");

        assert_eq!("absyd7tq2pvwaaayipu4qwb2rlz4g.example.com", encoded_label);
    }

    #[test]
    fn validate_encode_with_subdomain_in_fqdn() {
        let encoded_label = encode_request_data(
            "122.71.138.53",
            "12PC5GH7Y0ABCDEFGHIJHJUIOZZAA1",
            "test.example2.com",
        );

        assert_eq!(
            "abhur4kaaaaaaaampbtn52pincn7x.test.example2.com",
            encoded_label
        );
    }

    #[test]
    fn validate_encode_with_path_in_fqdn() {
        let encoded_label = encode_request_data(
            "0319:7db1:f4d6:62ec:10cf:ffe4:4270:d2d5",
            "AC2Q2389",
            "example.com/movie/12ab4c?query=watch",
        );

        assert_eq!(
            "abqggl5wh2nmaaaypv4i33wdvvtdk.example.com/movie/12ab4c?query=watch",
            encoded_label
        );
    }

    #[test]
    fn validate_encode_with_invalid_client_ip() {
        let encoded_label = encode_request_data("122.71", "DP0124QHYT", "example.com");

        assert_eq!("abaaaaaaaaaaaaaaoqysz2z3j45da.example.com", encoded_label);
    }

    #[test]
    fn validate_encode_with_no_cgid() {
        let encoded_label = encode_request_data("46.3.3.135", "", "example.com");

        assert_eq!("abc4aydaaaaaaaamaaaaaaaaaaaaa.example.com", encoded_label);
    }

    #[test]
    fn validate_encode_with_no_fqdn() {
        let encoded_label =
            encode_request_data("6687:1cc9:0e87:2b33:1181:eff2:9a6a:786b", "DF97B6J1O0", "");

        assert_eq!("abwnby4zehioaaaymv5p6exntn7z3.", encoded_label);
    }

    #[test]
    fn validate_encode_with_no_client_ip_no_cgid() {
        let encoded_label = encode_request_data("", "", "example.com");

        assert_eq!("abaaaaaaaaaaaaaaaaaaaaaaaaaaa.example.com", encoded_label);
    }

    #[test]
    fn validate_encode_with_no_client_ip_no_cgid_no_fqdn() {
        let encoded_label = encode_request_data("", "", "");

        assert_eq!("abaaaaaaaaaaaaaaaaaaaaaaaaaaa.", encoded_label);
    }
}