Make WordPress Core

Changeset 40263


Ignore:
Timestamp:
03/10/2017 02:32:31 PM (9 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.