WordPress.org

Make WordPress Core

Changeset 40809


Ignore:
Timestamp:
05/20/17 02:23:00 (6 months ago)
Author:
mikeschroder
Message:

Media: Decode HTML entities in author_name before sending to JS.

In wp_prepare_attachment_for_js():

  • Normalize behavior when author does not exist by returning '(no author)' for authorName in these cases.
  • Decode HTML entities in author_name.
  • Add tests for both of the above.

Props arshidkv12, ocean90, sloisel, mikeschroder.
Fixes #39955.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/media.php

    r40650 r40809  
    30993099 
    31003100    $author = new WP_User( $attachment->post_author ); 
    3101     $response['authorName'] = $author->display_name; 
     3101    if ( $author->exists() ) { 
     3102        $response['authorName'] = html_entity_decode( $author->display_name, ENT_QUOTES, get_bloginfo( 'charset' ) ); 
     3103    } else { 
     3104        $response['authorName'] = __( '(no author)' ); 
     3105    } 
    31023106 
    31033107    if ( $attachment->post_parent ) { 
  • trunk/tests/phpunit/tests/media.php

    r40070 r40809  
    268268        $this->assertEquals( 'image', $prepped['type'] ); 
    269269        $this->assertEquals( '', $prepped['subtype'] ); 
     270 
     271        // Test that if author is not found, we return "(no author)" as `display_name`. 
     272        // The previously used test post contains no author, so we can reuse it. 
     273        $this->assertEquals( '(no author)', $prepped['authorName'] ); 
     274 
     275        // Test that if author has HTML entities in display_name, they're decoded correctly. 
     276        $html_entity_author = self::factory()->user->create( array( 
     277            'display_name' => 'You & Me', 
     278        ) ); 
     279        $post->post_author = $html_entity_author; 
     280        $prepped = wp_prepare_attachment_for_js( $post ); 
     281        $this->assertEquals( 'You & Me', $prepped['authorName'] ); 
    270282    } 
    271283 
Note: See TracChangeset for help on using the changeset viewer.