Ticket #15928: 15928.8.patch
File 15928.8.patch, 3.8 KB (added by , 10 years ago) |
---|
-
src/wp-includes/default-filters.php
diff --git src/wp-includes/default-filters.php src/wp-includes/default-filters.php index dc0c8f8..adc3840 100644
add_filter( 'the_content', 'convert_chars' ); 134 134 add_filter( 'the_content', 'wpautop' ); 135 135 add_filter( 'the_content', 'shortcode_unautop' ); 136 136 add_filter( 'the_content', 'prepend_attachment' ); 137 add_filter( 'the_content', 'wp_filter_uploads_scheme' ); 137 138 138 139 add_filter( 'the_excerpt', 'wptexturize' ); 139 140 add_filter( 'the_excerpt', 'convert_smilies' ); -
src/wp-includes/formatting.php
diff --git src/wp-includes/formatting.php src/wp-includes/formatting.php index 411eaa8..9fd13dc 100644
function wp_spaces_regexp() { 3995 3995 3996 3996 return $spaces; 3997 3997 } 3998 3999 /** 4000 * Returns scheme relative URLs for local URLs contained in a string of text. 4001 * Created to be a display_filter for $content, but could have other uses. 4002 * 4003 * @param string $content A string which might contain a URL. 4004 * @return string The found URL. 4005 */ 4006 function wp_filter_uploads_scheme( $content ) { 4007 if ( empty( $content ) ) { 4008 return false; 4009 } 4010 4011 // get upload directory and set baseurl 4012 $upload_dir = wp_upload_dir(); 4013 $upload_url = $upload_dir['baseurl']; 4014 4015 // set relative URL scheme for the upload directory 4016 $rel_upload_url = set_url_scheme( $upload_dir['baseurl'] ); 4017 4018 // split the upload URL because both schemes might be found in the content 4019 list( $scheme, $url) = explode( ':', $upload_url, 2 ); 4020 4021 $content = preg_replace( "|https?:" . $url ."|", $rel_upload_url, $content ); 4022 4023 return $content; 4024 } 4025 No newline at end of file -
src/wp-includes/post.php
diff --git src/wp-includes/post.php src/wp-includes/post.php index 81cd12a..5f08625 100644
function wp_get_attachment_url( $post_id = 0 ) { 4946 4946 $url = get_the_guid( $post->ID ); 4947 4947 } 4948 4948 4949 // Match the current scheme. 4950 $url = set_url_scheme( $url ); 4951 4949 4952 /** 4950 4953 * Filter the attachment URL. 4951 4954 * -
tests/phpunit/tests/post/attachments.php
diff --git tests/phpunit/tests/post/attachments.php tests/phpunit/tests/post/attachments.php index d079654..7c4fb06 100644
class Tests_Post_Attachments extends WP_UnitTestCase { 278 278 $this->assertEquals( $attachment->post_parent, $post_id ); 279 279 } 280 280 281 /** 282 * @ticket 15928 283 */ 284 public function test_wp_get_attachment_with_https_off() { 285 $filename = ( DIR_TESTDATA . '/images/test-image.jpg' ); 286 $contents = file_get_contents( $filename ); 287 288 $upload = wp_upload_bits( basename( $filename ), null, $contents ); 289 $this->assertTrue( empty( $upload['error'] ) ); 290 291 // Set attachment ID 292 $attachment_id = $this->_make_attachment( $upload ); 293 294 $is_ssl = is_ssl(); 295 $_SERVER['HTTPS'] = 'off'; 296 297 // Test that wp_get_attachemt_url returns with http scheme 298 $url = wp_get_attachment_url( $attachment_id ); 299 $this->assertSame( $url, set_url_scheme( $url, 'http' ) ); 300 301 // Cleanup 302 $_SERVER['HTTPS'] = $is_ssl ? 'on' : 'off'; 303 } 304 305 /** 306 * @ticket 15928 307 */ 308 public function test_wp_get_attachment_url_with_https_on() { 309 $filename = ( DIR_TESTDATA . '/images/test-image.jpg' ); 310 $contents = file_get_contents( $filename ); 311 312 $upload = wp_upload_bits( basename( $filename ), null, $contents ); 313 $this->assertTrue( empty( $upload['error'] ) ); 314 315 // Set attachment ID 316 $attachment_id = $this->_make_attachment( $upload ); 317 318 $is_ssl = is_ssl(); 319 $_SERVER['HTTPS'] = 'on'; 320 321 // Test that wp_get_attachemt_url returns with https scheme 322 $url = wp_get_attachment_url( $attachment_id ); 323 $this->assertSame( $url, set_url_scheme( $url, 'https' ) ); 324 325 // Cleanup 326 $_SERVER['HTTPS'] = $is_ssl ? 'on' : 'off'; 327 } 328 281 329 } 330