76 lines · 2.3 KB · Rust
RawDownload
use gix_url::Scheme; use crate::parse::{assert_url, assert_url_roundtrip, url, url_with_pass}; #[test]fn username_expansion_is_unsupported() -> crate::Result {    assert_url_roundtrip(        "http://example.com/~byron/hello",        url(Scheme::Http, None, "example.com", None, b"/~byron/hello"),    )} #[test]fn empty_user_cannot_roundtrip() -> crate::Result {    let actual = gix_url::parse("http://@example.com/~byron/hello".into())?;    let expected = url(Scheme::Http, "", "example.com", None, b"/~byron/hello");    assert_eq!(actual, expected);    assert_eq!(        actual.to_bstring(),        "http://example.com/~byron/hello",        "we cannot differentiate between empty user and no user"    );    Ok(())} #[test]fn username_and_password() -> crate::Result {    assert_url_roundtrip(        "http://user:password@example.com/~byron/hello",        url_with_pass(Scheme::Http, "user", "password", "example.com", None, b"/~byron/hello"),    )} #[test]fn username_and_password_and_port() -> crate::Result {    assert_url_roundtrip(        "http://user:password@example.com:8080/~byron/hello",        url_with_pass(Scheme::Http, "user", "password", "example.com", 8080, b"/~byron/hello"),    )} #[test]fn only_password() -> crate::Result {    assert_url_roundtrip(        "http://:password@example.com/~byron/hello",        url_with_pass(Scheme::Http, "", "password", "example.com", None, b"/~byron/hello"),    )} #[test]fn username_and_empty_password() -> crate::Result {    let actual = gix_url::parse("http://user:@example.com/~byron/hello".into())?;    let expected = url_with_pass(Scheme::Http, "user", "", "example.com", None, b"/~byron/hello");    assert_eq!(actual, expected);    assert_eq!(        actual.to_bstring(),        "http://user@example.com/~byron/hello",        "an empty password appears like no password to us - fair enough"    );    Ok(())} #[test]fn secure() -> crate::Result {    assert_url_roundtrip(        "https://github.com/byron/gitoxide",        url(Scheme::Https, None, "github.com", None, b"/byron/gitoxide"),    )} #[test]fn http_missing_path() -> crate::Result {    assert_url_roundtrip("http://host.xz/", url(Scheme::Http, None, "host.xz", None, b"/"))?;    assert_url("http://host.xz", url(Scheme::Http, None, "host.xz", None, b"/"))?;    Ok(())}