Skip to content

SDKS-3735 Fix CI

SDKS-3735 Fix CI #733

GitHub Actions / Unit tests results succeeded Jan 28, 2025 in 0s

1093 passed, 0 failed and 28 skipped

Tests passed successfully

✅ test-report.xml

1121 tests were completed in 495s with 1093 passed, 0 failed and 28 skipped.

Test suite Passed Failed Skipped Time
All tests 0ms
FRAuthenticatorTests.xctest 307✅ 63s
FRAuthTests.xctest 553✅ 16⚪ 161s
FRCaptchaEnterpriseTests.xctest 9✅ 109ms
FRCoreTests.xctest 87✅ 2⚪ 8s
FRDeviceBindingTests.xctest 79✅ 10⚪ 550ms
FRFacebookSignInTests.xctest 2✅ 143ms
FRGoogleSignInTests.xctest 2✅ 78ms
FRProximityTests.xctest 26✅ 2s
PingProtectTests.xctest 28✅ 134ms

✅ FRAuthenticatorTests.xctest

AccountTests
  ✅ test_01_account_init_success()
  ✅ test_02_account_init_with_optional_params_success()
  ✅ test_03_account_archive_obj()
  ✅ test_04_account_time_added_timestamp()
  ✅ test_05_codable_serialization()
  ✅ test_06_json_string_serialization()
AuthenticatorManagerTests
  ✅ test32_get_all_notifications()
  ✅ test_01_authenticator_manager_init()
  ✅ test_02_account_store_operation()
  ✅ test_03_multiple_accounts_store_operation()
  ✅ test_04_store_account_fail()
  ✅ test_05_store_existing_account()
  ✅ test_06_remove_account_fail()
  ✅ test_07_store_invalid_oath_qrcode()
  ✅ test_08_store_hotp_oath_qrcode()
  ✅ test_09_store_hotp_oath_qrcode_fail()
  ✅ test_10_store_hotp_oath_qrcode_fail_for_duplication()
  ✅ test_11_store_totp_oath_qrcode()
  ✅ test_12_store_totp_oath_qrcode_fail()
  ✅ test_13_store_totp_oath_qrcode_fail_for_duplication()
  ✅ test_14_store_push_qrcode_fail_with_invaid_host()
  ✅ test_15_store_push_qrcode_successful_registration_request()
  ✅ test_16_store_push_qrcode_failed_registration_request()
  ✅ test_17_store_push_qrcode_successful_registration_request_failed_on_storage()
  ✅ test_18_store_push_qrcode_registration_request_failed_with_duplication()
  ✅ test_19_create_mechanism_from_uri_invalid_type()
  ✅ test_20_create_mechanism_from_uri_topt_success()
  ✅ test_21_create_mechanism_from_uri_topt_failure()
  ✅ test_22_create_mechanism_from_uri_hopt_success()
  ✅ test_23_create_mechanism_from_uri_hopt_failure()
  ✅ test_24_create_mechanism_from_uri_push_success()
  ✅ test_25_create_mechanism_from_uri_push_failure()
  ✅ test_26_remove_mechanism_success()
  ✅ test_27_remove_mechanism_failure()
  ✅ test_28_remove_push_mechanism_success()
  ✅ test_29_remove_push_mechanism_failure()
  ✅ test_30_remove_push_account_success()
  ✅ test_31_remove_notification_success()
  ✅ test_33_account_auto_lock_operation_policy_pass()
  ✅ test_34_account_auto_lock_operation_policy_fail()
  ✅ test_35_account_unlock_operation()
  ✅ test_36_account_lock_operation()
  ✅ test_37_account_lock_operation_fail_already_locked()
  ✅ test_38_account_lock_operation_fail_invalid_policy()
  ✅ test_39_account_unlock_operation_fail()
  ✅ test_40_create_mechanism_from_uri_push_oath_success()
  ✅ test_41_create_mechanism_from_uri_policy_evaluation_failure()
  ✅ test_42_create_mechanism_from_uri_policy_evaluation_success()
  ✅ test_43_generate_hotp_fail_account_locked()
  ✅ test_44_generate_totp_fail_account_locked()
  ✅ test_45_push_auth_fail_account_locked()
Base32Tests
  ✅ test_01_base32_encode()
  ✅ test_02_base32_decode()
  ✅ test_03_base32_require_padding()
  ✅ test_04_base32_special_chars()
CryptoErrorTests
  ✅ test_01_domain()
  ✅ test_02_invalid_param()
  ✅ test_03_fail_to_convert_data()
  ✅ test_04_invalid_jwt()
  ✅ test_05_unsupported_jwt_type()
CryptoTests
  ✅ test_01_test_sign_given_challenge()
  ✅ test_02_test_sign_with_url_unsafe_challenge()
  ✅ test_03_test_parse_secret_successful()
  ✅ test_04_test_parse_invalid_secret()
FRAClientOATHMechanismAlgorithmTests
  ✅ test_01_hotp_no_algorithm()
  ✅ test_02_hotp_sha1_algorithm()
  ✅ test_03_hotp_sha224_algorithm()
  ✅ test_04_hotp_sha256_algorithm()
  ✅ test_05_hotp_sha384_algorithm()
  ✅ test_06_hotp_sha512_algorithm()
  ✅ test_07_hotp_md5_algorithm()
  ✅ test_08_hotp_invalid_algorithm()
  ✅ test_09_totp_no_algorithm()
  ✅ test_10_totp_sha1_algorithm()
  ✅ test_11_totp_sha224_algorithm()
  ✅ test_12_totp_sha256_algorithm()
  ✅ test_13_totp_sha384_algorithm()
  ✅ test_14_totp_md5_algorithm()
  ✅ test_14_totp_sha512_algorithm()
  ✅ test_15_totp_invalid_algorithm()
  ✅ test_16_totp_invalid_digits()
FRAClientTests
  ✅ test_01_storage_clinet_changed()
  ✅ test_02_storage_client_changed_after_start()
  ✅ test_03_store_multiple_mechanisms_with_same_account_and_fail_for_duplication()
  ✅ test_04_account_removal_from_previous_test()
  ✅ test_05_push_mechanism_tests()
  ✅ test_06_remove_mechanism_notification()
  ✅ test_07_get_all_notifications_for_mechanism()
  ✅ test_08_get_all_notifications()
  ✅ test_09_get_account_from_mechanism()
  ✅ test_10_get_push_mechanism_from_notification()
  ✅ test_13_store_combined_mechanisms_with_same_oath_account_and_fail()
  ✅ test_14_store_combined_mechanisms_with_same_push_account_and_fail()
FRAErrorTests
  ✅ test_01_domain()
  ✅ test_02_invalid_state_for_changing_storage()
FRAPolicyEvaluatorTests
  ✅ test_01_register_single_policy()
  ✅ test_02_register_multiple_policies()
  ✅ test_03_register_multiple_policies_override_true()
  ✅ test_04_register_multiple_policies_override_false()
  ✅ test_05_register_empty_override_false()
  ✅ test_06_register_empty_override_true()
  ✅ test_07_register_same_policy_twice()
  ✅ test_08_register_invalid_policy_fail()
  ✅ test_09_evaluate_uri_successful_when_policy_registered()
  ✅ test_10_evaluate_uri_successful_when_failure_policy_not_registered()
  ✅ test_11_evaluate_uri_unsuccessful_when_failure_policy_registered()
  ✅ test_12_evaluate_account_successful()
  ✅ test_13_evaluate_account_unsuccessful()
  ✅ test_14_evaluate_account_successful_when_no_policy_registered()
  ✅ test_15_evaluate_account_successful_when_no_policy_attached_to_account()
FRAPushHandlerTests
  ✅ test_01_set_device_token()
  ✅ test_02_set_invalid_device_token()
  ✅ test_03_fail_to_register_notification()
  ✅ test_04_get_notification_and_pushnotification_object()
  ✅ test_05_parse_invalid_notification_payload_non_jwt()
  ✅ test_06_parse_invalid_notification_payload_missing_message_id()
  ✅ test_07_parse_invalid_notification_payload_missing_load_balancer_key_jwt_claim()
  ✅ test_08_parse_invalid_notification_payload_mechanism_uuid_jwt_claim()
  ✅ test_09_parse_invalid_notification_payload_ttl_jwt_claim()
  ✅ test_10_parse_invalid_notification_payload_challenge_jwt_claim()
  ✅ test_11_pushnotification_already_exist()
FRAuthenticatorTests
  ✅ test_01_init_success()
  ✅ test_02_storage_client_test()
FRCompactJWTTests
  ✅ test_01_create_and_verify_jwt()
  ✅ test_02_verify_jwt()
  ✅ test_03_verify_unpadded_secret()
  ✅ test_04_create_with_unpadded_secret_and_verify_with_padded()
  ✅ test_05_missing_component()
  ✅ test_06_unsupported_jwt_type()
  ✅ test_07_fail_to_convert_data_in_header_segment()
  ✅ test_08_extract_payload_segment()
  ✅ test_09_extract_payload_with_invalid_payload_segment()
  ✅ test_09_extract_payload_with_missing_segment()
  ✅ test_10_extract_payload_with_extra_data()
HOTPCodeGenerationTests
  ✅ test_01_generate_hotp()
  ✅ test_02_generate_hotp_different_key()
  ✅ test_03_generate_hotp_sequence()
  ✅ test_04_generate_hotp_sha1()
  ✅ test_05_generate_hotp_sha224()
  ✅ test_06_generate_hotp_sha256()
  ✅ test_07_generate_hotp_sha384()
  ✅ test_08_generate_hotp_sha384()
  ✅ test_09_generate_hotp_md5()
HOTPMechanismTests
  ✅ test_01_hotpmechanism_init_success()
  ✅ test_02_archive_obj()
  ✅ test_03_hotp_mechanism_identifier()
  ✅ test_04_hotp_mechanism_counter()
  ✅ test_05_hotp_mechanism_default_counter()
  ✅ test_06_hotp_mechanism_invalid_secret()
  ✅ test_07_hotp_mechanism_generate_code_in_sequence()
  ✅ test_08_hotp_mechanism_generate_code_in_sequence_and_failure()
  ✅ test_09_codable_serialization()
  ✅ test_10_json_string_serialization()
  ✅ test_11_hotp_from_combined_mechanism()
KeychainServiceStorageClientTests
  ✅ test_01_init_success()
  ✅ test_02_save_retrieve_and_remove_account()
  ✅ test_03_save_multiple_accounts()
  ✅ test_04_no_account()
  ✅ test_05_update_existing_account()
  ✅ test_06_get_account_with_mechanism()
  ✅ test_07_get_account_with_mechanism_and_verify_remove()
  ✅ test_08_test_save_retrieve_and_remove_notification()
  ✅ test_09_save_push_notifications_and_validate_with_account()
  ✅ test_10_save_push_notifications_and_retreive_with_mechanism_uuid()
  ✅ test_11_is_empty()
  ✅ test_12_retrieve_notification_by_message_id()
MechanismErrorTests
  ✅ test_01_domain()
  ✅ test_02_invalidQRCode()
  ✅ test_03_invalidType()
  ✅ test_04_missingInformation()
  ✅ test_05_invalidInformation()
  ✅ test_06_already_exists()
  ✅ test_07_failed_to_update_information()
MechanismTests
  ✅ test_01_mechanism_serialization()
  ✅ test_02_mechanism_order()
  ✅ test_03_codable_serialization()
NotificationErrorTests
  ✅ test_01_domain()
  ✅ test_02_invalid_payload()
NotificationTests
  ✅ test13_notification_init_missing_interval()
  ✅ test_01_1_notification_new_payload_init_success()
  ✅ test_01_notification_init_success()
  ✅ test_02_notification_init_missing_challenge()
  ✅ test_03_notification_init_missing_load_balance_key()
  ✅ test_04_notification_init_missing_ttl()
  ✅ test_05_notification_init_invalid_ttl()
  ✅ test_06_notification_init_missing_mechanism_uuid()
  ✅ test_07_1_notification_is_pending_with_interval()
  ✅ test_07_notification_is_pending_without_interval()
  ✅ test_08_notification_is_approved()
  ✅ test_09_1_notification_is_expired_with_interval()
  ✅ test_09_2_notification_is_not_expired()
  ✅ test_09_notification_is_denied()
  ✅ test_09_notification_is_expired_without_interval()
  ✅ test_10_1_notification_archive_obj_with_new_payload()
  ✅ test_10_notification_archive_obj()
  ✅ test_11_1_codable_serialization_with_new_payload()
  ✅ test_11_codable_serialization()
  ✅ test_12_1_json_string_serialization_with_new_payload()
  ✅ test_12_json_string_serialization()
  ✅ test_14_notification_init_invalid_interval()
  ✅ test_15_notification_numbers_challenge_array()
  ✅ test_16_init_with_no_pushtype()
  ✅ test_17_init_with_invalid_pushtype()
  ✅ test_18_init_with_biometric_pushtype()
  ✅ test_18_init_with_challenge_pushtype()
OathAlgorithmTests
  ✅ test_00_invalid_algorithm()
  ✅ test_01_sha1()
  ✅ test_02_md5()
  ✅ test_03_sha256()
  ✅ test_04_sha512()
  ✅ test_05_codable_serialization()
OathErrorTests
  ✅ test_01_domain()
  ✅ test_02_invalid_secret()
OathMechanismTests
  ✅ test_01_archive_obj()
  ✅ test_02_codable_serialization()
  ✅ test_03_archive_obj_from_mfa_uri()
OathQRCodeParserTests
  ✅ test_01_parse_hotp_qr_code_success()
  ✅ test_02_parse_topt_qr_code_success()
  ✅ test_03_invalid_scheme()
  ✅ test_03_invalid_type()
  ✅ test_04_parse_topt_qr_code_without_username_success()
  ✅ test_05_parse_topt_qr_code_without_period_username_success()
  ✅ test_06_parse_algorithm_default_sha1()
  ✅ test_07_parse_algorithm_sha1()
  ✅ test_08_parse_algorithm_sha224()
  ✅ test_09_parse_algorithm_sha256()
  ✅ test_10_parse_algorithm_sha384()
  ✅ test_11_parse_algorithm_sha384()
  ✅ test_12_parse_qrcode_with_image_base64_encoded()
  ✅ test_13_parse_qrcode_with_image_plain_text()
  ✅ test_14_parse_qrcode_with_image_url_encoded()
  ✅ test_15_qrcode_no_identity()
  ✅ test_16_totp_no_identity_with_issuer()
  ✅ test_17_totp_single_identity()
  ✅ test_18_invalid_period()
  ✅ test_18_negative_period()
  ✅ test_19_zero_period()
  ✅ test_20_totp_identity_with_issuer()
  ✅ test_21_parse_totp_from_mfa_qrcode_success()
OathTokenCodeTests
  ✅ test_01_success_init()
  ✅ test_02_is_valid_for_future_start()
  ✅ test_03_is_valid_for_expired()
  ✅ test_04_is_valid_for_actual_expired()
  ✅ test_05_hotp()
  ✅ test_06_hotp_is_valid_for_future()
  ✅ test_07_hotp_progress_returns_0()
  ✅ test_08_totp_progress_changes()
  ✅ test_09_codable_serialization()
  ✅ test_10_json_string_serialization()
PushMechanismRegistrationTests
  ✅ test_01_successful_registration()
  ✅ test_02_push_registration_missing_device_token()
  ✅ test_03_push_registration_invalid_jwt()
  ✅ test_04_fail_to_generate_registration_request()
  ✅ test_05_validate_push_registration_request()
PushMechanismTests
  ✅ test_01_push_mechanism_init_success()
  ✅ test_02_archive_obj()
  ✅ test_03_push_mechanism_identifier()
  ✅ test_04_codable_serialization()
  ✅ test_05_json_string_serialization()
  ✅ test_06_push_combined_mechanism()
PushNotificationAuthenticationTests
  ✅ test_01_push_authentication_accept_successful()
  ✅ test_02_push_authentication_deny_successful()
  ✅ test_03_push_notification_accept_request_validation()
  ✅ test_04_push_notification_deny_request_validation()
  ✅ test_05_push_auth_without_saved_mechanism()
  ✅ test_06_push_auth_already_authenticated()
  ✅ test_07_push_notification_expired()
  ✅ test_08_push_authentication_accept_successful_type_challenge()
PushNotificationErrorTests
  ✅ test_01_domain()
  ✅ test_02_missing_device_token()
  ✅ test_03_notification_invalid_status()
  ✅ test_04_storage_error()
PushQRCodeParserTests
  ✅ test_01_parse_push_qrcode_success()
  ✅ test_02_parse_push_qrcode_with_invalid_scheme()
  ✅ test_03_parse_push_qrcode_with_invalid_type()
  ✅ test_04_parse_push_qrcode_without_background_color_success()
  ✅ test_05_parse_push_qrcode_without_issuer_in_path_color_success()
  ✅ test_06_parse_push_qrcode_with_invalid_url()
  ✅ test_07_parse_push_qrcode_without_url()
  ✅ test_08_parse_push_from_mfa_qrcode_success()
RequestInterceptorTests
  ✅ test_01_push_registration()
  ✅ test_02_push_authentication()
TOTPCodeGenerationTests
  ✅ test_01_generate_totp_sha1()
  ✅ test_02_generate_totp_sha224()
  ✅ test_03_generate_totp_sha256()
  ✅ test_04_generate_totp_sha384()
  ✅ test_05_generate_totp_sha512()
  ✅ test_06_generate_totp_md5()
TOTPMechanismTests
  ✅ test_01_totpmechanism_init_success()
  ✅ test_02_archive_obj()
  ✅ test_03_totp_mechanism_identifier()
  ✅ test_04_totp_generate_code()
  ✅ test_05_totp_generate_code_without_digits_and_period()
  ✅ test_06_totp_custom_digits_and_period()
  ✅ test_07_archive_obj_different_algorithm()
  ✅ test_08_codable_serialization()
  ✅ test_09_json_string_serialization()
  ✅ test_10_totp_from_combined_mechanism()
URLUtilTests
  ✅ test_01_hotp_url_test()
  ✅ test_02_totp_url_test()
  ✅ test_03_push_url_test()
  ✅ test_04_non_auth_url_test()
  ✅ test_05_missing_host_url_test()
  ✅ test_06_otpauth_url_test()
  ✅ test_07_pushauth_url_test()
  ✅ test_08_mfauth_url_test()
  ✅ test_09_non_valid_scheme_url_test()

✅ FRAuthTests.xctest

AA_00_RegistrationTests
  ✅ test_01_perform_Registration_tree()
AA_01_LoginTests
  ✅ test_01_perform_Login_tree()
AA_02_KBAAuthenticationTests
  ✅ testKBAAuthenticationFlow()
AA_03_SecondFactorAuthenticationTests
  ✅ testSecondFactorFlow()
AA_04_BooleanAttributeInputCallbackTest
  ✅ test_01_boolean_attribute_input_callback()
AA_04_ChoiceCallbackTest
  ✅ test_01_choice_callback()
AA_04_ConfirmationCallbackTest
  ✅ test_01_confirmation_callback()
AA_04_DeviceProfileCallbackTest
  ✅ test_01_device_profile_callback()
AA_04_KbaCreateCallbackTest
  ✅ test_01_kba_create_callback()
AA_04_NumberAttributeInputCallbackTest
  ✅ test_01_number_attribute_input_callback()
AA_04_PageCallback65Test
  ✅ test_01_test_page_node65()
AA_04_PageCallbackTest
  ✅ test_01_test_page_node()
AA_04_PollingWaitCallbackTest
  ✅ test_01_polling_wait_callback()
AA_04_ReCaptchaCallbackTest
  ✅ test_01_recaptcha_callback()
AA_04_StringAttributeInputCallbackTest
  ✅ test_01_string_attribute_input_callback()
AA_04_TermsAndConditionCallbackTest
  ✅ test_01_terms_and_conditions_callback()
AA_05_DeviceBindingCallbackTest
  ✅ test_01_test_device_binding_defaults()
  ✅ test_02_test_device_binding_custom()
  ✅ test_03_test_device_binding_bind()
  ✅ test_04_test_device_binding_exceed()
  ✅ test_05_test_device_binding_wrong_app_id()
AA_06_DeviceSigningVerifierCallbackTest
  ✅ test_01_test_device_signing_verifier_defaults()
  ✅ test_02_test_device_signing_verifier_custom()
  ✅ test_03_test_device_signing_verifier_with_username_collector()
  ✅ test_04_test_device_signing_verifier_usernameless()
  ✅ test_05_test_device_signing_verifier_timout()
  ⚪ test_06_test_device_signing_verifier_pin()
  ⚪ test_07_test_device_signing_verifier_wrong_pin()
AA_07_AppIntegrityTest
  ⚪ test_01_test_app_integrity_success()
  ⚪ test_01a_test_integrity_token_with_custom_payload()
  ⚪ test_02_test_app_integrity_fail_invalid_challenge()
  ⚪ test_03_test_app_integrity_fail_empty_challenge()
  ⚪ test_04_test_app_integrity_invalid_team_id()
  ⚪ test_05_test_app_integrity_invalid_bundle_id()
  ⚪ test_06_test_app_integrity_invalid_root_cert()
  ⚪ test_07_test_app_integrity_fail_production()
  ⚪ test_08_test_app_integrity_unsupported()
  ⚪ test_09_test_app_integrity_custom_outcome()
AA_08_TextInputCallbackTest
  ✅ test_01_text_input_callback()
AA_09_PingOneProtectInitializeCallbackTest
  ✅ test_01_protect_initialize_defaults()
  ✅ test_02_protect_initialize_custom()
  ✅ test_03_protect_initialize_client_error()
AA_10_PingOneProtectEvaluateCallbackTest
  ✅ test_01_protect_evaluate_no_init()
  ✅ test_02_protect_evaluate_success()
  ✅ test_03_protect_evaluate_pause_behavioral_data_off()
AA_11_TextOutputCallbackTest
  ✅ test_01_text_output_callback()
AA_12_ReCaptchaEnterpriseCallbackTest
  ✅ test_01_recaptcha_enterprise_success()
  ✅ test_02_recaptcha_enterprise_success_custom()
  ✅ test_03_recaptcha_enterprise_fail_score()
  ✅ test_04_recaptcha_enterprise_custom_client_error()
AbstractValidatedCallbackTests
  ✅ testValidateCreatePasswordCallback_EchoOff()
  ✅ testValidateCreatePasswordCallback_EchoOn()
  ✅ testValidatedCreateUsernameCallbackBuildResponse()
  ✅ testValidatedCreateUsernameCallbackInit()
  ✅ testValidatedCreateUsernameCallbackInit_MissingOutput()
  ✅ testValidatedCreateUsernameCallbackInitWithFailedPolicy()
  ✅ testValidatedCreateUsernameCallbackInitWithFailedPolicyMissingRequiredValue()
  ✅ testValidatedCreateUsernameCallbackInitWithInvalidFailedPolicyStructure()
AccessTokenTests
  ✅ testAccessTokenDebugDescription()
  ✅ testAccessTokenExpiration()
  ✅ testAccessTokenInit()
  ✅ testAccessTokenJSONEncoding()
  ✅ testAuthorizationHeader()
  ✅ testMissingResponseValue()
  ✅ testTokenSecureCoding()
AppleSignInHandlerTests
  ✅ test_01_basic_init()
  ✅ test_02_test_default_handler()
  ✅ test_03_authorization_request_nonce()
  ✅ test_04_authorization_request_nil_nonce()
  ✅ test_05_authorization_request_emtpy_scope()
  ✅ test_06_test_acceptJSON_false_updated_handler()
  ✅ test_06_test_acceptJSON_true_updated_handler()
AtomicDictionaryTests
  ✅ testAtomicStorage()
  ✅ testAtomicStorageWithEmptyDictionary()
  ✅ testAtomicStorageWithOptionalCompletionBlock()
AuthApiErrorTests
  ✅ test_01_domain()
  ✅ test_02_api_request_failure()
  ✅ test_03_authentication_timeout()
  ✅ test_04_api_failure_with_message()
  ✅ test_05_suspended_auth_session_error()
AuthErrorTests
  ✅ test_01_domain()
  ✅ test_02_invalid_token_response()
  ✅ test_03_invalid_callback_response()
  ✅ test_04_unsupported_callback()
  ✅ test_05_invalid_auth_service_response()
  ✅ test_06_invalid_oauth2_client()
  ✅ test_07_invalid_generic_type()
  ✅ test_08_authentication_cancelled()
  ✅ test_08_invalid_generic_type()
  ✅ test_09_invalid_resume_uri()
  ✅ test_10_user_authentication_required()
AuthServiceTests
  ✅ test_01_AuthServicePublicInit()
  ✅ test_02_AuthServicePrivateInit()
  ✅ test_03_no_session_auth_service_next()
  ✅ test_04_auth_service_with_suspended_id()
AuthorizationPolicyTests
  ✅ test_01_authorization_policy_init()
  ✅ test_02_authorization_policy_validate_url()
  ✅ test_03_update_request_without_delegate_and_txId()
  ✅ test_04_update_request_without_delegate_and_with_txId()
  ✅ test_05_update_request_with_delegate_and_txId()
  ✅ test_06_update_request_with_delegate_and_no_txId()
  ✅ test_07_on_policy_advice_received_without_delegate()
  ✅ test_08_on_policy_advice_received_with_delegate()
  ✅ test_09_redirect_evaluation_without_delegate()
  ✅ test_10_redirect_evaluation_with_307_status()
  ✅ test_11_redirect_evaluation_with_30x_status()
  ✅ test_12_redirect_evaluation_with_delegate_method()
  ✅ test_13_evaluate_without_delegate_no_response_data()
  ✅ test_14_evaluate_with_response_data()
  ✅ test_15_evaluate_with_delegate()
  ✅ test_16_redirect_evaluation_with_307_status_with_base64_encoded()
  ✅ test_17_redirect_evaluation_with_307_status_with_JSON()
  ✅ test_18_redirect_evaluation_with_307_status_with_base64_encoded()
BooleanAttributeInputCallbackTests
  ✅ test_01_bool_attribute_init()
  ✅ test_02_bool_attribute_init_default_true()
  ✅ test_03_bool_attribute_input_build_response()
BrowserBuilderTests
  ✅ test_01_basic_construction()
  ✅ test_02_progressive_construction()
BrowserErrorTests
  ✅ test_01_domain()
  ✅ test_02_external_user_agent_failure()
  ✅ test_02_external_user_agent_in_progress()
  ✅ test_03_external_user_agent_cancelled()
BrowserTests
  ✅ test_01_browser_init()
  ✅ test_02_browser_login_already_authenticated()
  ⚪ test_03_browser_login_already_in_progress_from_another_instance()
  ✅ test_04_same_browser_login_already_in_progress()
  ✅ test_05_login_safari_vc_validate_auth_code()
  ✅ test_06_login_safari_vc_validate_auth_code_no_auth_code()
  ✅ test_07_login_safari_vc_cancelled()
  ⚪ test_08_login_auth_session_cancelled()
  ✅ test_09_login_native_browser_cancelled()
  ✅ test_10_cancel_while_not_in_progress()
  ✅ test_11_build_authorize_request()
  ✅ test_12_should_manual_cleanup()
  ✅ test_13_build_end_session_request()
CallbackConstantsTests
  ✅ test_01_test_callback_type()
  ✅ test_02_common_callback_constant_values()
  ✅ test_03_social_login_callback_constant_values()
  ✅ test_04_kba_create_callback_constant_values()
  ✅ test_05_choice_callback_constant_values()
  ✅ test_06_termsconditions_callback_constant_values()
  ✅ test_07_abstract_validated_callback_constant_values()
  ✅ test_08_webauthn_callback_constant_values()
ChoiceCallbackTests
  ✅ testChoiceCallbackEmptyChoice()
  ✅ testChoiceCallbackEmptyOutput()
  ✅ testChoiceCallbackInit()
  ✅ testChoiceCallbackInitWithAdditionalOutput()
  ✅ testChoiceCallbackInitWithDefaultChoice()
  ✅ testChoiceCallbackMissingInput()
  ✅ testChoiceCallbackMissingPrompt()
  ✅ testChoiceCallbackWithEmptyJSON()
ConfigErrorTests
  ✅ test_01_domain()
  ✅ test_02_empty_configuration()
  ✅ test_03_invalid_configuration()
  ✅ test_04_invalid_access_group()
  ✅ test_05_invalid_sdk_state()
ConfirmationCallbackTests
  ✅ test_01_CallbackConstruction_Successful()
  ✅ test_02_CallbackConstruction_Various_MessageTypes()
  ✅ test_03_CallbackConstruction_Various_OptionType()
  ✅ test_04_CallbackConstruction_Various_Options()
  ✅ test_05_CallbackConstruction_Missing_Output()
  ✅ test_06_CallbackConstruction_Missing_Input()
  ✅ test_06_CallbackConstruction_Missing_InputName()
  ✅ test_06_CallbackConstruction_Missing_Type()
CookieTests
  ✅ test_01_validate_cookie_after_login()
  ✅ test_02_validate_cookie_from_existing_session()
  ✅ test_03_validate_cookie_does_not_injected_with_disabled()
  ✅ test_04_validate_no_persistent_cookie_when_disabled()
  ✅ test_05_validate_cookie_deleted_after_successful_logout()
  ✅ test_06_validate_cookie_deleted_after_unsuccessful_logout()
  ✅ test_07_validate_cookie_is_stored_and_unarchived_Correctly()
CookieValidationTests
  ✅ test_01_cookie_domain_validation_leading_dot()
  ✅ test_02_cookie_domain_validation_without_leading_dot()
  ✅ test_03_cookie_domain_validation_with_specific_subdomain()
  ✅ test_04_cookie_domain_validation_without_domain()
  ✅ test_05_cookie_domain_validation_subsub_domain()
  ✅ test_05_cookie_path_validation()
  ✅ test_06_cookie_path_validation_with_specific_path()
  ✅ test_07_cookie_path_validation_without_specified_path()
  ✅ test_08_cookie_is_secure_validation_with_none_secured()
  ✅ test_08_cookie_is_secure_validation_with_secured()
  ✅ test_09_cookie_is_expired_validation_expired()
  ✅ test_10_cookie_is_expired_validation_not_expired()
CustomCallbackTests
  ✅ test_01_Validate_CustomCallback_Registration()
  ✅ test_02_Validate_CustomCallback_Building_Response()
  ✅ test_03_Validate_Unsupported_Callback()
  ✅ test_04_Validate_Node_With_CustomCallback()
  ✅ test_05_Validate_Overriding_Exisiting_CallbackType()
DeviceClientTests
  ✅ testAccessDenied()
  ✅ testBindingDeviceReturnsListOfBindingDevices()
  ✅ testDeleteDeviceSuccessfully()
  ✅ testForbidden()
  ✅ testOathDeviceReturnsListOfOathDevices()
  ✅ testProfileDeviceReturnsListOfBindingDevices()
  ✅ testPushDeviceReturnsListOfPushDevices()
  ✅ testSessionExpired()
  ✅ testUpdateDeviceSuccessfully()
  ✅ testWebauthnDeviceReturnsListOfBindingDevices()
DeviceProfileCallbackTests
  ✅ test_01_device_profile_init()
  ✅ test_02_device_profile_required_none_init()
  ✅ test_03_device_profile_message_init()
  ✅ test_04_device_execute_without_metadata()
  ✅ test_04_device_execute()
  ✅ test_05_no_output_init()
FRAppAttestModalTests
  ✅ testDCErrorInvalidInput()
  ✅ testDCErrorInvalidKey()
  ✅ testDCErrorServerUnavailableAttestation()
  ✅ testDCErrorServerUnavailable()
  ✅ testDCErrorUnknownSystemFailure()
  ✅ testInvalidAssertionRetryTwiceOnError()
  ✅ testInvalidBundleId()
  ✅ testInvalidChallenge()
  ✅ testInvalidClientData()
  ✅ testSuccessPathAssertion()
  ✅ testSuccessPath()
  ✅ testUnknownError()
  ✅ testUnSupported()
FRAppAttestServiceImplTests
  ✅ testAttestation()
  ✅ testIsNotSupported()
  ✅ testIsSupported()
FRAppIntegrityCallbackTests
  ✅ test_01_CallbackConstruction_Successful_Persist()
  ✅ test_01_CallbackConstruction_Successful()
  ✅ test_01_Public_Methods()
  ✅ test_02_InputConstruction_Successful()
  ✅ test_03_InvalidClientData_Failure()
  ✅ test_03_Unknown_Error()
FRAppIntegrityKeysTests
  ✅ testKeyChainKeys()
  ✅ testKeys()
FRAuthTests
  ✅ test_frstart_with_custom_cookie_name()
  ✅ test_frstart_with_custom_endpoints()
  ✅ test_frstart_with_some_custom_endpoints()
  ✅ testFRStart()
  ✅ testFRStartNonSSO()
  ✅ testFRStartWithCustomCookieName()
  ✅ testFRStartWithDiscoveryURL()
  ✅ testFRStartWithEmptyOrInvalidConfigFile()
  ✅ testFRStartWithInvalidAccessGroup()
  ✅ testFRStartWithMissingAuthServiceName()
  ✅ testFRStartWithMissingClientId()
  ✅ testFRStartWithMissingCookieName()
  ✅ testFRStartWithMissingOAuthThreshold()
  ✅ testFRStartWithMissingOrInvalidRedirectURL()
  ✅ testFRStartWithMissingOrInvalidSignoutRedirectURL()
  ✅ testFRStartWithMissingOrInvalidURL()
  ✅ testFRStartWithMissingRealm()
  ✅ testFRStartWithMissingRegistrationServiceName()
  ✅ testFRStartWithMissingScope()
  ✅ testFRStartWithMissingTimeout()
  ✅ testOAuth2ClientAuthorizeCallDoesntContainAcceptHeader()
FRDeviceCollectorTests
  ✅ testCustomDeviceCollector()
  ✅ testDeviceCollector()
FRDeviceIdentifierTests
  ✅ testDeviceIdentifierFromKeychainValidation()
  ✅ testGeneratedDeviceIdentifierValidation()
  ✅ testInvalidKeychainDeviceIdGeneration()
FRDeviceTests
  ✅ testDeviceIdentifierFromKeychain()
  ✅ testDeviceIdentifierGeneration()
FROptionsTests
  ✅ testDiscoverEndpointWithPingEndIdpSessionSignOutRedirect()
  ✅ testDiscoverEndpointWithPingEndIdpSession()
  ✅ testDiscoverWithInvalidURL()
  ✅ testDiscoverWithValidURLandInitialOptions()
  ✅ testDiscoverWithValidURL()
  ✅ testDynamicConfigBasicOAuth()
  ✅ testDynamicConfigComplete()
  ✅ testDynamicConfigSessionOnly()
  ✅ testFROptionsComparisons()
  ✅ testInitWithConfig()
  ✅ testMultipleStarts()
FRRequestInterceptorTests
  ✅ test_01_refresh_token_interceptor()
  ✅ test_02_userinfo_interceptor()
  ✅ test_03_resume_authenticate()
FRSessionTests
  ✅ test_01_basic_FRSession_authenticate()
  ✅ test_02_check_persisted_session()
  ✅ test_03_reauthenticating_session()
  ✅ test_04_validate_oauth2_revoke_with_frsession_authenticate()
  ✅ test_05_validate_frsession_authenticate_returning_same_session_token()
  ✅ test_06_verify_session_logout_invalidates_oauth2_token()
  ✅ test_07_authenticate_with_suspended_id()
  ✅ test_08_authenticate_with_resume_uri_missing_suspended_id()
  ✅ test_09_authenticate_with_expired_suspended_id()
  ✅ test_10_frsession_authenticate_without_oauth2client()
FRURLProtocolTests
  ✅ test_01_validate_auth_header_for_not_configured_frurlprotocol()
  ✅ test_02_validate_auth_header_for_non_validating_url()
  ✅ test_03_validate_auth_header_with_validating_url()
  ✅ test_04_validate_auth_header_with_validating_url_in_custom_header()
  ✅ test_05_validate_token_refresh_evaluation_and_token_renewal()
  ✅ test_06_validate_token_refresh_evaluation_keep_failing_and_test_max_retry_count()
  ✅ test_07_should_manual_cleanup()
FRUserBrowserTests
  ✅ test_01_fruser_browser_init()
  ⚪ test_02_fruser_browser_login_and_logout_success()
  ⚪ test_03_fruser_browser_login_and_logout_end_session_failure()
  ✅ test_04_consecutive_browser_login_with_different_browser_type()
  ✅ test_05_native_login_and_following_browser_login()
  ✅ test_06_browser_login_and_following_native_login()
  ✅ test_07_should_manual_cleanup()
  ✅ test_08_browser_login_and_browser_logout()
FRUserTests
  ✅ test_00_00_BasicFRUserCreation()
  ✅ test_00_01_FRUserLogin()
  ✅ test_00_02_FRUserLoginAfterAlreadyLoggedIn()
  ✅ test_02_01_GetUserInfoFailure()
  ✅ test_02_02_GetUserInfoSuccess()
  ✅ test_02_03_UserInfoObjAndDescription()
  ✅ test_02_04_UserInfo_Expired_RefreshToken_Renewal_Successful()
  ✅ test_02_05_UserInfo_Expired_Tokens_Renewal_Failure()
  ✅ test_03_01_UserLogoutFailOnAMAPI()
  ✅ test_03_02_UserLogOutSuccess()
  ✅ test_03_03_UserLogOutWithAccessToken()
  ✅ test_03_04_UserLogOutWithoutSDKInit()
  ✅ test_04_00_CurrentUserShouldBeNilBeforeSDKInit()
  ✅ test_04_01_LoginToPersistCurrentUser()
  ✅ test_04_02_CurrentUserNotNilAfterSDKInit()
  ✅ test_04_03_validate_login_with_existing_session()
  ✅ test_04_04_user_login_with_no_session()
  ✅ test_05_01_RevokeAccessTokenSuccess()
  ✅ test_05_02_RevokeAccessTokenError()
  ✅ test_06_01_ForceRefreshAccessTokenAsync()
  ✅ test_06_02_ForceRefreshAccessTokenSync()
  ✅ test_07_01_RevokeGivenAccessToken()
FRWebAuthnTests
  ✅ test_01_loadAllCredentials()
  ✅ test_02_deleteByRpId()
  ✅ test_03_deleteWithCredential()
  ✅ test_04_deleteWithCredential_force_false()
  ✅ test_05_deleteWithCredential_force_true()
FailedPolicyTests
  ✅ testFailedPolicyInit_AtLeastCapital()
  ✅ testFailedPolicyInit_AtLeastNumber()
  ✅ testFailedPolicyInit_INVALID_DATE()
  ✅ testFailedPolicyInit_INVALID_EMAIL_FORMAT()
  ✅ testFailedPolicyInit_INVALID_NAME_FORMAT()
  ✅ testFailedPolicyInit_INVALID_NUMBER()
  ✅ testFailedPolicyInit_INVALID_PHONE_FORMAT()
  ✅ testFailedPolicyInit_MAX_LENGTH()
  ✅ testFailedPolicyInit_MIN_LENGTH()
  ✅ testFailedPolicyInit_REQUIRED()
  ✅ testFailedPolicyInit_UNIQUE()
  ✅ testFailedPolicyInit_UNKNOWN_FORMAT()
  ✅ testFailedPolicyInitWithInvalidFormat()
IdPCallbackTests
  ✅ test_01_basic_init()
  ✅ test_02_validate_idpclient()
  ✅ test_03_set_token_values()
  ✅ test_04_missing_provider_value()
  ✅ test_05_missing_client_id_value()
  ✅ test_06_missing_redirect_uri_value()
  ✅ test_07_sign_in_without_handler()
IdPClientTests
  ✅ test_01_basic_init()
  ✅ test_02_init_additional_values()
IdPHandlerTests
  ✅ test_01_init_test()
  ✅ test_02_button_view()
  ✅ test_03_sign_in_with_callback()
IdPValueTests
  ✅ test_01_basic_init()
  ✅ test_02_init_additional_values()
KeychainManagerTests
  ✅ test_01_basic_initialization_test()
  ✅ test_02_initialization_with_invalidAccessGroup()
  ✅ test_03_basic_storage_test()
  ✅ test_04_persisting_data_from_previous_test()
  ✅ test_05_validating_base_url_changed()
  ✅ test_06_validating_device_identifier_upon_base_url_changed()
  ✅ test_07_validate_KeychainManager_from_without_securedKey_to_with_securedKey()
  ✅ test_08_validate_KeychainManager_from_with_securedKey_to_without_securedKey()
  ✅ test_09_validate_KeychainManager_for_securedKey_changed()
  ✅ test_10_store_sso_token()
  ✅ test_11_store_access_token()
MetadataCallbackTests
  ✅ test_01_metadatacallback_init_with_empty_json()
  ✅ test_02_metadatacallback_init()
NameCallbackTests
  ✅ testNameCallbackInit()
  ✅ testNameCallbackMissingInput()
  ✅ testNameCallbackMissingPrompt()
  ✅ testNameCallbackWithEmptyJSON()
  ✅ testNameCallbackWithMultipleOutputs()
NetworkReachabilityMonitorTests
  ✅ testGeneralReachabilityMonitoring()
  ✅ testHostReachabilityMonitoring()
  ✅ testNetworkReachabilityMonitorCallbackForMemoryLeak()
  ✅ testReachabilityStatusWithoutAnyFlags()
  ✅ testReachabilityStatusWithReachableAndConnectionRequired()
  ✅ testReachabilityStatusWithReachableAndConnectionRequiredAndConnectionOnTraffice()
  ✅ testReachabilityStatusWithReachableAndConnectionRequiredAndInterventionRequired()
  ✅ testReachabilityStatusWithReachableAndWWANFlags()
  ✅ testReachabilityStatusWithReachableFlags()
NodeFlowTests
  ✅ test_01_Get_SSOToken()
  ✅ test_02_Get_AccessToken_FailedDueToMissingOAuth2Client()
  ✅ test_03_Get_FRUser_FailedDueToMissingOAuth2Client()
  ✅ test_04_no_session_test()
NodeTests
  ✅ testNodeInit()
  ✅ testNodeInitMissingAuthId()
  ✅ testNodeInitWithInvalidCallback()
  ✅ testNodeInitWithInvalidCallbackWithMissingType()
  ✅ testNodeInitWithMissingCallbacks()
  ✅ testNodeInitWithUnexpectedCallbackDataType()
  ✅ testNodeInitWithUnsupportedCallback()
  ✅ testNodeWithPageHeaderAndDescription()
NumberAttributeInputCallbackTests
  ✅ test_01_number_attribute_init()
  ✅ test_02_number_attribute_init_default_value()
  ✅ test_03_number_attribute_input_build_response()
OAuth2ErrorTests
  ✅ test_01_domain()
  ✅ test_02_invalid_request()
  ✅ test_03_invalid_client()
  ✅ test_04_invalid_grant()
  ✅ test_05_unauthorized_client()
  ✅ test_06_unsupported_grant_type()
  ✅ test_07_unsupported_response_type()
  ✅ test_08_invalid_scope()
  ✅ test_09_missing_invalid_redirect_uri()
  ✅ test_10_access_denied()
  ✅ test_11_other()
  ✅ test_12_unknown()
PKCETests
  ✅ testThatPKCEDoesNotContainInvalidCharacters()
  ✅ testThatPKCEGeneratesRandomValues()
PasswordCallbackTests
  ✅ testNameCallbackMissingInput()
  ✅ testNameCallbackMissingPrompt()
  ✅ testPasswordCallbackInit()
  ✅ testPasswordCallbackWithEmptyJSON()
  ✅ testPasswordCallbackWithMultipleOutputs()
PolicyAdviceCreatorTests
  ✅ test_encoded_legacy_IG_response()
  ✅ test_invalid_JSON_IG_response()
  ✅ test_invalid_legacy_IG_response()
  ✅ test_legacy_IG_response()
  ✅ test_new_JSON_IG_response()
PolicyAdviceTests
  ✅ test_01_policy_advice_init_with_invalid_json()
  ✅ test_01_policy_advice_init_with_passed_dict()
  ✅ test_02_policy_advice_init_with_json_authenticate_to_service()
  ✅ test_03_policy_advice_init_with_json_authenticate_to_service()
  ✅ test_04_policy_advice_init_with_params()
  ✅ test_04_policy_advice_init_with_params_with_indexTypes()
  ✅ test_05_policy_advice_init_with_url_transaction()
  ✅ test_06_policy_advice_init_with_url_authenticate_to_service()
  ✅ test_07_policy_advice_init_with_invalid_url()
PollingWaitCallbackTests
  ✅ test_01_CallbackConstruction_Successful()
  ✅ test_02_CallbackConstruction_Missing_Output()
  ✅ test_03_CallbackConstruction_Missing_Type()
  ✅ test_04_CallbackConstruction_Missing_Message()
  ✅ test_04_CallbackConstruction_Missing_WaitTime()
ReCaptchaCallbackTests
  ✅ test_01_CallbackConstruction_Successful()
  ✅ test_02_CallbackConstruction_Missing_Input()
  ✅ test_03_CallbackConstruction_Missing_Output()
  ✅ test_04_CallbackConstruction_Missing_Type()
  ✅ test_05_CallbackConstruction_Missing_SiteKey()
SSLPinningTests
  ✅ testSSLPinningWithCorrectPublicKeyHashAndCorrectServer()
  ✅ testSSLPinningWithEmptyPublicKeyHashesArray()
  ✅ testSSLPinningWithNoPublicKeyHashes()
  ✅ testSSLPinningWithPublicKeyHashAndWrongServer()
SelectIdPCallbackTests
  ✅ test_01_basic_init()
  ✅ test_02_validate_provider_information()
  ✅ test_03_set_provider()
  ✅ test_04_missing_provider_attribut()
ServerConfigTests
  ✅ test_01_default_server_config()
  ✅ test_02_custom_realm_server_config()
  ✅ test_03_custom_timeout_server_config()
  ✅ test_04_custom_enable_cookie_server_config()
  ✅ test_05_custom_path_server_config()
  ✅ test_06_custom_nested_server_config()
  ✅ test_07_custom_valid_url_path_server_config()
SessionManagerTests
  ✅ test_01_SessionManager_Init()
  ✅ test_02_SessionManagerSingleton()
  ✅ test_03_RevokeSSOToken()
SocialLoginErrorTests
  ✅ test_01_domain()
  ✅ test_02_not_supported()
  ✅ test_03_unsupported_credentials()
  ✅ test_04_cancelled()
  ✅ test_05_missing_handler()
TelephonyCollectorTests
  ✅ test_firstElementInCustomSortedArray()
TextInputCallbackTests
  ✅ testTextInputCallbackInit()
  ✅ testTextInputCallbackMissingInput()
  ✅ testTextInputCallbackMissingPrompt()
  ✅ testTextInputCallbackWithEmptyJSON()
  ✅ testTextInputCallbackWithMultipleOutputs()
TextOutputCallbackTests
  ✅ test_01_CallbackConstruction_Successful()
  ✅ test_02_CallbackConstruction_With_InputSection_Successful()
  ✅ test_03_CallbackConstruction_Missing_Output()
  ✅ test_04_CallbackConstruction_Missing_Message()
  ✅ test_05_CallbackConstruction_Error_MessageType()
  ✅ test_05_CallbackConstruction_Invalid_MessageType()
  ✅ test_05_CallbackConstruction_Warning_MessageType()
  ✅ test_06_Type4Message()
TokenErrorTests
  ✅ test_01_domain()
  ✅ test_02_failed_to_parse_token()
  ✅ test_03_null_refresh_token()
  ✅ test_04_null_token()
TokenManagementPolicyTests
  ✅ test_01_token_management_policy_init()
  ✅ test_02_token_management_policy_validate_url()
  ✅ test_03_delegation()
  ✅ test_05_no_callback_and_delegate()
  ✅ test_06_update_request_without_delegate()
  ✅ test_07_update_request_with_delegate()
TokenTests
  ✅ testBasicTokenDebugDescription()
  ✅ testBasicTokenValue()
  ✅ testBasicTokenValueWithoutDefaultValues()
  ✅ testTokenJSONEncoding()
  ✅ testTokenJSONEncodingWithoutDefaultValues()
  ✅ testTokenSecureCoding()
  ✅ testTokenSecureCodingWithoutDefaultValues()
WebAuthnAuthenticationCallbackTests
  ✅ test_01_default_authentication_callback()
  ✅ test_02_multiple_credentials_authentication_callback()
  ✅ test_03_empty_credentials_authentication_callback()
  ✅ test_04_invalid_user_verification_authentication_callback()
  ✅ test_05_invalid_timeout_verification_authentication_callback()
  ✅ test_06_invalid_relying_party_id_authentication_callback()
  ✅ test_07_missing_relying_party_id_authentication_callback()
  ✅ test_08_invalid_allowed_credentials_id_authentication_callback()
  ✅ test_09_missing_allowed_credentials_id_authentication_callback()
  ✅ test_10_missing_challenge_authentication_callback()
  ✅ test_11_missing_type_authentication_callback()
  ✅ test_12_AM71_default_authentication_callback()
  ✅ test_13_AM71_multiple_credentials_authentication_callback()
  ✅ test_14_AM71_empty_credentials_authentication_callback()
  ✅ test_15_AM71_missing_credentials_authentication_callback()
  ✅ test_16_AM71_missing_relying_party_id_authentication_callback()
WebAuthnAuthenticationTests
  ✅ test_01_basic_authentication()
  ✅ test_02_basic_authentication_with_multiple_credentials()
  ✅ test_03_allowed_credentials_does_not_exist_authentication()
  ✅ test_04_usernameless_authentication_with_only_one_resident_key()
  ✅ test_05_usernameless_authentication_with_multiple_resident_keys()
  ✅ test_06_register_and_authenticate_with_different_user()
  ✅ test_07_authentication_timeout()
  ✅ test_08_validate_signing_counter_for_credential_source()
  ✅ test_09_credentials_empty()
  ✅ test_10_uknown_keyname()
  ✅ test_99_clean_up()
WebAuthnCallbackTests
  ✅ test_01_invalid_type()
  ✅ test_02_AM71_registration_validation()
  ✅ test_03_AM70_registration_validation()
  ✅ test_03_AM71_authentication_validation()
  ✅ test_04_AM70_authentication_validation()
  ✅ test_05_AM71_invalid_action_validation()
  ✅ test_06_missing_output_type_validation()
  ✅ test_07_missing_output_validation()
  ✅ test_08_parsing_multiple_int_arr()
  ✅ test_09_parsing_single_int_arr()
  ✅ test_10_set_value_success()
  ✅ test_11_set_value_with_invalid_hidden_value_callback()
WebAuthnRegistrationCallbackTests
  ✅ test_01_default_registration_callback()
  ✅ test_02_platform_authenticator_require_resident_key_registration_callback()
  ✅ test_03_required_uv_direct_attestation_registration_callback()
  ✅ test_04_discouraged_uv_indirect_attestation_registration_callback()
  ✅ test_05_cross_platform_authenticator_registration_callback()
  ✅ test_06_single_pub_key_cred_registration_callback()
  ✅ test_07_excluded_credentials_registration_callback()
  ✅ test_08_multiple_excluded_credentials_registration_callback()
  ✅ test_09_missing_attestation_registration_callback()
  ✅ test_10_missing_relying_party_name_registration_callback()
  ✅ test_11_missing_display_name_registration_callback()
  ✅ test_12_missing_user_name_registration_callback()
  ✅ test_13_missing_user_id_registration_callback()
  ✅ test_14_type_registration_callback()
  ✅ test_15_missing_timeout_registration_callback()
  ✅ test_16_missing_challenge_registration_callback()
  ✅ test_17_AM70_invalid_relying_party_id_registration_callback()
  ✅ test_18_AM70_missing_relying_party_id_registration_callback()
  ✅ test_19_AM70_missing_authenticator_selection_registration_callback()
  ✅ test_20_AM70_missing_pub_key_cred_registration_callback()
  ✅ test_21_AM70_invalid_pub_key_cred_registration_callback()
  ✅ test_22_AM70_invalid_excluded_cred_registration_callback()
  ✅ test_23_AM71_missing_authenticator_selection_registration_callback()
  ✅ test_24_AM71_cross_platform_authenticator_selection_registration_callback()
  ✅ test_25_AM71_missing_relying_party_id_registration_callback()
  ✅ test_26_AM71_invalid_pub_key_cred_registration_callback()
  ✅ test_27_AM71_invalid_pub_key_cred_format_registration_callback()
  ✅ test_28_AM71_platform_authenticator_require_resident_key_registration_callback()
  ✅ test_29_AM71_user_verification_discouraged_unspecified_platform_registration_callback()
  ✅ test_30_AM71_excluded_credentials_single_pub_key_cred_registration_callback()
WebAuthnRegistrationTests
  ✅ test_01_perform_registration()
  ✅ test_02_registration_timeout()
  ✅ test_03_reject_new_key_registration()
  ✅ test_04_missing_delegate()
  ✅ test_05_unsupported_pub_key_cred()
  ✅ test_06_excluded_credentials_consent()
  ✅ test_07_require_resident_key()
  ✅ test_08_does_not_require_resident_key()
  ✅ test_09_webauthn_registration_with_attestation_none()
  ✅ test_10_webauthn_registration_with_attestation_indirect()
  ✅ test_11_webauthn_registration_with_attestation_direct()
  ✅ test_12_webauthn_registration_with_device_name()

✅ FRCaptchaEnterpriseTests.xctest

ReCaptchaEnterpriseTests
  ✅ test_01_basic_init()
  ✅ testAction()
  ✅ testAdditionalJson()
  ✅ testExecuteFailureForExecution()
  ✅ testExecuteFailureForIntialization()
  ✅ testExecuteFailureForUnknownExecution()
  ✅ testExecuteSuccess()
  ✅ testExecuteTokenIsNil()
  ✅ testInitializationFailure()

✅ FRCoreTests.xctest

ActionTests
  ✅ test_01_action_start_authenticate()
  ✅ test_02_action_authenticate()
  ✅ test_03_action_authorize()
  ✅ test_04_action_exchange_token()
  ✅ test_05_action_refresh_token()
  ✅ test_06_action_revoke_token()
  ✅ test_07_action_logout()
  ✅ test_08_action_push_register()
  ✅ test_09_action_push_authenticate()
  ✅ test_10_action_user_info()
  ✅ test_11_action_end_session()
AppPinAuthenticatorTests
  ⚪ test_01_generateKeys()
  ✅ test_02_getKeyAlias()
  ⚪ test_03_getPrivateKey()
CryptoKeyTests
  ✅ test_01_basic_init()
  ✅ test_02_keyBuilderQuery()
  ✅ test_03_createKeyPair()
  ✅ test_04_getSecureKey()
  ✅ test_05_deleteKey()
  ✅ test_06_getKeyAlias()
  ✅ test_07_deleteKeys()
  ✅ test_08_same_accessGroup()
  ✅ test_09_different_accessGroup()
  ✅ test_10_with_and_without_accessGroup()
FRSecurityConfigurationTests
  ✅ testValidateWithCorrectHash()
  ✅ testValidateWithWrongHash()
FRStringUtilTests
  ✅ test_01_base64_encode_decode()
  ✅ test_02_is_base64_encoded()
  ✅ test_03_base64_encode_url_safe()
  ✅ test_04_url_safe_encoding()
  ✅ test_05_url_safe_decoding()
JailbreakDetectorTests
  ✅ testIndividualDetector()
  ✅ testJailbreakDetector()
  ✅ testNoJailbreakDetector()
KeychainServiceTests
  ✅ testKeychainAllItems()
  ✅ testKeychainBool()
  ✅ testKeychainCertificateAndIdentity()
  ✅ testKeychainData()
  ✅ testKeychainKeys()
  ✅ testKeychainServiceAccessGroup()
  ✅ testKeychainServiceTeamId()
  ✅ testKeychainString()
LogTests
  ✅ test_01_set_log_level_all()
  ✅ test_02_test_log_level_verbose_only()
  ✅ test_03_test_log_level_info_only()
  ✅ test_04_test_log_level_warning_only()
  ✅ test_05_test_log_level_error_only()
  ✅ test_06_test_log_level_network_only()
  ✅ test_07_test_log_level_info_warning()
  ✅ test_custom_logger()
  ✅ test_default_logger()
  ✅ test_default_logger_with_all_enabled()
  ✅ test_log_level()
NetworkErrorTests
  ✅ test_01_domain()
  ✅ test_01_invalid_response_data_type()
  ✅ test_02_invalid_request()
  ✅ test_03_api_request_failure()
RequestInterceptorFactoryTests
  ✅ test_01_register_interceptors()
  ✅ test_02_register_multiple_interceptors()
  ✅ test_03_register_multiple_interceptors_override_true()
  ✅ test_04_register_multiple_interceptors_override_false()
  ✅ test_05_register_null_override_false()
  ✅ test_06_register_null_override_true()
RequestInterceptorTests
  ✅ test_01_request_captured_and_processed_interceptor()
  ✅ test_02_request_captured_and_should_not_process_interceptor_for_different_action()
  ✅ test_03_request_captured_and_should_process_interceptors_in_order()
  ✅ test_04_request_captured_and_should_not_process_interceptor_for_different_action_sync()
  ✅ test_05_request_captured_and_should_process_interceptors_in_order_sync()
  ✅ test_06_request_not_captured_when_no_action_defined()
  ✅ test_07_request_captured_and_invoke_different_url()
  ✅ test_08_request_captured_in_seuqence_and_get_updated_request()
  ✅ test_09_action_with_payload()
  ✅ test_10_try_overriding_platform_identifier_headers()
RequestTests
  ✅ test_body_param_get_request()
  ✅ testBasicConstruction()
  ✅ testInvalidRequest()
  ✅ testRequestDebugDescription()
  ✅ testRequestForPlatformIdentifyingHeaders()
  ✅ testRequestWithAdditionalHeaders()
  ✅ testRequestWithURLParameters()
RestClientTests
  ✅ test_01_test_invalid_request_obj()
  ✅ test_02_test_200_get_request()
  ✅ test_04_test_cache_control()
  ✅ test_05_test_response_headers_for_platform_identifiers()
SecuredKeyTests
  ✅ test_01_init()
  ✅ test_02_read_key_from_previous_test_encryption()
  ✅ test_03_test_encryption_using_secured_key()
  ✅ test_04_test_decrypt_with_legacy_algorithm_default()
  ✅ test_05_test_decrypt_with_legacy_algorithm_manual()

✅ FRDeviceBindingTests.xctest

ApplicationPinDeviceAuthenticatorTests
  ⚪ test_01_sign()
  ⚪ test_02_sign_with_userKey()
  ⚪ test_03_generateKeys()
  ✅ test_04_generateKeys_without_initialize()
  ⚪ test_05_sign_with_userKey_customClaims()
DeviceAuthenticatorTests
  ✅ test_01_getDeviceAuthenticator()
  ✅ test_02_None_sign()
  ✅ test_03_None_generateKeys()
  ⚪ test_04_BiometricOnly_sign()
  ⚪ test_05_BiometricOnly_generateKeys()
  ⚪ test_06_BiometricAndDeviceCredential_sign()
  ⚪ test_07_BiometricAndDeviceCredential_generateKeys()
  ✅ test_08_None_sign_with_userKey()
  ⚪ test_09_BiometricOnly_sign_with_userKey()
  ⚪ test_10_BiometricAndDeviceCredential_sign_with_userKey()
  ✅ test_11_None_generateKeys_without_initialize()
  ✅ test_12_BiometricOnly_generateKeys_without_initialize()
  ✅ test_13_BiometricAndDeviceCredential_generateKeys_without_initialize()
  ✅ test_14_ValidateCustomClaims_empty()
  ✅ test_14_ValidateCustomClaims_valid()
  ✅ test_15_ValidateCustomClaims_invalid()
DeviceBindingCallbackTests
  ✅ test_01_basic_init()
  ✅ test_02_callback_construction_successful()
  ✅ test_03_missing_userId_value()
  ✅ test_04_missing_username_value()
  ✅ test_05_missing_authenticationType_value()
  ✅ test_06_missing_challenge_value()
  ✅ test_07_missing_title_value()
  ✅ test_08_missing_subtitle_value()
  ✅ test_09_missing_description_value()
  ✅ test_10_missing_timeout_value()
  ✅ test_11_missing_jwsKey_value()
  ✅ test_12_missing_deviceNameKey_value()
  ✅ test_13_missing_deviceIdKey_value()
  ✅ test_14_missing_clientErrorKey_value()
  ✅ test_15_validate_building_response()
  ✅ test_16_getExpiration()
  ✅ test_17_getDeviceBindingAuthenticator_None()
  ✅ test_18_getDeviceBindingAuthenticator_BiometricOnly()
  ✅ test_19_1_getDeviceBindingAuthenticator_ApplicationPin()
  ✅ test_19_getDeviceBindingAuthenticator_BiometricAndDeviceCredential()
  ✅ test_20_execute_success()
  ✅ test_21_execute_fail_timeout()
  ✅ test_22_execute_custom_not_supported()
  ✅ test_23_execute_custom_generate_keys_failed()
  ✅ test_24_execute_custom_sign_failed()
  ✅ test_25_execute_custom_aborted()
  ✅ test_26_bind_customDeviceBindingIdentifier()
  ✅ test_27_bind_customPrompt()
DeviceSigningVerifierCallbackTests
  ✅ test_01_basic_init()
  ✅ test_02_callback_construction_successful()
  ✅ test_03_missing_userId_value()
  ✅ test_04_missing_challenge_value()
  ✅ test_05_missing_title_value()
  ✅ test_06_missing_subtitle_value()
  ✅ test_07_missing_description_value()
  ✅ test_08_missing_timeout_value()
  ✅ test_09_missing_jwsKey_value()
  ✅ test_10_missing_clientErrorKey_value()
  ✅ test_11_validate_building_response()
  ✅ test_12_getExpiration()
  ✅ test_13_getDeviceBindingAuthenticator_None()
  ✅ test_14_getDeviceBindingAuthenticator_BiometricOnly()
  ✅ test_15_getDeviceBindingAuthenticator_BiometricAndDeviceCredential()
  ✅ test_16_getDeviceBindingAuthenticator_ApplicationPin()
  ✅ test_17_execute_singleKeyFound()
  ✅ test_18_execute_noKeysFound()
  ✅ test_18_sign_customDeviceBindingIdentifier()
  ✅ test_19_execute_multipleKeysFound()
  ✅ test_19_execute_single_success_with_valid_custom_claims()
  ✅ test_20_execute_fail_timeout()
  ✅ test_20_execute_single_success_with_invalid_custom_claims()
  ✅ test_21_execute_single_success_with_empty_custom_claims()
  ✅ test_22_sign_CustomDeviceAuthenticatorCustomClaimsAlwaysValid()
  ✅ test_23_sign_CustomDeviceAuthenticatorCustomClaimsAlwaysInvalid()
  ✅ test_24_sign_customPrompt()
FRUserKeysTests
  ✅ test_01_loadAll()
  ✅ test_02_delete_userKey()
LocalDeviceBindingRepositoryTests
  ✅ test_01_persist_without_accessGroup()
  ✅ test_02_getAllKeys_without_accessGroup()
  ✅ test_03_persist_with_accessGroup()
  ✅ test_04_getAllKeys_with_accessGroup()
UserDeviceKeyServiceTests
  ✅ test_01_init()
  ✅ test_02_getKeyStatus_noKeysFound()
  ✅ test_03_getKeyStatus_singleKeyFound()
  ✅ test_04_getKeyStatus_multipleKeysFound()
  ✅ test_05_delete()
UserKeySelectorTests
  ✅ testFormattedDate()
  ✅ testSortedUserKeys()

✅ FRFacebookSignInTests.xctest

FacebookSignInHandlerTests
  ✅ test_01_basic_init()
  ✅ test_02_default_handler_with_idpcallback()

✅ FRGoogleSignInTests.xctest

GoogleSignInHandlerTests
  ✅ test_01_basic_init()
  ✅ test_02_default_handler_with_idpcallback()

✅ FRProximityTests.xctest

BluetoothCollectorTests
  ✅ test_01_basic_init()
  ✅ test_02_collect()
  ✅ test_03_collect_unsupported()
  ✅ test_04_collect_poweredOff()
  ✅ test_05_collect_resetting()
  ✅ test_06_collect_unauthorized()
  ✅ test_07_collect_poweredOn()
DeviceCollectorNodeTests
  ✅ test_01_device_collector_metadata_only()
  ✅ test_02_device_collector_metadata_location_approved()
  ✅ test_03_device_collector_metadata_location_denied()
  ✅ test_04_device_collector_location_only_and_approved()
  ✅ test_05_device_collector_location_only_and_denied()
  ✅ test_06_device_collector_with_message()
  ✅ test_07_device_collector_metadata_location_approved_with_custom_metadata()
DeviceProfileCallbackTests
  ✅ test_01_callback_execute_all()
  ✅ test_02_callback_execute_all_location_denied()
FRProximityTests
  ✅ test_01_sdk_init()
  ✅ test_02_location_accuracy_default()
  ✅ test_03_update_location_accuracy()
LocationCollectorTests
  ✅ test_01_basic_init()
  ✅ test_02_location_status_denied()
  ✅ test_03_location_status_notDetermined()
  ✅ test_04_location_status_restricted()
  ✅ test_05_location_status_authorizedAlways()
  ✅ test_06_location_status_authorizedWhenInUse()
  ✅ test_07_location_fail_to_fetch_location()

✅ PingProtectTests.xctest

PIInitParamsTests
  ✅ test_01_default_values()
  ✅ test_02_getPOInitParams()
PIProtectTests
  ✅ test_00_getData_fail()
  ✅ test_01_initSDK_success()
  ✅ test_02_getData_success()
PingOneProtectEvaluationCallbackTests
  ✅ test_01_basic_init()
  ✅ test_02_callback_construction_successful()
  ✅ test_03_missing_pauseBehavioralData_value()
  ✅ test_04_missing_signalsKey_value()
  ✅ test_05_missing_clientErrorKey_value()
  ✅ test_06_validate_building_response()
  ✅ test_07_getSignals_success_with_initialization()
  ✅ test_08_derived_callback_init()
  ✅ test_09_derived_callback_getSignals_success_with_initialization()
  ✅ test_10_derived_callback_client_error()
PingOneProtectInitializeCallbackTests
  ✅ test_01_basic_init()
  ✅ test_02_callback_construction_successful()
  ✅ test_03_missing_envId_value()
  ✅ test_04_missing_consoleLogEnabled_value()
  ✅ test_05_missing_deviceAttributesToIgnore_value()
  ✅ test_06_missing_customHost_value()
  ✅ test_07_missing_lazyMetadata_value()
  ✅ test_08_missing_behavioralDataCollection_value()
  ✅ test_09_missing_clientErrorKey_value()
  ✅ test_10_validate_building_response()
  ✅ test_11_initialize_success()
  ✅ test_12_derived_callback_init()
  ✅ test_13_derived_callback_client_error()