diff options
Diffstat (limited to 'plugins/jetpack/_inc/lib/debugger/debug-functions-for-php53.php')
-rw-r--r-- | plugins/jetpack/_inc/lib/debugger/debug-functions-for-php53.php | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/plugins/jetpack/_inc/lib/debugger/debug-functions-for-php53.php b/plugins/jetpack/_inc/lib/debugger/debug-functions-for-php53.php new file mode 100644 index 00000000..a32d9fee --- /dev/null +++ b/plugins/jetpack/_inc/lib/debugger/debug-functions-for-php53.php @@ -0,0 +1,92 @@ +<?php +/** + * WP Site Health functionality temporarily stored in this file until all of Jetpack is PHP 5.3+ + * + * @package Jetpack. + */ + +/** + * Test runner for Core's Site Health module. + * + * @since 7.3.0 + */ +function jetpack_debugger_ajax_local_testing_suite() { + check_ajax_referer( 'health-check-site-status' ); + if ( ! current_user_can( 'jetpack_manage_modules' ) ) { + wp_send_json_error(); + } + $tests = new Jetpack_Cxn_Tests(); + wp_send_json_success( $tests->output_results_for_core_async_site_health() ); +} +/** + * Adds the Jetpack Local Testing Suite to the Core Site Health system. + * + * @since 7.3.0 + * + * @param array $core_tests Array of tests from Core's Site Health. + * + * @return array $core_tests Array of tests for Core's Site Health. + */ +function jetpack_debugger_site_status_tests( $core_tests ) { + $cxn_tests = new Jetpack_Cxn_Tests(); + $tests = $cxn_tests->list_tests( 'direct' ); + foreach ( $tests as $test ) { + $core_tests['direct'][ $test['name'] ] = array( + 'label' => __( 'Jetpack: ', 'jetpack' ) . $test['name'], + 'test' => function() use ( $test, $cxn_tests ) { // phpcs:ignore PHPCompatibility.FunctionDeclarations.NewClosure.Found + $results = $cxn_tests->run_test( $test['name'] ); + // Test names are, by default, `test__some_string_of_text`. Let's convert to "Some String Of Text" for humans. + $label = ucwords( + str_replace( + '_', + ' ', + str_replace( 'test__', '', $test['name'] ) + ) + ); + $return = array( + 'label' => $label, + 'status' => 'good', + 'badge' => array( + 'label' => __( 'Jetpack', 'jetpack' ), + 'color' => 'green', + ), + 'description' => sprintf( + '<p>%s</p>', + __( 'This test successfully passed!', 'jetpack' ) + ), + 'actions' => '', + 'test' => 'jetpack_' . $test['name'], + ); + if ( is_wp_error( $results ) ) { + return; + } + if ( false === $results['pass'] ) { + $return['label'] = $results['message']; + $return['status'] = $results['severity']; + $return['description'] = sprintf( + '<p>%s</p>', + $results['resolution'] + ); + if ( ! empty( $results['action'] ) ) { + $return['actions'] = sprintf( + '<a class="button button-primary" href="%1$s" target="_blank" rel="noopener noreferrer">%2$s <span class="screen-reader-text">%3$s</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a>', + esc_url( $results['action'] ), + __( 'Resolve', 'jetpack' ), + /* translators: accessibility text */ + __( '(opens in a new tab)', 'jetpack' ) + ); + } + } + + return $return; + }, + ); + } + $core_tests['async']['jetpack_test_suite'] = array( + 'label' => __( 'Jetpack Tests', 'jetpack' ), + 'test' => 'jetpack_local_testing_suite', + ); + + return $core_tests; +} + |