Changeset 42773
- Timestamp:
- 03/04/2018 05:13:35 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-admin/includes/file.php
r42761 r42773 994 994 } 995 995 996 if ( 200 != wp_remote_retrieve_response_code( $response ) ) { 996 $response_code = wp_remote_retrieve_response_code( $response ); 997 998 if ( 200 != $response_code ) { 999 $data = array( 1000 'code' => $response_code, 1001 ); 1002 1003 // Retrieve a sample of the response body for debugging purposes. 1004 $tmpf = fopen( $tmpfname, 'rb' ); 1005 if ( $tmpf ) { 1006 /** 1007 * Filters the maximum error response body size in `download_url()`. 1008 * 1009 * @since 5.0.0 1010 * 1011 * @see download_url() 1012 * 1013 * @param int $size The maximum error response body size. Default 1 KB. 1014 */ 1015 $response_size = apply_filters( 'download_url_error_max_body_size', KB_IN_BYTES ); 1016 $data['body'] = fread( $tmpf, $response_size ); 1017 fclose( $tmpf ); 1018 } 1019 997 1020 unlink( $tmpfname ); 998 return new WP_Error( 'http_404', trim( wp_remote_retrieve_response_message( $response ) ) );1021 return new WP_Error( 'http_404', trim( wp_remote_retrieve_response_message( $response ) ), $data ); 999 1022 } 1000 1023 -
trunk/tests/phpunit/tests/admin/includesFile.php
r42343 r42773 32 32 $_SERVER['SCRIPT_FILENAME'] = $sfn; 33 33 } 34 35 /** 36 * @ticket 43329 37 */ 38 public function test_download_url_non_200_response_code() { 39 add_filter( 'pre_http_request', array( $this, '_fake_download_url_non_200_response_code' ), 10, 3 ); 40 41 $error = download_url( 'test_download_url_non_200' ); 42 $this->assertWPError( $error ); 43 $this->assertEquals( array( 44 'code' => 418, 45 'body' => 'This is an unexpected error message from your favorite server.', 46 ), $error->get_error_data() ); 47 48 add_filter( 'download_url_error_max_body_size', array( $this, '__return_5' ) ); 49 50 $error = download_url( 'test_download_url_non_200' ); 51 $this->assertWPError( $error ); 52 $this->assertEquals( array( 53 'code' => 418, 54 'body' => 'This ', 55 ), $error->get_error_data() ); 56 57 remove_filter( 'download_url_error_max_body_size', array( $this, '__return_5' ) ); 58 remove_filter( 'pre_http_request', array( $this, '_fake_download_url_non_200_response_code' ) ); 59 } 60 61 public function _fake_download_url_non_200_response_code( $response, $args, $url ) { 62 file_put_contents( $args['filename'], 'This is an unexpected error message from your favorite server.' ); 63 return array( 64 'response' => array( 65 'code' => 418, 66 'message' => "I'm a teapot!", 67 ), 68 ); 69 } 70 71 public function __return_5() { 72 return 5; 73 } 34 74 }
Note: See TracChangeset
for help on using the changeset viewer.