dns-update 0.2.3

Dynamic DNS update (RFC 2136 and cloud) library for Rust
Documentation
use crate::utils::strip_origin_from_name;

#[test]
fn test_strip_origin_from_name() {
    assert_eq!(
        strip_origin_from_name("www.example.com", "example.com", None),
        "www"
    );
    assert_eq!(
        strip_origin_from_name("example.com", "example.com", None),
        "@"
    );
    assert_eq!(
        strip_origin_from_name("api.v1.example.com", "example.com", None),
        "api.v1"
    );
    assert_eq!(
        strip_origin_from_name("example.com", "google.com", None),
        "example.com"
    );
    assert_eq!(
        strip_origin_from_name("example.com", "example.com", Some("")),
        ""
    );
}

#[cfg(feature = "aws-lc-rs")]
#[tokio::test]
async fn test_https_mock() {
    if cfg!(all(feature = "aws-lc-rs", feature = "ring")) {
        panic!("Cannot enable both aws-lc-rs and ring features simultaneously");
    }
    #[cfg(feature = "aws-lc-rs")]
    {
        ::rustls::crypto::aws_lc_rs::default_provider()
            .install_default()
            .expect("Failed to set AWS LC RS provider");
    }
    #[cfg(feature = "ring")]
    {
        ::rustls::crypto::ring::default_provider()
            .install_default()
            .expect("Failed to set ring provider");
    }
    #[cfg(not(any(feature = "aws-lc-rs", feature = "ring")))]
    {
        panic!("No TLS backend feature enabled");
    }
    let server = httpmock::MockServer::start();
    let mock = server.mock(|when, then| {
        when.method(httpmock::Method::GET).path("/test");
        then.status(200).body("hello");
    });
    let client = reqwest::Client::builder()
        .danger_accept_invalid_certs(true)
        .build()
        .unwrap();
    let resp = client
        .get(server.base_url() + "/test")
        .send()
        .await
        .unwrap();
    assert_eq!(resp.status(), 200);
    assert_eq!(resp.text().await.unwrap(), "hello");
    mock.assert_calls(1);
}