Classes

Coverage Distribution

Complexity

Insufficient Coverage

Class Coverage
Automattic\Jetpack\Connection\Authorize_Json_Api0%
Automattic\Jetpack\Connection\Connection_Assets0%
Automattic\Jetpack\Connection\Tokens_Locks0%
Automattic\Jetpack\Connection\XMLRPC_Connector0%
Automattic\Jetpack\Connection\SSO\Force_2FA0%
Automattic\Jetpack\Connection\SSO\Notices0%
Automattic\Jetpack\Connection\SSO0%
Automattic\Jetpack\Connection\SSO\User_Admin0%
Automattic\Jetpack\Connection\Traits\WPCOM_REST_API_Proxy_Request0%
Automattic\Jetpack\Connection\Users_Connection_Admin1%
Automattic\Jetpack\IdentityCrisis\UI26%
Automattic\Jetpack\Connection\Webhooks\Authorize_Redirect40%
Automattic\Jetpack\Connection\Secrets46%
Automattic\Jetpack\Connection\XMLRPC_Async_Call47%
Automattic\Jetpack\Connection\External_Storage49%
Automattic\Jetpack\Heartbeat51%
Automattic\Jetpack\Tracking54%
Automattic\Jetpack\Connection\Urls58%
Automattic\Jetpack\Connection\SSO\Helpers59%
Automattic\Jetpack\Connection\Manager60%
Automattic\Jetpack\Connection\Webhooks62%
Automattic\Jetpack\Partner_Coupon68%
Automattic\Jetpack\Identity_Crisis71%
Automattic\Jetpack\Connection\Client74%
Automattic\Jetpack\Connection\Plugin_Storage76%
Automattic\Jetpack\Connection\Tokens77%
Automattic\Jetpack\Connection\Utils79%
Automattic\Jetpack\Connection\Plugin80%
Automattic\Jetpack\Connection\Initial_State83%
Automattic\Jetpack\IdentityCrisis\REST_Endpoints85%
Automattic\Jetpack\Partner85%
Automattic\Jetpack\Connection\Error_Handler85%
Automattic\Jetpack\Connection\Connection_Notice86%
Automattic\Jetpack\Connection\Rest_Authentication87%

Project Risks

Class Coverage Complexity CRAP
Automattic\Jetpack\Connection\SSO\User_Admin0.0%13819182
Automattic\Jetpack\Connection\SSO0.0%13117292
Automattic\Jetpack\Connection\Manager60.0%3287203
Automattic\Jetpack\Identity_Crisis71.6%175878
Automattic\Jetpack\Connection\Authorize_Json_Api0.0%26702
Automattic\Jetpack\IdentityCrisis\UI26.5%34492
Automattic\Jetpack\Connection\SSO\Force_2FA0.0%16272
Automattic\Jetpack\Connection\Tokens77.0%101224
Automattic\Jetpack\Tracking54.5%42207
Automattic\Jetpack\Connection\External_Storage49.3%36205
Automattic\Jetpack\Connection\Traits\WPCOM_REST_API_Proxy_Request0.0%13182
Automattic\Jetpack\Connection\Users_Connection_Admin1.2%13176
Automattic\Jetpack\Connection\Error_Handler85.8%128174
Automattic\Jetpack\Connection\Secrets46.4%29158
Automattic\Jetpack\Connection\Webhooks\Authorize_Redirect40.3%25158
Automattic\Jetpack\Connection\SSO\Helpers59.2%39142
Automattic\Jetpack\Partner_Coupon68.4%51133
Automattic\Jetpack\Connection\SSO\Notices0.0%11132
Automattic\Jetpack\Heartbeat51.9%30129
Automattic\Jetpack\Connection\Client74.4%61123
Automattic\Jetpack\Connection\Urls58.6%2778
Automattic\Jetpack\Connection\Webhooks63.0%2971
Automattic\Jetpack\Connection\XMLRPC_Connector0.0%756
Automattic\Jetpack\Connection\Plugin_Storage76.4%3041
Automattic\Jetpack\Connection\XMLRPC_Async_Call47.8%1337
Automattic\Jetpack\Connection\Rest_Authentication87.5%2930
Automattic\Jetpack\Connection\Tokens_Locks0.0%530
Automattic\Jetpack\IdentityCrisis\REST_Endpoints85.4%2425
Automattic\Jetpack\Partner85.7%2021
Automattic\Jetpack\Connection\Connection_Notice86.4%1818
Automattic\Jetpack\Connection\Utils79.1%1213
Automattic\Jetpack\Connection\Plugin80.0%99

Methods

Coverage Distribution

Complexity

Insufficient Coverage

Method Coverage
verify_json_api_authorization_request0%
add_token_to_login_redirect_json_api_authorization0%
store_json_api_authorization_token0%
login_message_json_api_authorization0%
wpcom_json_api_request_as_user0%
_stringify_data0%
configure0%
register_assets0%
initialize_notices0%
register_verify_error_endpoint0%
log_event0%
cron_exec0%
jetpack_xmlrpc_methods0%
xmlrpc_data_response0%
cli_callback0%
set_connection_script_data0%
render_script0%
configure0%
add_connection_status_invalidation_hooks0%
setup_xmlrpc_handlers0%
initialize_rest_api_registration_connector0%
alternate_xmlrpc0%
remove_non_jetpack_xmlrpc_methods0%
require_jetpack_authentication0%
authenticate_jetpack0%
is_missing_connection_owner0%
connect_user0%
add_register_request_param0%
generate_secrets0%
remove_connection0%
handle_registration0%
handle_authorization0%
get_token0%
sha1_base640%
is_usable_domain0%
xmlrpc_methods0%
reset_raw_post_data0%
public_xmlrpc_methods0%
jetpack_get_options0%
xmlrpc_options0%
add_stats_to_heartbeat0%
get_site_id0%
clean_scheduled0%
register_coupon_admin_hooks0%
catch_coupon0%
maybe_purge_coupon0%
get_one0%
delete0%
get_slug0%
is_signed_with_user_token0%
verify_registration0%
connection_authorize_url0%
log_new_signature_error0%
set_reject0%
__construct0%
aiowpm_set_lock0%
aiowpm_remove_lock0%
init_aiowpm0%
validate_blog_token0%
ajax_tracks0%
register_tracks_functions_scripts0%
enqueue_tracks_scripts0%
normalize_www_in_url0%
main_network_site_url0%
maybe_add_origin_site_id0%
init0%
add_connection_column0%
render_connection_column0%
enqueue_scripts0%
add_connection_column_styles0%
get_column_id0%
init_default_constants0%
init0%
fallback_jetpack_controller0%
handle_authorize_redirect0%
do_exit0%
do_calls0%
__construct0%
xmlrpc_methods0%
verify_registration0%
output0%
do_jetpack_idc_disconnect0%
maybe_clear_migrate_option0%
wordpress_init0%
display_admin_bar_button0%
detect_possible_dynamic_site_url0%
locate_wp_config0%
maybe_update_ip_requester0%
start_fresh_connection0%
init0%
enqueue_scripts0%
render_container0%
get_initial_state0%
get_initial_state_data0%
get_platform0%
__construct0%
plugins_loaded0%
admin_notice0%
force_2fa0%
jetpack_set_two_step0%
get_login_error_message0%
show_sso_login0%
clear_wpcom_profile_cookies0%
delete_connection_for_user0%
error_msg_enable_two_step0%
error_msg_email_already_exists0%
error_msg_identity_crisis0%
error_invalid_response_data0%
error_unable_to_create_user0%
disable_default_login_form0%
msg_login_by_jetpack0%
get_sso_required_message0%
cant_find_user0%
sso_not_allowed_in_safe_mode0%
__construct0%
get_instance0%
sync_sso_callables0%
sso_reminder_logout_wpcom0%
maybe_logout_user0%
xmlrpc_methods0%
xmlrpc_user_disconnect0%
login_enqueue_scripts0%
login_body_class0%
print_inline_admin_css0%
register_settings0%
render_require_two_step0%
validate_jetpack_sso_require_two_step0%
render_match_by_email0%
validate_jetpack_sso_match_by_email0%
wants_to_login0%
login_init0%
display_sso_login_form0%
save_cookies0%
login_form0%
clear_cookies_after_login0%
disconnect0%
request_initial_nonce0%
handle_login0%
profile_page_url0%
build_sso_button0%
build_sso_button_url0%
get_sso_url_or_die0%
build_sso_url0%
build_reauth_and_sso_url0%
get_user_by_wpcom_id0%
maybe_authorize_user_after_sso0%
store_wpcom_profile_cookies_on_logout0%
is_user_connected0%
get_user_data0%
__construct0%
jetpack_new_users_styles0%
set_user_query0%
revoke_user_invite0%
handle_invitation_results0%
invite_user_to_wpcom0%
send_revoke_wpcom_invite0%
handle_request_revoke_invite0%
handle_request_resend_invite0%
jetpack_user_table_row_actions0%
render_invitation_email_message0%
render_invitations_notices_for_deleted_users0%
render_wpcom_invite_checkbox0%
render_wpcom_external_user_checkbox0%
render_custom_email_message_form_field0%
should_send_wp_mail_new_user0%
send_wpcom_mail_user_invite0%
rebuild_invite_cache0%
get_pending_cached_wpcom_invite0%
has_pending_wpcom_invite0%
delete_external_contributor0%
jetpack_show_connection_status0%
create_error_notice_and_redirect0%
jetpack_user_table_styles0%
enqueue_scripts0%
handle0%
proxy_request_to_wpcom0%
proxy_request_to_wpcom_as_user0%
proxy_request_to_wpcom_as_blog0%
generic_admin_notice_error17%
verify24%
validate_remote_register_response29%
add_ip_requester_to_url_validation_response30%
normalize_url_protocol_agnostic36%
set_time_diff40%
handle_connect_url_redirect40%
migrate_stats_and_subscribers41%
_wp_remote_request42%
encrypt_data_to_wpcom50%
set_lock50%
wpcom_json_api_request_as_blog57%
ensure_configured57%
confirm_safe_mode58%
disconnect_user_force60%
disconnect_site60%
authorize62%
get_value62%
apply_activation_source_to_args66%
is_sync_enabled66%
add_subsidiary_id_to_params_array66%
add_affiliate_code_to_params_array66%
jetpack_reconnect_permission_check66%
jetpack_register_permission_check66%
set_connection_owner_permission_check66%
get_access_token70%
internal_verify_xml_rpc_signature70%
get_coupon_preset71%
update_active_plugins_option71%
is_only71%
get72%
connection_register73%
filter_connect_request_body73%
should_allow_error_filtering75%
delete_all_api_errors75%
update_package_versions_option75%
array_keys_exist75%
sign_role75%
disconnect_user75%
url_is_ip75%
create_secret75%
filter_connect_redirect_url75%
refresh_blog_token76%
get77%
get_code_as_array77%
is_locked77%
update_user_token78%
__construct80%
deactivate80%
rest_heartbeat_data_permission_check80%
get_coupon_product80%
configure80%
remote_authorize80%
remote_provision_permission_check80%
connection_plugins_permission_check80%
connection_check_permission_check80%
should_remote_validate_idc80%
add_secret_to_url_validation_response80%
get_new_signature80%
register81%
clear_all_idc_options81%
try_registration82%
get_partner_code83%
tracks_get_identity84%
get_consumer_data84%
unlink_user85%
get_custom_login_url85%
get_protocol_normalized_url86%
generate_user86%
is_connected87%
disconnect_user87%
remote_provision87%
controller87%
__construct87%
get_valid_delay_from_existing_idc87%
wp_rest_authenticate87%
jetpack_react_dashboard_error88%
should_log_event88%
disconnect_site_wpcom88%
maybe_purge_coupon_by_added_date88%
handle_authorize88%
generate89%
build_signed_request89%

Project Risks

Method Coverage Complexity CRAP
handle_login0.0%28812
verify_json_api_authorization_request0.0%23552
handle_invitation_results0.0%22506
log_event0.0%15240
send_wpcom_mail_user_invite0.0%15240
invite_user_to_wpcom0.0%14210
login_init0.0%12156
handle0.0%12156
setup_xmlrpc_handlers0.0%11132
proxy_request_to_wpcom0.0%11132
verify24.2%15113
handle_request_revoke_invite0.0%10110
is_usable_domain0.0%990
maybe_clear_migrate_option0.0%990
login_form0.0%990
validate_remote_register_response29.2%1373
ajax_tracks0.0%872
locate_wp_config0.0%872
revoke_user_invite0.0%872
jetpack_user_table_row_actions0.0%872
internal_verify_xml_rpc_signature70.6%3258
maybe_purge_coupon0.0%756
validate_blog_token0.0%756
get_access_token70.4%3156
normalize_www_in_url0.0%756
do_calls0.0%756
get_initial_state_data0.0%756
handle_request_resend_invite0.0%756
rebuild_invite_cache0.0%756
_wp_remote_request42.3%1451
wpcom_json_api_request_as_user0.0%642
_stringify_data0.0%642
initialize_notices0.0%642
cron_exec0.0%642
add_stats_to_heartbeat0.0%642
__construct0.0%642
save_cookies0.0%642
has_pending_wpcom_invite0.0%642
set_time_diff40.0%1031
handle_connect_url_redirect40.0%1031
cli_callback0.0%530
authenticate_jetpack0.0%530
get_site_id0.0%530
wordpress_init0.0%530
detect_possible_dynamic_site_url0.0%530
force_2fa0.0%530
login_body_class0.0%530
render_invitations_notices_for_deleted_users0.0%530
render_custom_email_message_form_field0.0%530
get_pending_cached_wpcom_invite0.0%530
get77.1%2227
generic_admin_notice_error17.6%626
configure0.0%420
connect_user0.0%420
catch_coupon0.0%420
init0.0%420
output0.0%420
display_admin_bar_button0.0%420
start_fresh_connection0.0%420
get_platform0.0%420
jetpack_set_two_step0.0%420
wants_to_login0.0%420
clear_cookies_after_login0.0%420
request_initial_nonce0.0%420
get_sso_url_or_die0.0%420
build_reauth_and_sso_url0.0%420
maybe_authorize_user_after_sso0.0%420
jetpack_show_connection_status0.0%420
authorize62.2%1219
wp_rest_authenticate87.7%1919
register81.3%1718
get_consumer_data84.6%1616
build_signed_request89.6%1515
delete_all_api_errors75.0%1214
get_value62.5%913
add_ip_requester_to_url_validation_response30.0%513
jetpack_react_dashboard_error88.9%1212
remove_non_jetpack_xmlrpc_methods0.0%312
disconnect_user87.5%1212
add_register_request_param0.0%312
jetpack_get_options0.0%312
get_one0.0%312
delete0.0%312
log_new_signature_error0.0%312
maybe_add_origin_site_id0.0%312
render_connection_column0.0%312
maybe_update_ip_requester0.0%312
init0.0%312
admin_notice0.0%312
clear_wpcom_profile_cookies0.0%312
delete_connection_for_user0.0%312
sso_reminder_logout_wpcom0.0%312
display_sso_login_form0.0%312
build_sso_url0.0%312
store_wpcom_profile_cookies_on_logout0.0%312
render_wpcom_invite_checkbox0.0%312
render_wpcom_external_user_checkbox0.0%312
should_send_wp_mail_new_user0.0%312
disconnect_site60.9%811
unlink_user85.0%1111
refresh_blog_token76.7%910
migrate_stats_and_subscribers41.2%510
connection_register73.7%89
tracks_get_identity84.0%99
controller87.5%88
normalize_url_protocol_agnostic36.4%48
disconnect_site_wpcom88.9%77
update_user_token78.9%77
get_new_signature80.8%77
is_locked77.8%77
xmlrpc_data_response0.0%26
add_connection_status_invalidation_hooks0.0%26
require_jetpack_authentication0.0%26
is_missing_connection_owner0.0%26
disconnect_user_force60.0%56
try_registration82.4%66
handle_registration0.0%26
xmlrpc_methods0.0%26
public_xmlrpc_methods0.0%26
xmlrpc_options0.0%26
ensure_configured57.1%56
is_signed_with_user_token0.0%26
connection_authorize_url0.0%26
__construct0.0%26
enqueue_scripts0.0%26
generate_user87.0%66
handle_authorize88.9%66
do_jetpack_idc_disconnect0.0%26
enqueue_scripts0.0%26
plugins_loaded0.0%26
show_sso_login0.0%26
disable_default_login_form0.0%26
get_instance0.0%26
maybe_logout_user0.0%26
xmlrpc_user_disconnect0.0%26
login_enqueue_scripts0.0%26
validate_jetpack_sso_require_two_step0.0%26
validate_jetpack_sso_match_by_email0.0%26
disconnect0.0%26
build_sso_button0.0%26
build_sso_button_url0.0%26
get_user_by_wpcom_id0.0%26
__construct0.0%26
delete_external_contributor0.0%26
create_error_notice_and_redirect0.0%26
enqueue_scripts0.0%26
filter_connect_request_body73.7%66
__construct80.0%55
get_coupon_product80.0%55
get_code_as_array77.8%55
is_only71.4%55
generate89.5%55
sign_role75.0%55
get_protocol_normalized_url86.7%55
get_valid_delay_from_existing_idc87.5%55
should_remote_validate_idc80.0%55
should_allow_error_filtering75.0%44
is_connected87.5%44
get_coupon_preset71.4%44
get_partner_code83.3%44
update_active_plugins_option71.4%44
remote_provision_permission_check80.0%44
add_secret_to_url_validation_response80.0%44
filter_connect_redirect_url75.0%44
wpcom_json_api_request_as_blog57.1%33
should_log_event88.9%33
rest_heartbeat_data_permission_check80.0%33
apply_activation_source_to_args66.7%33
update_package_versions_option75.0%33
is_sync_enabled66.7%33
maybe_purge_coupon_by_added_date88.9%33
array_keys_exist75.0%33
remote_provision87.5%33
connection_plugins_permission_check80.0%33
connection_check_permission_check80.0%33
get72.7%33
disconnect_user75.0%33
url_is_ip75.0%33
create_secret75.0%33
get_custom_login_url85.7%33
encrypt_data_to_wpcom50.0%22
deactivate80.0%22
add_subsidiary_id_to_params_array66.7%22
add_affiliate_code_to_params_array66.7%22
configure80.0%22
remote_authorize80.0%22
jetpack_reconnect_permission_check66.7%22
jetpack_register_permission_check66.7%22
set_connection_owner_permission_check66.7%22
set_lock50.0%22
__construct87.5%22
clear_all_idc_options81.8%22
confirm_safe_mode58.3%22