Make WordPress Core

Changeset 39158


Ignore:
Timestamp:
11/08/2016 06:41:57 AM (7 years ago)
Author:
rmccue
Message:

REST API: Require 6 characters for comment email addresses.

The regular comments API requires 6 characters rather than 3, so we need to match this.

Props mangeshp, dd32.
Fixes #38506.

Location:
trunk
Files:
2 edited

Legend:

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

    r39061 r39158  
    10371037
    10381038            case 'email' :
    1039                 if ( ! is_email( $value ) ) {
     1039                // is_email() checks for 3 characters (a@b), but
     1040                // wp_handle_comment_submission() requires 6 characters (a@b.co)
     1041                //
     1042                // https://core.trac.wordpress.org/ticket/38506
     1043                if ( ! is_email( $value ) || strlen( $value ) < 6 ) {
    10401044                    return new WP_Error( 'rest_invalid_email', __( 'The email address you provided is invalid.' ) );
    10411045                }
  • trunk/tests/phpunit/tests/rest-api/rest-comments-controller.php

    r39157 r39158  
    907907
    908908        update_option( 'require_name_email', 0 );
     909    }
     910
     911    public function test_create_comment_author_email_too_short() {
     912        wp_set_current_user( 0 );
     913
     914        $params = array(
     915            'post'         => self::$post_id,
     916            'author_name'  => 'Homer J. Simpson',
     917            'author_email' => 'a@b',
     918            'content'      => 'in this house, we obey the laws of thermodynamics!',
     919        );
     920
     921        $request = new WP_REST_Request( 'POST', '/wp/v2/comments' );
     922        $request->add_header( 'content-type', 'application/json' );
     923        $request->set_body( wp_json_encode( $params ) );
     924        $response = $this->server->dispatch( $request );
     925
     926        $this->assertErrorResponse( 'rest_invalid_param', $response, 400 );
     927
     928        $data = $response->get_data();
     929        $this->assertArrayHasKey( 'author_email', $data['data']['params'] );
    909930    }
    910931
Note: See TracChangeset for help on using the changeset viewer.