openauth-core 0.0.3

Core types and primitives for OpenAuth.
Documentation
use openauth_core::utils::fetch_metadata::is_browser_fetch_request;
use openauth_core::utils::url::normalize_pathname;

#[test]
fn normalize_pathname_removes_base_path_and_trailing_slash() {
    assert_eq!(
        normalize_pathname(
            "http://localhost:3000/api/auth/sso/saml2/callback/provider1/",
            "/api/auth",
        ),
        "/sso/saml2/callback/provider1"
    );
}

#[test]
fn normalize_pathname_returns_root_for_exact_base_path_match() {
    assert_eq!(
        normalize_pathname("http://localhost:3000/api/auth", "/api/auth"),
        "/"
    );
}

#[test]
fn normalize_pathname_does_not_match_partial_base_path() {
    assert_eq!(
        normalize_pathname("http://localhost:3000/api/authevil/session", "/api/auth"),
        "/api/authevil/session"
    );
}

#[test]
fn normalize_pathname_returns_root_for_invalid_url() {
    assert_eq!(normalize_pathname("not a url", "/api/auth"), "/");
}

#[test]
fn is_browser_fetch_request_returns_true_for_cors() {
    assert!(is_browser_fetch_request(Some("cors")));
}

#[test]
fn is_browser_fetch_request_returns_false_for_navigation() {
    assert!(!is_browser_fetch_request(Some("navigate")));
}

#[test]
fn is_browser_fetch_request_returns_false_without_metadata() {
    assert!(!is_browser_fetch_request(None));
}