Changeset 59517
- Timestamp:
- 12/16/2024 02:06:05 PM (8 weeks ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/https-detection.php
r56664 r59517 64 64 * Checks whether HTTPS is supported for the server and domain. 65 65 * 66 * This function makes an HTTP request through `wp_get_https_detection_errors()` 67 * to check for HTTPS support. As this process can be resource-intensive, 68 * it should be used cautiously, especially in performance-sensitive environments, 69 * to avoid potential latency issues. 70 * 66 71 * @since 5.7.0 67 72 * … … 69 74 */ 70 75 function wp_is_https_supported() { 71 $https_detection_errors = get_option( 'https_detection_errors');76 $https_detection_errors = wp_get_https_detection_errors(); 72 77 73 // If option has never been set by the Cron hook before, run it on-the-fly as fallback. 74 if ( false === $https_detection_errors ) { 75 wp_update_https_detection_errors(); 76 77 $https_detection_errors = get_option( 'https_detection_errors' ); 78 } 79 80 // If there are no detection errors, HTTPS is supported. 78 // If there are errors, HTTPS is not supported. 81 79 return empty( $https_detection_errors ); 82 80 } … … 85 83 * Runs a remote HTTPS request to detect whether HTTPS supported, and stores potential errors. 86 84 * 87 * This internal function is called by a regular Cron hook to ensure HTTPS support is detected and maintained. 85 * This function checks for HTTPS support by making an HTTP request. As this process can be resource-intensive, 86 * it should be used cautiously, especially in performance-sensitive environments. 87 * It is called when HTTPS support needs to be validated. 88 88 * 89 89 * @since 6.4.0 90 90 * @access private 91 * 92 * @return array An array containing potential detection errors related to HTTPS, or an empty array if no errors are found. 91 93 */ 92 94 function wp_get_https_detection_errors() { -
trunk/tests/phpunit/tests/https-detection.php
r56664 r59517 42 42 */ 43 43 public function test_wp_is_https_supported() { 44 // The function works with cached errors, so only test that here. 45 $wp_error = new WP_Error(); 44 // Simulate that HTTPS is supported by returning an empty error array. 45 add_filter( 46 'pre_wp_get_https_detection_errors', 47 function () { 48 return new WP_Error(); // No errors means HTTPS is supported. 49 } 50 ); 46 51 47 52 // No errors, so HTTPS is supported. 48 update_option( 'https_detection_errors', $wp_error->errors );49 53 $this->assertTrue( wp_is_https_supported() ); 50 54 51 // Errors, so HTTPS is not supported. 52 $wp_error->add( 'ssl_verification_failed', 'SSL verification failed.' ); 53 update_option( 'https_detection_errors', $wp_error->errors ); 55 // Now we simulate that HTTPS is not supported by returning errors. 56 $support_errors = new WP_Error(); 57 $support_errors->add( 'ssl_verification_failed', 'SSL verification failed.' ); 58 59 // Short-circuit the detection logic to return our simulated errors. 60 add_filter( 61 'pre_wp_get_https_detection_errors', 62 function () use ( $support_errors ) { 63 return $support_errors; 64 } 65 ); 66 67 // Test that HTTPS is not supported due to the simulated errors. 54 68 $this->assertFalse( wp_is_https_supported() ); 69 70 // Remove the filter to avoid affecting other tests. 71 remove_filter( 'pre_wp_get_https_detection_errors', '__return_null' ); 55 72 } 56 73
Note: See TracChangeset
for help on using the changeset viewer.