ZeroTierOne/zeroidc/vendor/openidconnect/tests/rp_certification_dynamic.rs

147 lines
4.6 KiB
Rust

#![allow(clippy::cognitive_complexity)]
extern crate env_logger;
#[macro_use]
extern crate log;
extern crate openidconnect;
#[macro_use]
extern crate pretty_assertions;
extern crate url;
use rp_common::{
get_provider_metadata, init_log, issuer_url, register_client, CERTIFICATION_BASE_URL, RP_NAME,
};
#[macro_use]
mod rp_common;
#[test]
#[ignore]
fn rp_discovery_openid_configuration() {
const TEST_ID: &str = "rp-discovery-openid-configuration";
init_log(TEST_ID);
let _issuer_url = issuer_url(TEST_ID);
let provider_metadata = get_provider_metadata(TEST_ID);
macro_rules! log_field {
($field:ident) => {
log_container_field!(provider_metadata.$field);
};
}
log_info!(
"Successfully retrieved provider metadata from {:?}",
_issuer_url
);
log_field!(issuer);
log_field!(authorization_endpoint);
log_field!(token_endpoint);
log_field!(userinfo_endpoint);
log_field!(jwks_uri);
log_field!(registration_endpoint);
log_field!(scopes_supported);
log_field!(response_types_supported);
log_field!(response_modes_supported);
log_field!(grant_types_supported);
log_field!(acr_values_supported);
log_field!(subject_types_supported);
log_field!(id_token_signing_alg_values_supported);
log_field!(id_token_encryption_alg_values_supported);
log_field!(id_token_encryption_enc_values_supported);
log_field!(userinfo_signing_alg_values_supported);
log_field!(userinfo_encryption_alg_values_supported);
log_field!(userinfo_encryption_enc_values_supported);
log_field!(request_object_signing_alg_values_supported);
log_field!(request_object_encryption_alg_values_supported);
log_field!(request_object_encryption_enc_values_supported);
log_field!(token_endpoint_auth_methods_supported);
log_field!(token_endpoint_auth_signing_alg_values_supported);
log_field!(display_values_supported);
log_field!(claim_types_supported);
log_field!(claims_supported);
log_field!(service_documentation);
log_field!(claims_locales_supported);
log_field!(ui_locales_supported);
log_field!(claims_parameter_supported);
log_field!(request_parameter_supported);
log_field!(request_uri_parameter_supported);
log_field!(require_request_uri_registration);
log_field!(op_policy_uri);
log_field!(op_tos_uri);
log_debug!("Provider metadata: {:?}", provider_metadata);
log_info!("SUCCESS");
}
#[test]
#[ignore]
fn rp_registration_dynamic() {
const TEST_ID: &str = "rp-registration-dynamic";
init_log(TEST_ID);
let _issuer_url = issuer_url(TEST_ID);
let provider_metadata = get_provider_metadata(TEST_ID);
let registration_response = register_client(&provider_metadata, |reg| reg);
macro_rules! log_field {
($field:ident) => {
log_container_field!(registration_response.$field);
};
}
log_field!(client_id);
log_field!(client_secret);
log_field!(registration_access_token);
log_field!(registration_client_uri);
log_field!(client_id_issued_at);
log_field!(client_secret_expires_at);
log_field!(redirect_uris);
log_field!(response_types);
log_field!(grant_types);
log_field!(application_type);
log_field!(contacts);
log_field!(client_name);
log_field!(logo_uri);
log_field!(client_uri);
log_field!(policy_uri);
log_field!(tos_uri);
log_field!(jwks_uri);
log_field!(jwks);
log_field!(sector_identifier_uri);
log_field!(subject_type);
log_field!(id_token_signed_response_alg);
log_field!(id_token_encrypted_response_alg);
log_field!(id_token_encrypted_response_enc);
log_field!(userinfo_signed_response_alg);
log_field!(userinfo_encrypted_response_alg);
log_field!(userinfo_encrypted_response_enc);
log_field!(request_object_signing_alg);
log_field!(request_object_encryption_alg);
log_field!(request_object_encryption_enc);
log_field!(token_endpoint_auth_method);
log_field!(token_endpoint_auth_signing_alg);
log_field!(default_max_age);
log_field!(require_auth_time);
log_field!(default_acr_values);
log_field!(initiate_login_uri);
log_field!(request_uris);
log_debug!("Registration response: {:?}", registration_response);
assert_eq!(
format!(
"{}/{}/registration?client_id={}",
CERTIFICATION_BASE_URL,
RP_NAME,
**registration_response.client_id()
),
registration_response
.registration_client_uri()
.unwrap()
.to_string()
);
log_info!("SUCCESS");
}