WordPress.org

Make WordPress Core

Changeset 40263


Ignore:
Timestamp:
03/10/2017 02:32:31 PM (3 years ago)
Author:
johnbillion
Message:

Build/Test tools: Don't override the wp_set_auth_cookie() and wp_clear_auth_cookie() functions.

Overriding pluggable functions in the test suite is asking for trouble in the future. In addition, it means the test suite can't be guaranteed to behave the same as core.

This instead introduces a send_auth_cookies filter which can be hooked in during the test suite to prevent these functions from attempting to send cookie headers to the client.

Fixes #39367

Location:
trunk
Files:
2 edited

Legend:

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

    r40240 r40263  
    901901    do_action( 'set_logged_in_cookie', $logged_in_cookie, $expire, $expiration, $user_id, 'logged_in' );
    902902
     903    /**
     904     * Allows preventing auth cookies from actually being sent to the client.
     905     *
     906     * @since 4.7.4
     907     *
     908     * @param bool $send Whether to send auth cookies to the client.
     909     */
     910    if ( ! apply_filters( 'send_auth_cookies', true ) ) {
     911        return;
     912    }
     913
    903914    setcookie($auth_cookie_name, $auth_cookie, $expire, PLUGINS_COOKIE_PATH, COOKIE_DOMAIN, $secure, true);
    904915    setcookie($auth_cookie_name, $auth_cookie, $expire, ADMIN_COOKIE_PATH, COOKIE_DOMAIN, $secure, true);
     
    922933     */
    923934    do_action( 'clear_auth_cookie' );
     935
     936    /**
     937     * Allows preventing auth cookies from actually being sent to the client.
     938     *
     939     * @since 4.7.4
     940     *
     941     * @param bool $send Whether to send auth cookies to the client.
     942     */
     943    if ( ! apply_filters( 'send_auth_cookies', true ) ) {
     944        return;
     945    }
    924946
    925947    setcookie( AUTH_COOKIE,        ' ', time() - YEAR_IN_SECONDS, ADMIN_COOKIE_PATH,   COOKIE_DOMAIN );
  • trunk/tests/phpunit/includes/functions.php

    r40240 r40263  
    165165// Skip `setcookie` calls in auth_cookie functions due to warning:
    166166// Cannot modify header information - headers already sent by ...
    167 
    168 function wp_set_auth_cookie( $user_id, $remember = false, $secure = '', $token = '' ) {
    169     $auth_cookie = null;
    170     $expire = null;
    171     $expiration = null;
    172     $user_id = null;
    173     $scheme = null;
    174     /** This action is documented in wp-inclues/pluggable.php */
    175     do_action( 'set_auth_cookie', $auth_cookie, $expire, $expiration, $user_id, $scheme );
    176     $logged_in_cookie = null;
    177     /** This action is documented in wp-inclues/pluggable.php */
    178     do_action( 'set_logged_in_cookie', $logged_in_cookie, $expire, $expiration, $user_id, 'logged_in' );
    179 }
    180 
    181 function wp_clear_auth_cookie() {
    182     /** This action is documented in wp-inclues/pluggable.php */
    183     do_action( 'clear_auth_cookie' );
    184 }
     167tests_add_filter( 'send_auth_cookies', '__return_false' );
Note: See TracChangeset for help on using the changeset viewer.