Make WordPress Core

Ticket #46499: 46499.diff

File 46499.diff, 11.1 KB (added by andizer, 6 years ago)
  • tests/phpunit/includes/abstract-testcase.php

     
    4646                return $factory;
    4747        }
    4848
     49        /**
     50         * Retrieves the name of the current called class.
     51         *
     52         * @return string The class name.
     53         */
    4954        public static function get_called_class() {
    5055                if ( function_exists( 'get_called_class' ) ) {
    5156                        return get_called_class();
     
    6166                return $backtrace[2]['class'];
    6267        }
    6368
     69        /**
     70         * Runs the routine before setting up all tests.
     71         *
     72         * @return void
     73         */
    6474        public static function setUpBeforeClass() {
    6575                global $wpdb;
    6676
     
    8292                self::commit_transaction();
    8393        }
    8494
     95        /**
     96         * Runs the routine after all tests have been ran.
     97         *
     98         * @return void
     99         */
    85100        public static function tearDownAfterClass() {
    86101                parent::tearDownAfterClass();
    87102
     
    99114                self::commit_transaction();
    100115        }
    101116
     117        /**
     118         * Runs the routine before each test is executed.
     119         *
     120         * @return void
     121         */
    102122        public function setUp() {
    103123                set_time_limit( 0 );
    104124
     
    138158
    139159        /**
    140160         * After a test method runs, reset any state in WordPress the test method might have changed.
     161         *
     162         * @return void
    141163         */
    142164        public function tearDown() {
    143165                global $wpdb, $wp_query, $wp;
     
    165187                wp_set_current_user( 0 );
    166188        }
    167189
     190        /**
     191         * Cleans the global scope (e.g the $_GET and $_POST).
     192         *
     193         * @return void
     194         */
    168195        public function clean_up_global_scope() {
    169196                $_GET  = array();
    170197                $_POST = array();
     
    306333                }
    307334        }
    308335
     336        /**
     337         * Flushes the WordPress cache.
     338         *
     339         * @return void
     340         */
    309341        public static function flush_cache() {
    310342                global $wp_object_cache;
    311343                $wp_object_cache->group_ops      = array();
     
    341373                }
    342374        }
    343375
     376        /**
     377         * Starts a database transaction.
     378         *
     379         * @return void
     380         */
    344381        public function start_transaction() {
    345382                global $wpdb;
    346383                $wpdb->query( 'SET autocommit = 0;' );
     
    359396                $wpdb->query( 'COMMIT;' );
    360397        }
    361398
     399        /**
     400         * Replaces the create table statement for a create temporary table statement.
     401         *
     402         * @param string $query The query to replace the statement for.
     403         *
     404         * @return string The altered query.
     405         */
    362406        public function _create_temporary_tables( $query ) {
    363407                if ( 'CREATE TABLE' === substr( trim( $query ), 0, 12 ) ) {
    364408                        return substr_replace( trim( $query ), 'CREATE TEMPORARY TABLE', 0, 12 );
     
    366410                return $query;
    367411        }
    368412
     413        /**
     414         * Replaces the drop table statement for a drop temporary table statement.
     415         *
     416         * @param string $query The query to replace the statement for.
     417         *
     418         * @return string The altered query.
     419         */
    369420        public function _drop_temporary_tables( $query ) {
    370421                if ( 'DROP TABLE' === substr( trim( $query ), 0, 10 ) ) {
    371422                        return substr_replace( trim( $query ), 'DROP TEMPORARY TABLE', 0, 10 );
     
    373424                return $query;
    374425        }
    375426
     427        /**
     428         * Retrieves the die handler.
     429         *
     430         * @param callable $handler The current die handler.
     431         *
     432         * @return callable The test die handler.
     433         */
    376434        public function get_wp_die_handler( $handler ) {
    377435                return array( $this, 'wp_die_handler' );
    378436        }
    379437
     438        /**
     439         * Throws an exception when called.
     440         *
     441         * @param string $message The die message.
     442         *
     443         * @throws WPDieException Exception containing the message.
     444         */
    380445        public function wp_die_handler( $message ) {
    381446                if ( ! is_scalar( $message ) ) {
    382447                        $message = '0';
     
    385450                throw new WPDieException( $message );
    386451        }
    387452
     453        /**
     454         * Sets up the expectations for testing a deprecated call.
     455         *
     456         * @Return void
     457         */
    388458        public function expectDeprecated() {
    389459                $annotations = $this->getAnnotations();
    390460                foreach ( array( 'class', 'method' ) as $depth ) {
     
    405475                add_action( 'doing_it_wrong_trigger_error', '__return_false' );
    406476        }
    407477
     478        /**
     479         * Handles a deprecated expectation. The docbloc should contain `@expectedDeprecated`
     480         * to trigger this.
     481         *
     482         * @return void
     483         */
    408484        public function expectedDeprecated() {
    409485                $errors = array();
    410486
     
    493569                }
    494570        }
    495571
     572        /**
     573         * Adds a deprecated function to the list of caught deprecated calles.
     574         *
     575         * @param string $function The deprecated function.
     576         *
     577         * @return void
     578         */
    496579        public function deprecated_function_run( $function ) {
    497580                if ( ! in_array( $function, $this->caught_deprecated ) ) {
    498581                        $this->caught_deprecated[] = $function;
     
    499582                }
    500583        }
    501584
     585        /**
     586         * Adds a function that has been called in a wrong way to the list of
     587         * doing it wrong calls.
     588         *
     589         * @param string $function The function to add.
     590         *
     591         * @return void
     592         */
    502593        public function doing_it_wrong_run( $function ) {
    503594                if ( ! in_array( $function, $this->caught_doing_it_wrong ) ) {
    504595                        $this->caught_doing_it_wrong[] = $function;
     
    505596                }
    506597        }
    507598
     599        /**
     600         * Checks if the given actual value is an instance of WP_Error.
     601         *
     602         * @param mixed  $actual  The actual value to check.
     603         * @param string $message The message to show when test fails.
     604         *
     605         * @return void
     606         */
    508607        public function assertWPError( $actual, $message = '' ) {
    509608                $this->assertInstanceOf( 'WP_Error', $actual, $message );
    510609        }
    511610
     611        /**
     612         * Checks if the given value isn't an instance of WP_Error.
     613         *
     614         * @param mixed  $actual  The actual value to check.
     615         * @param string $message The message to show when test fails.
     616         *
     617         * @return void
     618         */
    512619        public function assertNotWPError( $actual, $message = '' ) {
    513620                if ( is_wp_error( $actual ) && '' === $message ) {
    514621                        $message = $actual->get_error_message();
     
    516623                $this->assertNotInstanceOf( 'WP_Error', $actual, $message );
    517624        }
    518625
     626
     627        /**
     628         * Checks if the given actual value is an instance of IXR_Error.
     629         *
     630         * @param mixed  $actual  The actual value to check.
     631         * @param string $message The message to show when test fails.
     632         *
     633         * @return void
     634         */
    519635        public function assertIXRError( $actual, $message = '' ) {
    520636                $this->assertInstanceOf( 'IXR_Error', $actual, $message );
    521637        }
    522638
     639        /**
     640         * Checks if the given value isn't an instance of IXR_Error.
     641         *
     642         * @param mixed  $actual  The actual value to check.
     643         * @param string $message The message to show when test fails.
     644         *
     645         * @return void
     646         */
    523647        public function assertNotIXRError( $actual, $message = '' ) {
    524648                if ( $actual instanceof IXR_Error && '' === $message ) {
    525649                        $message = $actual->message;
     
    527651                $this->assertNotInstanceOf( 'IXR_Error', $actual, $message );
    528652        }
    529653
     654        /**
     655         * Checks if the given fields are present in the given object.
     656         *
     657         * @param object $object The actual object.
     658         * @param array  $fields The fields to check.
     659         *
     660         * @return void
     661         */
    530662        public function assertEqualFields( $object, $fields ) {
    531663                foreach ( $fields as $field_name => $field_value ) {
    532664                        if ( $object->$field_name != $field_value ) {
     
    535667                }
    536668        }
    537669
     670        /**
     671         * Performs an assertion with whitespace being discarded from the expected and actual values.
     672         *
     673         * @param string $expected The expected value.
     674         * @param string $actual   The actual value.
     675         *
     676         * @return void
     677         */
    538678        public function assertDiscardWhitespace( $expected, $actual ) {
    539679                $this->assertEquals( preg_replace( '/\s*/', '', $expected ), preg_replace( '/\s*/', '', $actual ) );
    540680        }
     
    546686         *
    547687         * @param array $expected Expected array.
    548688         * @param array $actual   Array to check.
     689         *
     690         * @return void
    549691         */
    550692        public function assertEqualSets( $expected, $actual ) {
    551693                sort( $expected );
     
    560702         *
    561703         * @param array $expected Expected array.
    562704         * @param array $actual   Array to check.
     705         *
     706         * @return void
    563707         */
    564708        public function assertEqualSetsWithIndex( $expected, $actual ) {
    565709                ksort( $expected );
     
    573717         * @since 4.8.0
    574718         *
    575719         * @param array $array Array to check.
     720         *
     721         * @return void
    576722         */
    577723        public function assertNonEmptyMultidimensionalArray( $array ) {
    578724                $this->assertTrue( is_array( $array ) );
     
    596742         * @since 3.5.0
    597743         *
    598744         * @param string $url The URL for the request.
     745         *
     746         * @return void
    599747         */
    600748        public function go_to( $url ) {
    601749                // note: the WP and WP_Query classes like to silently fetch parameters
     
    651799         * support this behaviour.
    652800         *
    653801         * @since 3.5.0
     802         *
     803         * @return void
    654804         */
    655805        protected function checkRequirements() {
    656806                parent::checkRequirements();
     
    701851         *
    702852         * @since 3.5.0
    703853         *
    704          * @param int $ticket_id Ticket number.
     854         * @param int $ticket_id Ticket number
     855         *
     856         * @return void
    705857         */
    706858        public function knownWPBug( $ticket_id ) {
    707859                if ( WP_TESTS_FORCE_KNOWN_BUGS || in_array( $ticket_id, self::$forced_tickets ) ) {
     
    731883         * @since 3.5.0
    732884         *
    733885         * @param int $ticket_id Ticket number.
     886         *
     887         * @return void
    734888         */
    735889        public function knownPluginBug( $ticket_id ) {
    736890                if ( WP_TESTS_FORCE_KNOWN_BUGS || in_array( 'Plugin' . $ticket_id, self::$forced_tickets ) ) {
     
    747901         * @since 3.5.0
    748902         *
    749903         * @param int $ticket Ticket number.
     904         *
     905         * @return void
    750906         */
    751907        public static function forceTicket( $ticket ) {
    752908                self::$forced_tickets[] = $ticket;
     
    760916         *
    761917         * This method defines the constants after including files.
    762918         *
    763          * @param Text_Template $template
     919         * @param Text_Template $template The template to prepare.
     920         *
     921         * @return void
    764922         */
    765923        public function prepareTemplate( Text_Template $template ) {
    766924                $template->setVar( array( 'constants' => '' ) );
     
    804962         * @since 3.8.0 Moved from `Tests_Query_Conditionals` to `WP_UnitTestCase`.
    805963         *
    806964         * @param string $prop,... Any number of WP_Query properties that are expected to be true for the current request.
     965         *
     966         * @return void
    807967         */
    808968        public function assertQueryTrue() {
    809969                global $wp_query;
     
    8711031         * Does not delete a file if its path is set in the `$ignore_files` property.
    8721032         *
    8731033         * @param string $file File path.
     1034         *
     1035         * @return void
    8741036         */
    8751037        public function unlink( $file ) {
    8761038                $exists = is_file( $file );
     
    8881050         * Does not delete files if their paths are set in the `$ignore_files` property.
    8891051         *
    8901052         * @param string $path Directory path.
     1053         *
     1054         * @return void
    8911055         */
    8921056        public function rmdir( $path ) {
    8931057                $files = $this->files_in_dir( $path );
     
    9061070         *   `$ignore_files` property.
    9071071         * - `rmdir()` and its helper methods only delete files that are not listed in the `$ignore_files` property. If
    9081072         *   called during `tearDown()` in tests, this will only delete files added during the previously run test.
     1073         *
     1074         * @return void
    9091075         */
    9101076        public function remove_added_uploads() {
    9111077                $uploads = wp_upload_dir();
     
    9591125         * @since 4.1.0
    9601126         *
    9611127         * @param string $path Path to the directory to scan.
     1128         *
     1129         * @return void
    9621130         */
    9631131        public function delete_folders( $path ) {
    9641132                $this->matched_dirs = array();
     
    9821150         * @since 4.1.0
    9831151         *
    9841152         * @param string $dir Path to the directory to scan.
     1153         *
     1154         * @return void
    9851155         */
    9861156        public function scandir( $dir ) {
    9871157                foreach ( scandir( $dir ) as $path ) {
     
    10311201         * @global WP_Rewrite $wp_rewrite
    10321202         *
    10331203         * @param string $structure Optional. Permalink structure to set. Default empty.
     1204         *
     1205         * @return void
    10341206         */
    10351207        public function set_permalink_structure( $structure = '' ) {
    10361208                global $wp_rewrite;