Make WordPress Core

Changeset 47343 for branches/3.7


Ignore:
Timestamp:
02/22/2020 12:05:12 PM (7 years ago)
Author:
SergeyBiryukov
Message:

Build/Test Tools: Fix the Travis CI build for the 3.7 branch.

Among other fixes, this backports [26087], [26091], [26095], [26252], [26307], [26318], [26512], [26705], [26871], [26909-26910], [26940], [27086], [27168], [28799], [28873], [28943], [28961], [28964], [28966-28967], [29120], [29251], [29503], [29860], [29869], [29954], [30001], [30282], [30285], [30289-30291], [30513-30514], [30516-30521], [30524], [30526], [30529-30530], [31253-31254], [31257-31259], [31622], [40241], [40255], [40257], [40259], [40269], [40271], [40446], [40449], [40457], [40604], [40538], [40833], [41082], [41303], [41306], [44993].

See #49485.

Location:
branches/3.7
Files:
2 added
7 deleted
66 edited

Legend:

Unmodified
Added
Removed
  • branches/3.7

  • branches/3.7/Gruntfile.js

    r25693 r47343  
    6565                                dest: BUILD_DIR,
    6666                                src: []
     67                        },
     68                        qunit: {
     69                                src: 'tests/qunit/index.html',
     70                                dest: 'tests/qunit/compiled.html',
     71                                options: {
     72                                        processContent: function( src ) {
     73                                                return src.replace( /([^\.])*\.\.\/src/ig , '/../build' );
     74                                        }
     75                                }
    6776                        }
    6877                },
     
    8392                qunit: {
    8493                        files: ['tests/qunit/**/*.html']
     94                },
     95                phpunit: {
     96                        'default': {
     97                                cmd: 'phpunit',
     98                                args: ['-c', 'phpunit.xml.dist']
     99                        },
     100                        ajax: {
     101                                cmd: 'phpunit',
     102                                args: ['-c', 'phpunit.xml.dist', '--group', 'ajax']
     103                        },
     104                        multisite: {
     105                                cmd: 'phpunit',
     106                                args: ['-c', 'tests/phpunit/multisite.xml']
     107                        }
    85108                },
    86109                uglify: {
     
    184207                'uglify:tinymce', 'concat:tinymce', 'compress:tinymce', 'clean:tinymce']);
    185208
    186         // Testing task.
    187         grunt.registerTask('test', ['qunit']);
     209        // Testing tasks.
     210        grunt.registerMultiTask('phpunit', 'Runs PHPUnit tests, including the ajax and multisite tests.', function() {
     211                grunt.util.spawn({
     212                        cmd: this.data.cmd,
     213                        args: this.data.args,
     214                        opts: {stdio: 'inherit'}
     215                }, this.async());
     216        });
     217
     218        grunt.registerTask('qunit:compiled', 'Runs QUnit tests on compiled as well as uncompiled scripts.',
     219                ['build', 'copy:qunit', 'qunit']);
     220
     221        grunt.registerTask('test', 'Runs all QUnit and PHPUnit tasks.', ['qunit:compiled', 'phpunit']);
     222
     223        // Travis CI tasks.
     224        grunt.registerTask('travis:phpunit', 'Runs PHPUnit Travis CI tasks.', 'phpunit');
    188225
    189226        // Default task.
  • branches/3.7/package.json

    r46936 r47343  
    1212    "grunt": "~0.4.1",
    1313    "grunt-contrib-clean": "~0.5.0",
     14    "grunt-contrib-compress": "~0.5.2",
     15    "grunt-contrib-concat": "~0.3.0",
    1416    "grunt-contrib-copy": "~0.4.1",
    1517    "grunt-contrib-cssmin": "~0.6.1",
     
    1719    "grunt-contrib-uglify": "~0.2.2",
    1820    "grunt-contrib-watch": "~0.5.1",
    19     "grunt-contrib-compress": "~0.5.2",
    20     "grunt-contrib-concat": "~0.3.0",
    2121    "matchdep": "~0.1.2"
    2222  }
  • branches/3.7/phpunit.xml.dist

    r25165 r47343  
    2626        <log type="junit" target="tests/phpunit/build/logs/junit.xml" logIncompleteSkipped="false"/>
    2727    </logging>
     28    <php>
     29        <const name="WP_RUN_CORE_TESTS" value="1" />
     30    </php>
    2831</phpunit>
  • branches/3.7/src

  • branches/3.7/src/wp-admin/includes/upgrade.php

    r32435 r47343  
    16451645
    16461646                // Fetch the table column structure from the database
    1647                 $wpdb->suppress_errors();
     1647                $suppress = $wpdb->suppress_errors();
    16481648                $tablefields = $wpdb->get_results("DESCRIBE {$table};");
    1649                 $wpdb->suppress_errors( false );
     1649                $wpdb->suppress_errors( $suppress );
    16501650
    16511651                if ( ! $tablefields )
  • branches/3.7/src/wp-includes/meta.php

    r25583 r47343  
    559559
    560560        // Get meta info
    561         $id_list = join(',', $ids);
    562         $meta_list = $wpdb->get_results( $wpdb->prepare("SELECT $column, meta_key, meta_value FROM $table WHERE $column IN ($id_list)",
    563                 $meta_type), ARRAY_A );
     561        $id_list = join( ',', $ids );
     562        $id_column = 'user' == $meta_type ? 'umeta_id' : 'meta_id';
     563        $meta_list = $wpdb->get_results( "SELECT $column, meta_key, meta_value FROM $table WHERE $column IN ($id_list) ORDER BY $id_column ASC", ARRAY_A );
    564564
    565565        if ( !empty($meta_list) ) {
  • branches/3.7/src/wp-includes/ms-functions.php

    r39806 r47343  
    11311131        require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    11321132
    1133         $wpdb->suppress_errors();
     1133        $suppress = $wpdb->suppress_errors();
    11341134        if ( $wpdb->get_results( "DESCRIBE {$wpdb->posts}" ) )
    11351135                die( '<h1>' . __( 'Already Installed' ) . '</h1><p>' . __( 'You appear to have already installed WordPress. To reinstall please clear your old database tables first.' ) . '</p></body></html>' );
    1136         $wpdb->suppress_errors( false );
     1136        $wpdb->suppress_errors( $suppress );
    11371137
    11381138        $url = get_blogaddress_by_id( $blog_id );
     
    11811181        require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    11821182
    1183         $wpdb->suppress_errors();
     1183        $suppress = $wpdb->suppress_errors();
    11841184
    11851185        wp_install_defaults($user_id);
    11861186
    1187         $wpdb->suppress_errors( false );
     1187        $wpdb->suppress_errors( $suppress );
    11881188}
    11891189
  • branches/3.7/src/wp-includes/wp-db.php

    r42241 r47343  
    12591259
    12601260                if ( WP_DEBUG ) {
     1261                        $error_reporting = false;
     1262                        if ( defined( 'E_DEPRECATED' ) ) {
     1263                                $error_reporting = error_reporting();
     1264                                error_reporting( $error_reporting ^ E_DEPRECATED );
     1265                        }
    12611266                        $this->dbh = mysql_connect( $this->dbhost, $this->dbuser, $this->dbpassword, $new_link, $client_flags );
     1267                        if ( false !== $error_reporting ) {
     1268                                error_reporting( $error_reporting );
     1269                        }
    12621270                } else {
    12631271                        $this->dbh = @mysql_connect( $this->dbhost, $this->dbuser, $this->dbpassword, $new_link, $client_flags );
  • branches/3.7/tests/phpunit/includes/bootstrap.php

    r25415 r47343  
    9696 * A child class of the PHP test runner.
    9797 *
    98  * Not actually used as a runner. Rather, used to access the protected
    99  * longOptions property, to parse the arguments passed to the script.
     98 * Used to access the protected longOptions property, to parse the arguments
     99 * passed to the script.
    100100 *
    101101 * If it is determined that phpunit was called with a --group that corresponds
     
    106106 * how you call phpunit has no effect.
    107107 */
    108 class WP_PHPUnit_TextUI_Command extends PHPUnit_TextUI_Command {
     108class WP_PHPUnit_Util_Getopt extends PHPUnit_Util_Getopt {
     109        protected $longOptions = array(
     110          'exclude-group=',
     111          'group=',
     112        );
    109113        function __construct( $argv ) {
    110                 $options = PHPUnit_Util_Getopt::getopt(
    111                         $argv,
    112                         'd:c:hv',
    113                         array_keys( $this->longOptions )
    114                 );
     114                array_shift( $argv );
     115                $options = array();
     116                while ( list( $i, $arg ) = each( $argv ) ) {
     117                        try {
     118                                if ( strlen( $arg ) > 1 && $arg[0] === '-' && $arg[1] === '-' ) {
     119                                        PHPUnit_Util_Getopt::parseLongOption( substr( $arg, 2 ), $this->longOptions, $options, $argv );
     120                                }
     121                        }
     122                        catch ( PHPUnit_Framework_Exception $e ) {
     123                                // Enforcing recognized arguments or correctly formed arguments is
     124                                // not really the concern here.
     125                                continue;
     126                        }
     127                }
     128
    115129                $ajax_message = true;
    116                 foreach ( $options[0] as $option ) {
     130                foreach ( $options as $option ) {
    117131                        switch ( $option[0] ) {
    118132                                case '--exclude-group' :
     
    122136                                        $groups = explode( ',', $option[1] );
    123137                                        foreach ( $groups as $group ) {
    124                                                 if ( is_numeric( $group ) || preg_match( '/^(UT|Plugin)\d+$/', $group ) )
     138                                                if ( is_numeric( $group ) || preg_match( '/^(UT|Plugin)\d+$/', $group ) ) {
    125139                                                        WP_UnitTestCase::forceTicket( $group );
     140                                                }
    126141                                        }
    127142                                        $ajax_message = ! in_array( 'ajax', $groups );
     
    129144                        }
    130145                }
    131                 if ( $ajax_message )
     146                if ( $ajax_message ) {
    132147                        echo "Not running ajax tests... To execute these, use --group ajax." . PHP_EOL;
     148                }
    133149    }
    134150}
    135 new WP_PHPUnit_TextUI_Command( $_SERVER['argv'] );
     151new WP_PHPUnit_Util_Getopt( $_SERVER['argv'] );
  • branches/3.7/tests/phpunit/includes/factory.php

    r25660 r47343  
    160160
    161161        function create_object( $args ) {
     162                global $wpdb;
    162163                $meta = isset( $args['meta'] ) ? $args['meta'] : array();
    163164                $user_id = isset( $args['user_id'] ) ? $args['user_id'] : get_current_user_id();
    164                 return wpmu_create_blog( $args['domain'], $args['path'], $args['title'], $user_id, $meta, $args['site_id'] );
     165                // temp tables will trigger db errors when we attempt to reference them as new temp tables
     166                $suppress = $wpdb->suppress_errors();
     167                $blog = wpmu_create_blog( $args['domain'], $args['path'], $args['title'], $user_id, $meta, $args['site_id'] );
     168                $wpdb->suppress_errors( $suppress );
     169                return $blog;
    165170        }
    166171
  • branches/3.7/tests/phpunit/includes/install.php

    r25002 r47343  
    2222require_once ABSPATH . '/wp-admin/includes/upgrade.php';
    2323require_once ABSPATH . '/wp-includes/wp-db.php';
    24 
    25 define( 'WP_TESTS_VERSION_FILE', ABSPATH . '.wp-tests-version' );
    26 
    27 $wpdb->suppress_errors();
    28 $installed = $wpdb->get_var( "SELECT option_value FROM $wpdb->options WHERE option_name = 'siteurl'" );
    29 $wpdb->suppress_errors( false );
    30 
    31 $hash = get_option( 'db_version' ) . ' ' . (int) $multisite . ' ' . sha1_file( $config_file_path );
    32 
    33 if ( $installed && file_exists( WP_TESTS_VERSION_FILE ) && file_get_contents( WP_TESTS_VERSION_FILE ) == $hash )
    34         return;
    3524
    3625$wpdb->query( 'SET storage_engine = INNODB' );
     
    6453        populate_network( 1, WP_TESTS_DOMAIN, WP_TESTS_EMAIL, $title, '/', $subdomain_install );
    6554}
    66 
    67 file_put_contents( WP_TESTS_VERSION_FILE, $hash );
  • branches/3.7/tests/phpunit/includes/testcase.php

    r42068 r47343  
    1212        protected $caught_doing_it_wrong = array();
    1313
     14        protected static $hooks_saved = array();
     15        protected static $ignore_files;
     16
    1417        /**
    1518         * @var WP_UnitTest_Factory
     
    1922        function setUp() {
    2023                set_time_limit(0);
     24
     25                if ( ! self::$ignore_files ) {
     26                        self::$ignore_files = $this->scan_user_uploads();
     27                }
     28
     29                if ( ! self::$hooks_saved ) {
     30                        $this->_backup_hooks();
     31                }
    2132
    2233                global $wpdb;
     
    2738                $this->factory = new WP_UnitTest_Factory;
    2839                $this->clean_up_global_scope();
     40
     41                /*
     42                 * When running core tests, ensure that post types and taxonomies
     43                 * are reset for each test. We skip this step for non-core tests,
     44                 * given the large number of plugins that register post types and
     45                 * taxonomies at 'init'.
     46                 */
     47                if ( defined( 'WP_RUN_CORE_TESTS' ) && WP_RUN_CORE_TESTS ) {
     48                        $this->reset_post_types();
     49                        $this->reset_taxonomies();
     50                }
     51
    2952                $this->start_transaction();
    3053                $this->expectDeprecated();
    3154                add_filter( 'wp_die_handler', array( $this, 'get_wp_die_handler' ) );
     55        }
     56
     57        /**
     58         * Unregister existing post types and register defaults.
     59         *
     60         * Run before each test in order to clean up the global scope, in case
     61         * a test forgets to unregister a post type on its own, or fails before
     62         * it has a chance to do so.
     63         */
     64        protected function reset_post_types() {
     65                foreach ( get_post_types() as $pt ) {
     66                        _unregister_post_type( $pt );
     67                }
     68                create_initial_post_types();
     69        }
     70
     71        /**
     72         * Unregister existing taxonomies and register defaults.
     73         *
     74         * Run before each test in order to clean up the global scope, in case
     75         * a test forgets to unregister a taxonomy on its own, or fails before
     76         * it has a chance to do so.
     77         */
     78        protected function reset_taxonomies() {
     79                foreach ( get_taxonomies() as $tax ) {
     80                        _unregister_taxonomy( $tax );
     81                }
     82                create_initial_taxonomies();
    3283        }
    3384
     
    3687                $this->expectedDeprecated();
    3788                $wpdb->query( 'ROLLBACK' );
    38                 remove_filter( 'dbdelta_create_queries', array( $this, '_create_temporary_tables' ) );
     89                if ( is_multisite() ) {
     90                        while ( ms_is_switched() ) {
     91                                restore_current_blog();
     92                        }
     93                }
     94                remove_filter( 'query', array( $this, '_create_temporary_tables' ) );
    3995                remove_filter( 'query', array( $this, '_drop_temporary_tables' ) );
    4096                remove_filter( 'wp_die_handler', array( $this, 'get_wp_die_handler' ) );
     97                $this->_restore_hooks();
     98                wp_set_current_user( 0 );
    4199        }
    42100
     
    47105        }
    48106
     107        /**
     108         * Allow tests to be skipped on some automated runs
     109         *
     110         * For test runs on Travis for something other than trunk/master
     111         * we want to skip tests that only need to run for master.
     112         */
     113        public function skipOnAutomatedBranches() {
     114                // gentenv can be disabled
     115                if ( ! function_exists( 'getenv' ) ) {
     116                        return false;
     117                }
     118
     119                // https://docs.travis-ci.com/user/environment-variables/#Default-Environment-Variables
     120                $travis_branch       = getenv( 'TRAVIS_BRANCH' );
     121                $travis_pull_request = getenv( 'TRAVIS_PULL_REQUEST' );
     122
     123                if ( false !== $travis_pull_request && 'master' !== $travis_branch ) {
     124                        $this->markTestSkipped( 'For automated test runs, this test is only run on trunk/master' );
     125                }
     126        }
     127
     128        /**
     129         * Saves the action and filter-related globals so they can be restored later.
     130         *
     131         * Stores $merged_filters, $wp_actions, $wp_current_filter, and $wp_filter
     132         * on a class variable so they can be restored on tearDown() using _restore_hooks().
     133         *
     134         * @global array $merged_filters
     135         * @global array $wp_actions
     136         * @global array $wp_current_filter
     137         * @global array $wp_filter
     138         * @return void
     139         */
     140        protected function _backup_hooks() {
     141                $globals = array( 'merged_filters', 'wp_actions', 'wp_current_filter', 'wp_filter' );
     142                foreach ( $globals as $key ) {
     143                        self::$hooks_saved[ $key ] = $GLOBALS[ $key ];
     144                }
     145        }
     146
     147        /**
     148         * Restores the hook-related globals to their state at setUp()
     149         * so that future tests aren't affected by hooks set during this last test.
     150         *
     151         * @global array $merged_filters
     152         * @global array $wp_actions
     153         * @global array $wp_current_filter
     154         * @global array $wp_filter
     155         * @return void
     156         */
     157        protected function _restore_hooks() {
     158                $globals = array( 'merged_filters', 'wp_actions', 'wp_current_filter', 'wp_filter' );
     159                foreach ( $globals as $key ) {
     160                        if ( isset( self::$hooks_saved[ $key ] ) ) {
     161                                $GLOBALS[ $key ] = self::$hooks_saved[ $key ];
     162                        }
     163                }
     164        }
     165       
    49166        function flush_cache() {
    50167                global $wp_object_cache;
     
    65182                $wpdb->query( 'SET autocommit = 0;' );
    66183                $wpdb->query( 'START TRANSACTION;' );
    67                 add_filter( 'dbdelta_create_queries', array( $this, '_create_temporary_tables' ) );
     184                add_filter( 'query', array( $this, '_create_temporary_tables' ) );
    68185                add_filter( 'query', array( $this, '_drop_temporary_tables' ) );
    69186        }
    70187
    71         function _create_temporary_tables( $queries ) {
    72                 return str_replace( 'CREATE TABLE', 'CREATE TEMPORARY TABLE', $queries );
     188        function _create_temporary_tables( $query ) {
     189                if ( 'CREATE TABLE' === substr( trim( $query ), 0, 12 ) )
     190                        return substr_replace( trim( $query ), 'CREATE TEMPORARY TABLE', 0, 12 );
     191                return $query;
    73192        }
    74193
    75194        function _drop_temporary_tables( $query ) {
    76                 if ( 'DROP TABLE' === substr( $query, 0, 10 ) )
    77                         return 'DROP TEMPORARY TABLE ' . substr( $query, 10 );
     195                if ( 'DROP TABLE' === substr( trim( $query ), 0, 10 ) )
     196                        return substr_replace( trim( $query ), 'DROP TEMPORARY TABLE', 0, 10 );
    78197                return $query;
    79198        }
     
    213332        protected function checkRequirements() {
    214333                parent::checkRequirements();
     334
     335                // Core tests no longer check against open Trac tickets, but others using WP_UnitTestCase may do so.
     336                if ( defined( 'WP_RUN_CORE_TESTS' ) && WP_RUN_CORE_TESTS ) {
     337                        return;
     338                }
     339
    215340                if ( WP_TESTS_FORCE_KNOWN_BUGS )
    216341                        return;
     
    237362                if ( WP_TESTS_FORCE_KNOWN_BUGS || in_array( $ticket_id, self::$forced_tickets ) )
    238363                        return;
    239                 if ( ! TracTickets::isTracTicketClosed( 'http://core.trac.wordpress.org', $ticket_id ) )
     364                if ( ! TracTickets::isTracTicketClosed( 'https://core.trac.wordpress.org', $ticket_id ) )
    240365                        $this->markTestSkipped( sprintf( 'WordPress Ticket #%d is not fixed', $ticket_id ) );
    241366        }
     
    247372                if ( WP_TESTS_FORCE_KNOWN_BUGS || in_array( 'UT' . $ticket_id, self::$forced_tickets ) )
    248373                        return;
    249                 if ( ! TracTickets::isTracTicketClosed( 'http://unit-tests.trac.wordpress.org', $ticket_id ) )
     374                if ( ! TracTickets::isTracTicketClosed( 'https://unit-tests.trac.wordpress.org', $ticket_id ) )
    250375                        $this->markTestSkipped( sprintf( 'Unit Tests Ticket #%d is not fixed', $ticket_id ) );
    251376        }
     
    257382                if ( WP_TESTS_FORCE_KNOWN_BUGS || in_array( 'Plugin' . $ticket_id, self::$forced_tickets ) )
    258383                        return;
    259                 if ( ! TracTickets::isTracTicketClosed( 'http://plugins.trac.wordpress.org', $ticket_id ) )
     384                if ( ! TracTickets::isTracTicketClosed( 'https://plugins.trac.wordpress.org', $ticket_id ) )
    260385                        $this->markTestSkipped( sprintf( 'WordPress Plugin Ticket #%d is not fixed', $ticket_id ) );
    261386        }
     
    291416                return tempnam( $tmp_dir, 'wpunit' );
    292417        }
     418
     419        function unlink( $file ) {
     420                $exists = is_file( $file );
     421                if ( $exists && ! in_array( $file, self::$ignore_files ) ) {
     422                        //error_log( $file );
     423                        unlink( $file );
     424                } elseif ( ! $exists ) {
     425                        $this->fail( "Trying to delete a file that doesn't exist: $file" );
     426                }
     427        }
     428
     429        function rmdir( $path ) {
     430                $files = $this->files_in_dir( $path );
     431                foreach ( $files as $file ) {
     432                        if ( ! in_array( $file, self::$ignore_files ) ) {
     433                                $this->unlink( $file );
     434                        }
     435                }
     436        }
     437
     438        function remove_added_uploads() {
     439                // Remove all uploads.
     440                $uploads = wp_upload_dir();
     441                $this->rmdir( $uploads['basedir'] );
     442        }
     443
     444        function files_in_dir( $dir ) {
     445                $files = array();
     446
     447                $iterator = new RecursiveDirectoryIterator( $dir );
     448                $objects = new RecursiveIteratorIterator( $iterator );
     449                foreach ( $objects as $name => $object ) {
     450                        if ( is_file( $name ) ) {
     451                                $files[] = $name;
     452                        }
     453                }
     454
     455                return $files;
     456        }
     457
     458        function scan_user_uploads() {
     459                static $files = array();
     460                if ( ! empty( $files ) ) {
     461                        return $files;
     462                }
     463
     464                $uploads = wp_upload_dir();
     465                $files = $this->files_in_dir( $uploads['basedir'] );
     466                return $files;
     467        }
    293468}
  • branches/3.7/tests/phpunit/includes/trac.php

    r25002 r47343  
    1515         */
    1616        public static function isTracTicketClosed( $trac_url, $ticket_id ) {
     17                if ( ! extension_loaded( 'openssl' ) ) {
     18                        $trac_url = preg_replace( "/^https:/", "http:", $trac_url );
     19                }
     20
    1721                if ( ! isset( self::$trac_ticket_cache[ $trac_url ] ) ) {
    1822                        // In case you're running the tests offline, keep track of open tickets.
  • branches/3.7/tests/phpunit/includes/utils.php

    r32188 r47343  
    335335}
    336336
    337 function _rmdir( $path ) {
    338         if ( in_array(basename( $path ), array( '.', '..' ) ) ) {
    339                 return;
    340         } elseif ( is_file( $path ) ) {
    341                 unlink( $path );
    342         } elseif ( is_dir( $path ) ) {
    343                 foreach ( scandir( $path ) as $file )
    344                         _rmdir( $path . '/' . $file );
    345                 rmdir( $path );
    346         }
    347 }
    348 
    349337/**
    350338 * Removes the post type and its taxonomy associations.
  • branches/3.7/tests/phpunit/multisite.xml

    r25294 r47343  
    2626        </exclude>
    2727    </groups>
     28    <php>
     29        <const name="WP_RUN_CORE_TESTS" value="1" />
     30    </php>
    2831</phpunit>
  • branches/3.7/tests/phpunit/tests/ajax/DeleteComment.php

    r25002 r47343  
    2727        public function setUp() {
    2828                parent::setUp();
    29                 $post_id = $this->factory->post->create();
     29                $_SERVER['SERVER_NAME'] = 'example.com';
     30                add_filter( 'comment_notification_recipients', '__return_empty_array' );
     31                $user_id = $this->factory->user->create();
     32                $post_id = $this->factory->post->create( array( 'post_author' => $user_id ) );
    3033                $this->_comments = $this->factory->comment->create_post_comments( $post_id, 15 );
    3134                $this->_comments = array_map( 'get_comment', $this->_comments );
  • branches/3.7/tests/phpunit/tests/ajax/DimComment.php

    r25002 r47343  
    2727        public function setUp() {
    2828                parent::setUp();
    29                 $post_id = $this->factory->post->create();
     29                $_SERVER['SERVER_NAME'] = 'example.com';
     30                add_filter( 'comment_notification_recipients', '__return_empty_array' );
     31                $user_id = $this->factory->user->create();
     32                $post_id = $this->factory->post->create( array( 'post_author' => $user_id ) );
    3033                $this->_comments = $this->factory->comment->create_post_comments( $post_id, 15 );
    3134                $this->_comments = array_map( 'get_comment', $this->_comments );
  • branches/3.7/tests/phpunit/tests/ajax/MediaEdit.php

    r25002 r47343  
    3333        public function tearDown() {
    3434                // Cleanup
    35                 foreach ($this->_ids as $id){
    36                         wp_delete_attachment($id, true);
     35                foreach ( $this->_ids as $id ) {
     36                        wp_delete_attachment( $id, true );
    3737                }
    3838
    39                 $uploads = wp_upload_dir();
    40                 foreach ( scandir( $uploads['basedir'] ) as $file )
    41                         _rmdir( $uploads['basedir'] . '/' . $file );
    42                
    4339                parent::tearDown();
    4440        }
  • branches/3.7/tests/phpunit/tests/ajax/ReplytoComment.php

    r25433 r47343  
    3333        public function setUp() {
    3434                parent::setUp();
    35                 $post_id = $this->factory->post->create();
     35                $_SERVER['SERVER_NAME'] = 'example.com';
     36                add_filter( 'comment_notification_recipients', '__return_empty_array' );
     37                $user_id = $this->factory->user->create();
     38                $post_id = $this->factory->post->create( array( 'post_author' => $user_id ) );
    3639                $this->factory->comment->create_post_comments( $post_id, 5 );
    3740                $this->_comment_post = get_post( $post_id );
  • branches/3.7/tests/phpunit/tests/basic.php

    r32151 r47343  
    2121        function test_true() {
    2222                $this->assertTrue($this->val);
     23        }
     24
     25        function test_license() {
     26                // This test is designed to only run on trunk/master
     27                $this->skipOnAutomatedBranches();
     28
     29                $license = file_get_contents( ABSPATH . 'license.txt' );
     30                preg_match( '#Copyright 2011-(\d+) by the contributors#', $license, $matches );
     31                $this_year = date( 'Y' );
     32                $this->assertEquals( $this_year, trim( $matches[1] ), "license.txt's year needs to be updated to $this_year." );
     33        }
     34
     35        function test_package_json() {
     36                $package_json = file_get_contents( dirname( ABSPATH ) . '/package.json' );
     37                $package_json = json_decode( $package_json, true );
     38                list( $version ) = explode( '-', $GLOBALS['wp_version'] );
     39                // package.json uses x.y.z, so fill cleaned $wp_version for .0 releases
     40                if ( 1 == substr_count( $version, '.' ) ) {
     41                        $version .= '.0';
     42                }
     43                $this->assertEquals( $version, $package_json['version'], "package.json's version needs to be updated to $version." );
    2344        }
    2445
  • branches/3.7/tests/phpunit/tests/canonical.php

    r32151 r47343  
    2020
    2121        function setUp() {
     22                global $wp_rewrite;
     23
    2224                parent::setUp();
    2325
     26                update_option( 'page_comments', true );
    2427                update_option( 'comments_per_page', 5 );
    2528                update_option( 'posts_per_page', 5 );
    2629
    27                 update_option( 'permalink_structure', $this->structure );
     30                $wp_rewrite->init();
     31                $wp_rewrite->set_permalink_structure( $this->structure );
     32
    2833                create_initial_taxonomies();
    29                 $GLOBALS['wp_rewrite']->init();
    30                 flush_rewrite_rules();
     34
     35                $wp_rewrite->flush_rules();
    3136
    3237                $this->old_current_user = get_current_user_id();
     
    8085
    8186        function tearDown() {
     87                global $wp_rewrite;
    8288                wp_set_current_user( $this->old_current_user );
    8389
    84                 $GLOBALS['wp_rewrite']->init();
     90                $wp_rewrite->init();
    8591                parent::tearDown();
    8692        }
     
    168174                        // Categories
    169175
    170                         array( '?cat=%d', '/category/parent/', 15256 ),
    171                         array( '?cat=%d', '/category/parent/child-1/', 15256 ),
    172176                        array( '?cat=%d', '/category/parent/child-1/child-2/' ), // no children
    173177                        array( '/category/uncategorized/', array( 'url' => '/category/uncategorized/', 'qv' => array( 'category_name' => 'uncategorized' ) ) ),
     
    175179                        array( '/category/uncategorized/?paged=2', array( 'url' => '/category/uncategorized/page/2/', 'qv' => array( 'category_name' => 'uncategorized', 'paged' => 2) ) ),
    176180                        array( '/category/uncategorized/?paged=2&category_name=uncategorized', array( 'url' => '/category/uncategorized/page/2/', 'qv' => array( 'category_name' => 'uncategorized', 'paged' => 2) ), 17174 ),
    177                         array( '/category/child-1/', '/category/parent/child-1/', 18734 ),
    178                         array( '/category/foo/child-1/', '/category/parent/child-1/', 18734 ),
    179181
    180182                        // Categories & Intersections with other vars
     
    186188
    187189                        // Categories with Dates
    188                         array( '/category/uncategorized/?paged=2&year=2008', array( 'url' => '/category/uncategorized/page/2/?year=2008', 'qv' => array( 'category_name' => 'uncategorized', 'paged' => 2, 'year' => 2008) ), 17661 ),
    189 //                      array( '/2008/04/?cat=1', array( 'url' => '/2008/04/?cat=1', 'qv' => array('cat' => '1', 'year' => '2008', 'monthnum' => '04' ) ), 17661 ),
    190                         array( '/2008/04/?cat=1', array( 'url' => '/category/uncategorized/?year=2008&monthnum=04', 'qv' => array('category_name' => 'uncategorized', 'year' => '2008', 'monthnum' => '04' ) ), 17661 ),
     190                        array( '/2008/04/?cat=1', array( 'url' => '/2008/04/?cat=1', 'qv' => array('cat' => '1', 'year' => '2008', 'monthnum' => '04' ) ), 17661 ),
    191191//                      array( '/2008/?category_name=cat-a', array( 'url' => '/2008/?category_name=cat-a', 'qv' => array('category_name' => 'cat-a', 'year' => '2008' ) ) ),
    192                         array( '/2008/?category_name=cat-a', array( 'url' => '/category/cat-a/?year=2008', 'qv' => array('category_name' => 'cat-a', 'year' => '2008' ) ), 20386 ),
    193 //                      array( '/category/uncategorized/?year=2008', array( 'url' => '/2008/?category_name=uncategorized', 'qv' => array('category_name' => 'uncategorized', 'year' => '2008' ) ), 17661 ),
    194                         array( '/category/uncategorized/?year=2008', array( 'url' => '/category/uncategorized/?year=2008', 'qv' => array('category_name' => 'uncategorized', 'year' => '2008' ) ), 17661 ),
    195192
    196193                        // Pages
    197                         array( '/sample%20page/', array( 'url' => '/sample-page/', 'qv' => array('pagename' => 'sample-page', 'page' => '' ) ), 17653 ), // Page rules always set 'page'
    198                         array( '/sample------page/', array( 'url' => '/sample-page/', 'qv' => array('pagename' => 'sample-page', 'page' => '' ) ), 14773 ),
    199194                        array( '/child-page-1/', '/parent-page/child-page-1/'),
    200195                        array( '/?page_id=144', '/parent-page/child-page-1/'),
     
    216211
    217212                        array( '/2008/09/03/images-test/3/', array( 'url' => '/2008/09/03/images-test/3/', 'qv' => array( 'name' => 'images-test', 'year' => '2008', 'monthnum' => '09', 'day' => '03', 'page' => '/3' ) ) ), // page = /3 ?!
    218                         array( '/2008/09/03/images-test/8/', '/2008/09/03/images-test/4/', 11694 ), // post with 4 pages
    219213                        array( '/2008/09/03/images-test/?page=3', '/2008/09/03/images-test/3/' ),
    220214                        array( '/2008/09/03/images-te?page=3', '/2008/09/03/images-test/3/' ),
    221215
    222216                        // Comments
    223                         array( '/2008/03/03/comment-test/?cpage=2', '/2008/03/03/comment-test/comment-page-2/', 20388 ),
    224                         array( '/2008/03/03/comment-test/comment-page-20/', '/2008/03/03/comment-test/comment-page-3/', 20388 ), // there's only 3 pages
    225                         array( '/2008/03/03/comment-test/?cpage=30', '/2008/03/03/comment-test/comment-page-3/', 20388 ), // there's only 3 pages
     217                        array( '/2008/03/03/comment-test/?cpage=2', '/2008/03/03/comment-test/comment-page-2/' ),
    226218
    227219                        // Attachments
     
    246238                        array( '/?author=%d', '/author/canonical-author/' ),
    247239//                      array( '/?author=%d&year=2008', '/2008/?author=3'),
    248                         array( '/?author=%d&year=2008', '/author/canonical-author/?year=2008', 17661 ),
    249240//                      array( '/author/canonical-author/?year=2008', '/2008/?author=3'), //Either or, see previous testcase.
    250                         array( '/author/canonical-author/?year=2008', '/author/canonical-author/?year=2008', 17661 ),
    251241
    252242                        // Feeds
  • branches/3.7/tests/phpunit/tests/canonical/customRules.php

    r25002 r47343  
    3030                        array( '/ccr/uncategorized/sort/asc/', array( 'url' => '/ccr/uncategorized/sort/asc/', 'qv' => array( 'category_name' => 'uncategorized', 'order' => 'asc' ) ) ),
    3131                        array( '/ccr/uncategorized/sort/desc/', array( 'url' => '/ccr/uncategorized/sort/desc/', 'qv' => array( 'category_name' => 'uncategorized', 'order' => 'desc' ) ) ),
    32                         array( '/ccr/uncategorized/sort/desc/?year=2008', array( 'url' => '/ccr/uncategorized/sort/desc/?year=2008', 'qv' => array( 'category_name' => 'uncategorized', 'order' => 'desc', 'year' => '2008' ) ), 17661 ),
    3332                );
    3433        }
  • branches/3.7/tests/phpunit/tests/canonical/pageOnFront.php

    r25002 r47343  
    1616                update_option( 'page_on_front', $this->factory->post->create( array( 'post_title' => 'front-page', 'post_type' => 'page' ) ) );
    1717                $wp_rewrite->init();
    18                 flush_rewrite_rules();
     18                $wp_rewrite->flush_rules();
     19        }
     20
     21        function tearDown() {
     22                global $wp_rewrite;
     23                $wp_rewrite->init();
     24                parent::tearDown();
    1925        }
    2026
  • branches/3.7/tests/phpunit/tests/dependencies/scripts.php

    r25002 r47343  
    8585                $wp_scripts->base_url = $base_url_backup;
    8686        }
    87 
    88         /**
    89          * @ticket 22229
    90          */
    91         function test_inline_should_not_output_script_tag_with_src() {
    92                 wp_enqueue_script( 'baba-inline-0', 'inline' );
    93                 $this->assertEquals( '', get_echo( 'wp_print_scripts' ) );
    94         }
    95 
    96         /**
    97          * @ticket 22229
    98          */
    99         function test_json_encode_should_not_encode_special_literal_values() {
    100                 $literal = new WP_JS_Literal( 'baba()' );
    101                 $this->assertEquals( '{"x":baba()}', WP_JS_Literal::json_encode( array( 'x' => $literal ), array( $literal ) ) );
    102         }
    103 
    104         /**
    105          * @ticket 22229
    106          */
    107         function test_json_encode_should_not_encode_special_literal_values_with_dependencies() {
    108                 $literal = new WP_JS_Literal( 'baba()', array( 'dep0', 'dep1' ) );
    109                 $this->assertEquals( '{"x":baba()}', WP_JS_Literal::json_encode( array( 'x' => $literal ), array( $literal ) ) );
    110         }
    11187}
  • branches/3.7/tests/phpunit/tests/feed/rss2.php

    r25002 r47343  
    111111
    112112                        // author
    113                         $creator = xml_find($items[$i]['child'], 'dc:creator');
    114                         $this->assertEquals($this->author->user_nicename, $creator[0]['content']);
     113                        $creator = xml_find( $items[$i]['child'], 'dc:creator' );
     114                        $user = new WP_User( $posts[$i]->post_author );
     115                        $this->assertEquals( $user->user_login, $creator[0]['content'] );
    115116
    116117                        // categories (perhaps multiple)
    117118                        $categories = xml_find($items[$i]['child'], 'category');
    118                         $cat_ids = wp_get_post_categories($post->ID);
     119                        $cat_ids = wp_get_post_categories($posts[$i]->ID);
    119120                        if (empty($cat_ids))    $cat_ids = array(1);
    120121                        // should be the same number of categories
  • branches/3.7/tests/phpunit/tests/filters.php

    r25377 r47343  
    250250                return $tag;
    251251        }
    252 
    253         /**
    254          * @ticket 21169
    255          */
    256         function test_filter_removal_during_filter() {
    257                 $tag = rand_str();
    258                 $a = new MockAction();
    259                 $b = new MockAction();
    260 
    261                 add_action( $tag, array($a, 'filter_append'), 11, 1 );
    262                 add_action( $tag, array($b, 'filter_append'), 12, 1 );
    263                 add_action( $tag, array($this, '_self_removal'), 10, 1 );
    264 
    265                 $result = apply_filters($tag, $tag);
    266                 $this->assertEquals( 1, $a->get_call_count(), 'priority 11 filters should run after priority 10 empties itself' );
    267                 $this->assertEquals( 1, $b->get_call_count(), 'priority 12 filters should run after priority 10 empties itself and priority 11 runs' );
    268                 $this->assertEquals( $result, $tag . '_append_append', 'priority 11 and 12 filters should run after priority 10 empties itself' );
    269         }
    270252}
  • branches/3.7/tests/phpunit/tests/formatting/EscUrl.php

    r25002 r47343  
    6464
    6565        /**
    66          * @ticket 16859
    67          */
    68         function test_square_brackets() {
    69                 $this->assertEquals( 'http://example.com/?foo%5Bbar%5D=baz', esc_url( 'http://example.com/?foo[bar]=baz' ) );
    70                 $this->assertEquals( 'http://example.com/?baz=bar&#038;foo%5Bbar%5D=baz', esc_url( 'http://example.com/?baz=bar&foo[bar]=baz' ) );
    71                 //IPv6 addresses in urls - RFC2732
    72                 $this->assertEquals( 'http://[::FFFF::127.0.0.1]', esc_url( 'http://[::FFFF::127.0.0.1]' ) );
    73                 $this->assertEquals( 'http://[::127.0.0.1]', esc_url( 'http://[::127.0.0.1]' ) );
    74                 $this->assertEquals( 'http://[::DEAD:BEEF:DEAD:BEEF:DEAD:BEEF:DEAD:BEEF]', esc_url( 'http://[::DEAD:BEEF:DEAD:BEEF:DEAD:BEEF:DEAD:BEEF]' ) );
    75         }
    76 
    77         /**
    7866         * @ticket 21974
    7967         */
  • branches/3.7/tests/phpunit/tests/formatting/MakeClickable.php

    r25264 r47343  
    324324                $this->assertEquals( $in, $out );
    325325        }
    326 
    327         /**
    328          * @ticket 16859
    329          */
    330         function test_square_brackets() {
    331                 $urls_before = array(
    332                         'http://example.com/?foo[bar]=baz',
    333                         'http://example.com/?baz=bar&foo[bar]=baz',
    334                 );
    335                 $urls_expected = array(
    336                         '<a href="http://example.com/?foo%5Bbar%5D=baz" rel="nofollow">http://example.com/?foo%5Bbar%5D=baz</a>',
    337                         '<a href="http://example.com/?baz=bar&#038;foo%5Bbar%5D=baz" rel="nofollow">http://example.com/?baz=bar&#038;foo%5Bbar%5D=baz</a>',
    338                 );
    339                 foreach ($urls_before as $key => $url) {
    340                         $this->assertEquals( $urls_expected[$key], make_clickable( $url ) );
    341                 }
    342         }
    343326}
  • branches/3.7/tests/phpunit/tests/formatting/MapDeep.php

    r25002 r47343  
    55 */
    66class Tests_Formatting_MapDeep extends WP_UnitTestCase {
     7        function setUp() {
     8                if ( ! function_exists( 'map_deep' ) ) {
     9                        $this->markTestSkipped( "map_deep function doesn't exist" );
     10                }
     11
     12                parent::setUp();
     13        }
     14
    715        function test_map_deep_with_any_function_over_empty_array_should_return_empty_array() {
    816                $this->assertEquals( array(), map_deep( array( $this, 'return_baba' ), array() ) );
  • branches/3.7/tests/phpunit/tests/formatting/SanitizeTitleWithDashes.php

    r25002 r47343  
    3434        function test_handles_non_entity_ampersands() {
    3535                $this->assertEquals("penn-teller-bull", sanitize_title_with_dashes("penn & teller bull"));
    36         }
    37 
    38         /**
    39          * @ticket 10823
    40          */
    41         function test_strips_entities() {
    42                 $this->assertEquals("no-entities-here", sanitize_title_with_dashes("No &nbsp; Entities &ndash; Here &amp;"));
    43                 $this->assertEquals("one-two", sanitize_title_with_dashes("One &amp; Two", '', 'save'));
    44                 $this->assertEquals("one-two", sanitize_title_with_dashes("One &#123; Two;", '', 'save'));
    45                 $this->assertEquals("one-two", sanitize_title_with_dashes("One & Two;", '', 'save'));
    46                 $this->assertEquals("one-two", sanitize_title_with_dashes("One Two™;", '', 'save'));
    47                 $this->assertEquals("one-two", sanitize_title_with_dashes("One &&amp; Two;", '', 'save'));
    48                 $this->assertEquals("onetwo", sanitize_title_with_dashes("One&Two", '', 'save'));
    49                 $this->assertEquals("onetwo-test", sanitize_title_with_dashes("One&Two Test;", '', 'save'));
    5036        }
    5137
  • branches/3.7/tests/phpunit/tests/formatting/SanitizeUser.php

    r25002 r47343  
    1010                $this->assertEquals($expected, sanitize_user($input));
    1111        }
    12         /**
    13          * @ticket 10823
    14          */
    15         function test_strips_entities() {
    16                 $this->assertEquals("ATT", sanitize_user("AT&amp;T"));
    17                 $this->assertEquals("ATT Test;", sanitize_user("AT&amp;T Test;"));
    18                 $this->assertEquals("AT&T Test;", sanitize_user("AT&T Test;"));
    19         }
    2012        function test_strips_percent_encoded_octets() {
    2113                $expected = is_multisite() ? 'franois' : 'Franois';
  • branches/3.7/tests/phpunit/tests/functions.php

    r25313 r47343  
    132132        }
    133133
    134         /**
    135          * @ticket 9930
    136          */
    137134        function test_is_serialized() {
    138135                $cases = array(
     
    143140                        serialize(25),
    144141                        serialize(1.1),
    145                         serialize(2.1E+200),
    146142                        serialize('this string will be serialized'),
    147143                        serialize("a\nb"),
     
    156152                        'a string',
    157153                        'garbage:a:0:garbage;',
    158                         'b:4;',
    159154                        's:4:test;'
    160155                );
  • branches/3.7/tests/phpunit/tests/functions/deprecated.php

    r25409 r47343  
    149149                wp_save_image_file( $file, $img, 'image/jpeg', 1 );
    150150                imagedestroy( $img );
    151                 @unlink($file);
     151                unlink( $file );
    152152
    153153                // Check if the arg was deprecated
     
    170170                wp_save_image_file( $file, $img, 'image/jpeg', 1 );
    171171                unset( $img );
    172                 @unlink($file);
     172                unlink( $file );
    173173
    174174                // Check if the arg was deprecated
  • branches/3.7/tests/phpunit/tests/http/base.php

    r25224 r47343  
    285285                $this->assertTrue( ! is_wp_error( $res ), print_r( $res, true ) );
    286286        }
    287        
    288        
     287
     288
    289289}
  • branches/3.7/tests/phpunit/tests/http/functions.php

    r25002 r47343  
    66 */
    77class Tests_HTTP_Functions extends WP_UnitTestCase {
     8        public function setUp() {
     9                if ( ! extension_loaded( 'openssl' ) ) {
     10                        $this->markTestSkipped( 'Tests_HTTP_Functions requires openssl.' );
     11                }
     12
     13                parent::setUp();
     14        }
     15
    816        function test_head_request() {
    917                // this url give a direct 200 response
    10                 $url = 'http://asdftestblog1.files.wordpress.com/2007/09/2007-06-30-dsc_4700-1.jpg';
     18                $url = 'https://asdftestblog1.files.wordpress.com/2007/09/2007-06-30-dsc_4700-1.jpg';
    1119                $response = wp_remote_head( $url );
    1220                $headers = wp_remote_retrieve_headers( $response );
     
    2028        function test_head_redirect() {
    2129                // this url will 301 redirect
    22                 $url = 'http://asdftestblog1.wordpress.com/files/2007/09/2007-06-30-dsc_4700-1.jpg';
     30                $url = 'https://asdftestblog1.wordpress.com/files/2007/09/2007-06-30-dsc_4700-1.jpg';
    2331                $response = wp_remote_head( $url );
    2432                $this->assertEquals( '301', wp_remote_retrieve_response_code( $response ) );
     
    2634
    2735        function test_head_404() {
    28                 $url = 'http://asdftestblog1.files.wordpress.com/2007/09/awefasdfawef.jpg';
     36                $url = 'https://asdftestblog1.files.wordpress.com/2007/09/awefasdfawef.jpg';
    2937                $headers = wp_remote_head( $url );
    3038
     
    3442
    3543        function test_get_request() {
    36                 $url = 'http://asdftestblog1.files.wordpress.com/2007/09/2007-06-30-dsc_4700-1.jpg';
     44                $url = 'https://asdftestblog1.files.wordpress.com/2007/09/2007-06-30-dsc_4700-1.jpg';
    3745                $file = tempnam('/tmp', 'testfile');
    3846
     
    5260        function test_get_redirect() {
    5361                // this will redirect to asdftestblog1.files.wordpress.com
    54                 $url = 'http://asdftestblog1.wordpress.com/files/2007/09/2007-06-30-dsc_4700-1.jpg';
     62                $url = 'https://asdftestblog1.wordpress.com/files/2007/09/2007-06-30-dsc_4700-1.jpg';
    5563                $file = tempnam('/tmp', 'testfile');
    5664
     
    7078        function test_get_redirect_limit_exceeded() {
    7179                // this will redirect to asdftestblog1.files.wordpress.com
    72                 $url = 'http://asdftestblog1.wordpress.com/files/2007/09/2007-06-30-dsc_4700-1.jpg';
     80                $url = 'https://asdftestblog1.wordpress.com/files/2007/09/2007-06-30-dsc_4700-1.jpg';
    7381                $file = tempnam('/tmp', 'testfile');
    7482                // pretend we've already redirected 5 times
  • branches/3.7/tests/phpunit/tests/image/base.php

    r25002 r47343  
    1010         */
    1111        public function setUp() {
     12                parent::setUp();
     13
    1214                if ( ! call_user_func( array( $this->editor_engine, 'test' ) ) ) {
    1315                        $this->markTestSkipped( sprintf('The image editor engine %s is not supported on this system', $this->editor_engine) );
     
    2123         */
    2224        public function tearDown() {
     25                parent::tearDown();
     26
    2327                remove_filter( 'wp_image_editors', array( $this, 'setEngine' ), 10, 2 );
     28                parent::tearDown();
    2429        }
    2530
     
    3439        /**
    3540         * Helper assertion for testing alpha on images
    36          * 
     41         *
    3742         * @param  string $image_path
    3843         * @param  array $point      array(x,y)
  • branches/3.7/tests/phpunit/tests/image/editor_gd.php

    r25002 r47343  
    77 * @group wp-image-editor-gd
    88 */
     9require_once( dirname( __FILE__ ) . '/base.php' );
    910
    1011class Tests_Image_Editor_GD extends WP_Image_UnitTestCase {
     
    1415                require_once( ABSPATH . WPINC . '/class-wp-image-editor.php' );
    1516                require_once( ABSPATH . WPINC . '/class-wp-image-editor-gd.php' );
     17
    1618                parent::setUp();
     19        }
     20
     21        public function tearDown() {
     22                $folder = DIR_TESTDATA . '/images/waffles-*.jpg';
     23
     24                foreach ( glob( $folder ) as $file ) {
     25                        unlink( $file );
     26                }
     27
     28                $this->remove_added_uploads();
     29
     30                parent::tearDown();
    1731        }
    1832
     
    135149                $this->assertImageAlphaAtPoint( $save_to_file, array( 0,0 ), 127 );
    136150
     151                unlink( $save_to_file );
    137152        }
    138153       
     
    154169
    155170                $this->assertImageAlphaAtPoint( $save_to_file, array( 0,0 ), 127 );
     171
     172                unlink( $save_to_file );
    156173        }
    157174
  • branches/3.7/tests/phpunit/tests/image/editor_imagick.php

    r25002 r47343  
    77 * @group wp-image-editor-imagick
    88 */
     9require_once( dirname( __FILE__ ) . '/base.php' );
    910
    1011class Tests_Image_Editor_Imagick extends WP_Image_UnitTestCase {
     
    2223
    2324                parent::setUp();
     25        }
     26
     27        public function tearDown() {
     28                $folder = DIR_TESTDATA . '/images/waffles-*.jpg';
     29
     30                foreach ( glob( $folder ) as $file ) {
     31                        unlink( $file );
     32                }
     33
     34                $this->remove_added_uploads();
     35
     36                parent::tearDown();
    2437        }
    2538
     
    143156                $this->assertImageAlphaAtPoint( $save_to_file, array( 0,0 ), 127 );
    144157
     158                unlink( $save_to_file );
    145159        }
    146160       
     
    158172
    159173                $save_to_file = tempnam( get_temp_dir(), '' ) . '.png';
    160                
     174
    161175                $editor->save( $save_to_file );
    162176
    163177                $this->assertImageAlphaAtPoint( $save_to_file, array( 0,0 ), 127 );
     178
     179                unlink( $save_to_file );
    164180        }
    165181}
  • branches/3.7/tests/phpunit/tests/image/functions.php

    r25409 r47343  
    3131                        $finfo = new finfo();
    3232                        $mime_type = $finfo->file( $filename, FILEINFO_MIME );
    33                 } elseif ( function_exists('mime_content_type') ) {
    34                         $mime_type = mime_content_type( $filename );
    3533                }
    3634                if ( false !== strpos( $mime_type, ';' ) ) {
     
    9189                $files = array(
    9290                        // 'test-image-cmyk.jpg', Allowed in r9727
    93                         'test-image.bmp',
     91                        // 'test-image.bmp', Allowed in r28589
    9492                        // 'test-image-grayscale.jpg', Allowed in r9727
    9593                        'test-image.pct',
     
    113111         */
    114112        public function test_wp_save_image_file() {
     113                if ( ! extension_loaded( 'fileinfo' ) ) {
     114                        $this->markTestSkipped( 'The fileinfo PHP extension is not loaded.' );
     115                }
     116
    115117                include_once( ABSPATH . 'wp-admin/includes/image-edit.php' );
    116118
     
    143145
    144146                                // Clean up
    145                                 @unlink( $file );
    146                                 @unlink( $ret['path'] );
     147                                unlink( $file );
     148                                unlink( $ret['path'] );
    147149                        }
    148150
     
    157159         */
    158160        public function test_mime_overrides_filename() {
     161                if ( ! extension_loaded( 'fileinfo' ) ) {
     162                        $this->markTestSkipped( 'The fileinfo PHP extension is not loaded.' );
     163                }
    159164
    160165                // Test each image editor engine
     
    181186
    182187                        // Clean up
    183                         @unlink( $file );
    184                         @unlink( $ret['path'] );
     188                        unlink( $file );
     189                        unlink( $ret['path'] );
    185190                        unset( $img );
    186191                }
     
    192197         */
    193198        public function test_inferred_mime_types() {
     199                if ( ! extension_loaded( 'fileinfo' ) ) {
     200                        $this->markTestSkipped( 'The fileinfo PHP extension is not loaded.' );
     201                }
    194202
    195203                // Mime types
     
    224232                                $this->assertNotInstanceOf( 'WP_Error', $ret );
    225233                                $this->assertEquals( $mime_type, $this->get_mime_type( $ret['path'] ) );
    226                                 @unlink( $file );
    227                                 @unlink( $ret['path'] );
     234                                unlink( $ret['path'] );
    228235                        }
    229236
     
    284291                        $this->markTestSkipped( 'jpeg support unavailable' );
    285292
    286                 $file = wp_crop_image( 'http://asdftestblog1.files.wordpress.com/2008/04/canola.jpg',
     293                if ( ! extension_loaded( 'openssl' ) ) {
     294                        $this->markTestSkipped( 'Tests_Image_Functions::test_wp_crop_image_url() requires openssl.' );
     295                }
     296
     297                $file = wp_crop_image( 'https://asdftestblog1.files.wordpress.com/2008/04/canola.jpg',
    287298                                                          0, 0, 100, 100, 100, 100, false,
    288299                                                          DIR_TESTDATA . '/images/' . rand_str() . '.jpg' );
     
    304315
    305316        public function test_wp_crop_image_url_not_exist() {
    306                 $file = wp_crop_image( 'http://asdftestblog1.files.wordpress.com/2008/04/canoladoesnotexist.jpg',
     317                if ( ! extension_loaded( 'openssl' ) ) {
     318                        $this->markTestSkipped( 'Tests_Image_Functions::test_wp_crop_image_url_not_exist() requires openssl.' );
     319                }
     320
     321                $file = wp_crop_image( 'https://asdftestblog1.files.wordpress.com/2008/04/canoladoesnotexist.jpg',
    307322                                                          0, 0, 100, 100, 100, 100 );
    308323                $this->assertInstanceOf( 'WP_Error', $file );
  • branches/3.7/tests/phpunit/tests/image/intermediate_size.php

    r25507 r47343  
    11<?php
    2 
    32/**
    43 * @group image
     
    76 */
    87class Tests_Image_Intermediate_Size extends WP_UnitTestCase {
     8        function tearDown() {
     9                $this->remove_added_uploads();
     10                parent::tearDown();
     11        }
     12
    913        function test_make_intermediate_size_no_size() {
    1014                $image = image_make_intermediate_size( DIR_TESTDATA . '/images/a2-small.jpg', 0, 0, false );
  • branches/3.7/tests/phpunit/tests/image/resize.php

    r25002 r47343  
    55 * @group media
    66 * @group upload
     7 * @group resize
    78 */
     9require_once( dirname( __FILE__ ) . '/base.php' );
     10
    811abstract class WP_Tests_Image_Resize_UnitTestCase extends WP_Image_UnitTestCase {
    912
     
    109112                $this->assertEquals( IMAGETYPE_JPEG, $type );
    110113
    111                 unlink($image);
     114                unlink( $image );
    112115        }
    113116
     
    136139
    137140        /**
    138          * Try resizing a php file (bad image)
    139          * @ticket 6821
    140          */
    141         public function test_resize_bad_image() {
    142                 $image = $this->resize_helper( DIR_TESTDATA.'/export/crazy-cdata.xml', 25, 25 );
    143                 $this->assertInstanceOf( 'WP_Error', $image );
    144                 $this->assertEquals( 'invalid_image', $image->get_error_code() );
    145         }
    146 
    147 
    148         /**
    149141         * Function to help out the tests
    150142         */
  • branches/3.7/tests/phpunit/tests/image/resize_gd.php

    r25002 r47343  
    55 * @group media
    66 * @group upload
     7 * @group resize
    78 */
     9require_once( dirname( __FILE__ ) . '/resize.php' );
     10
    811class Test_Image_Resize_GD extends WP_Tests_Image_Resize_UnitTestCase {
    912
     
    1316         */
    1417        public $editor_engine = 'WP_Image_Editor_GD';
     18
     19        public function setUp() {
     20                require_once( ABSPATH . WPINC . '/class-wp-image-editor.php' );
     21                require_once( ABSPATH . WPINC . '/class-wp-image-editor-gd.php' );
     22
     23                parent::setUp();
     24        }
     25
     26        /**
     27         * Try resizing a php file (bad image)
     28         * @ticket 6821
     29         */
     30        public function test_resize_bad_image() {
     31
     32                $image = $this->resize_helper( DIR_TESTDATA.'/export/crazy-cdata.xml', 25, 25 );
     33                $this->assertInstanceOf( 'WP_Error', $image );
     34                $this->assertEquals( 'invalid_image', $image->get_error_code() );
     35        }
     36
    1537}
  • branches/3.7/tests/phpunit/tests/image/resize_imagick.php

    r25002 r47343  
    55 * @group media
    66 * @group upload
     7 * @group resize
    78 */
     9require_once( dirname( __FILE__ ) . '/resize.php' );
     10
    811class Test_Image_Resize_Imagick extends WP_Tests_Image_Resize_UnitTestCase {
    912
     
    1316         */
    1417        public $editor_engine = 'WP_Image_Editor_Imagick';
     18
     19        public function setUp() {
     20                require_once( ABSPATH . WPINC . '/class-wp-image-editor.php' );
     21                require_once( ABSPATH . WPINC . '/class-wp-image-editor-imagick.php' );
     22
     23                parent::setUp();
     24        }
    1525}
  • branches/3.7/tests/phpunit/tests/l10n.php

    r25407 r47343  
    1717                $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) );
    1818        }
    19 
    20         /**
    21          * @ticket 21319
    22          */
    23         function test_is_textdomain_loaded_for_no_translations() {
    24                 $this->assertFalse( load_textdomain( 'wp-tests-domain', DIR_TESTDATA . '/non-existent-file' ) );
    25                 $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) );
    26                 $this->assertInstanceOf( 'NOOP_Translations', get_translations_for_domain( 'wp-tests-domain' ) );
    27                 // Ensure that we don't confuse NOOP_Translations to be a loaded text domain.
    28                 $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) );
    29                 $this->assertFalse( unload_textdomain( 'wp-tests-domain' ) );
    30         }
    3119}
  • branches/3.7/tests/phpunit/tests/link.php

    r25404 r47343  
    44 */
    55class Tests_Link extends WP_UnitTestCase {
     6
     7        function tearDown() {
     8                global $wp_rewrite;
     9                $wp_rewrite->init();
     10                parent::tearDown();
     11        }
    612
    713        function _get_pagenum_link_cb( $url ) {
     
    3036
    3137        function test_wp_get_shortlink() {
     38                global $wp_rewrite;
     39
    3240                $post_id = $this->factory->post->create();
    3341                $post_id2 = $this->factory->post->create();
     42
     43                $wp_rewrite->init();
     44                $wp_rewrite->set_permalink_structure( '' );
     45                $wp_rewrite->flush_rules();
    3446
    3547                // Basic case
     
    6072                $this->assertEquals( '', wp_get_shortlink() );
    6173
    62                 global $wp_rewrite;
    63                 $wp_rewrite->permalink_structure = '';
    6474                $wp_rewrite->set_permalink_structure( '/%year%/%monthnum%/%day%/%postname%/' );
    6575                $wp_rewrite->flush_rules();
     
    7484                $this->assertEquals( home_url( '?p=' . $post_id ), wp_get_shortlink( 0 ) );
    7585                $this->assertEquals( home_url( '?p=' . $post_id ), wp_get_shortlink() );
    76 
    77                 $wp_rewrite->set_permalink_structure( '' );
    78                 $wp_rewrite->flush_rules();
    7986        }
    8087
     
    8794
    8895                global $wp_rewrite;
    89                 $wp_rewrite->permalink_structure = '';
    9096                $wp_rewrite->set_permalink_structure( '/%year%/%monthnum%/%day%/%postname%/' );
    9197                $wp_rewrite->flush_rules();
    9298
    9399                $this->assertEquals( home_url( '?p=' . $post_id ), wp_get_shortlink( $post_id, 'post' ) );
    94 
    95                 $wp_rewrite->set_permalink_structure( '' );
    96                 $wp_rewrite->flush_rules();
    97100        }
    98101
  • branches/3.7/tests/phpunit/tests/mail.php

    r32151 r47343  
    7070                $this->assertTrue(strpos($GLOBALS['phpmailer']->mock_sent[0]['header'], 'boundary="----=_Part_4892_25692638.1192452070893"') > 0);
    7171                $this->assertTrue(strpos($GLOBALS['phpmailer']->mock_sent[0]['header'], 'charset=') > 0);
    72         }
    73 
    74         /**
    75          * @ticket 15448
    76          */
    77         function test_wp_mail_plain_and_html() {
    78                 $to = 'user@example.com';
    79                 $subject = 'Test email with plain text and html versions';
    80                 $messages = array( 'text/plain' => 'Here is some plain text.',
    81                                            'text/html' =>'<html><head></head><body>Here is the HTML ;-)<body></html>' );
    82 
    83                 wp_mail( $to, $subject, $messages );
    84 
    85                 preg_match( '/boundary="(.*)"/', $GLOBALS['phpmailer']->mock_sent[0]['header'], $matches);
    86                 $boundry = $matches[1];
    87                 $body = '--' . $boundry . '
    88 Content-Type: text/plain; charset = "UTF-8"
    89 Content-Transfer-Encoding: 8bit
    90 
    91 Here is some plain text.
    92 
    93 
    94 --' . $boundry . '
    95 Content-Type: text/html; charset = "UTF-8"
    96 Content-Transfer-Encoding: 8bit
    97 
    98 <html><head></head><body>Here is the HTML ;-)<body></html>
    99 
    100 
    101 
    102 --' . $boundry . '--
    103 ';
    104                 // We need some better assertions here but these test the behaviour for now.
    105                 $this->assertEquals($body, $GLOBALS['phpmailer']->mock_sent[0]['body']);
    10672        }
    10773
  • branches/3.7/tests/phpunit/tests/media.php

    r39719 r47343  
    367367                );
    368368
    369                 $post_id = media_handle_upload( 'upload', 0, array(), array( 'action' => 'test_upload_titles', 'test_form' => false ) );
     369                $post_id = media_handle_upload(
     370                        'upload',
     371                        0,
     372                        array(),
     373                        array(
     374                                'action'               => 'test_upload_titles',
     375                                'test_form'            => false,
     376                                /*
     377                                 * This test previously failed on WP < 4.0 due to is_uploaded_file()
     378                                 * and move_uploaded_file() usage in wp_handle_upload().
     379                                 *
     380                                 * Since successful upload is irrelevant for the purpose of this test,
     381                                 * discarding upload errors allows the test to proceed.
     382                                 */
     383                                'upload_error_handler' => array( $this, '_discard_upload_errors' ),
     384                        )
     385                );
    370386
    371387                unset( $_FILES['upload'] );
     
    377393
    378394                $this->assertEquals( 'This is a test', $post->post_title );
     395        }
     396
     397        function _discard_upload_errors( &$file, $message ) {
     398                $uploads  = wp_upload_dir();
     399                $filename = wp_unique_filename( $uploads['path'], $file['name'] );
     400
     401                $new_file = $uploads['path'] . "/$filename";
     402                $url      = $uploads['url'] . "/$filename";
     403
     404                return array( 'file' => $new_file, 'url' => $url, 'type' => $file['type'] );
    379405        }
    380406
  • branches/3.7/tests/phpunit/tests/meta.php

    r25255 r47343  
    172172                $this->assertEquals( 2, substr_count( $posts->request, 'CAST(' ) );
    173173        }
     174
     175        function test_meta_cache_order_asc() {
     176                $post_id = $this->factory->post->create();
     177                $colors = array( 'red', 'blue', 'yellow', 'green' );
     178                foreach ( $colors as $color )
     179                        add_post_meta( $post_id, 'color', $color );
     180
     181                foreach ( range( 1, 10 ) as $i ) {
     182                        $meta = get_post_meta( $post_id, 'color' );
     183                        $this->assertEquals( $meta, $colors );
     184
     185                        if ( 0 === $i % 2 )
     186                                wp_cache_delete( $post_id, 'post_meta' );
     187                }
     188        }
    174189}
  • branches/3.7/tests/phpunit/tests/ms.php

    r25621 r47343  
    1010class Tests_MS extends WP_UnitTestCase {
    1111        protected $plugin_hook_count = 0;
     12        protected $suppress = false;
    1213
    1314        function setUp() {
     15                global $wpdb;
    1416                parent::setUp();
     17                $this->suppress = $wpdb->suppress_errors();
    1518
    1619                $_SERVER['REMOTE_ADDR'] = '';
     20        }
     21
     22        function tearDown() {
     23                global $wpdb;
     24                parent::tearDown();
     25                $wpdb->suppress_errors( $this->suppress );
    1726        }
    1827
     
    106115
    107116                        foreach ( $wpdb->tables( 'blog', false ) as $table ) {
    108                                 $wpdb->suppress_errors();
     117                                $suppress = $wpdb->suppress_errors();
    109118                                $table_fields = $wpdb->get_results( "DESCRIBE $prefix$table;" );
    110                                 $wpdb->suppress_errors( false );
     119                                $wpdb->suppress_errors( $suppress );
    111120                                $this->assertNotEmpty( $table_fields );
    112121                                $result = $wpdb->get_results( "SELECT * FROM $prefix$table LIMIT 1" );
     
    140149                        $prefix = $wpdb->get_blog_prefix( $blog_id );
    141150                        foreach ( $wpdb->tables( 'blog', false ) as $table ) {
    142                                 $wpdb->suppress_errors();
     151                                $suppress = $wpdb->suppress_errors();
    143152                                $table_fields = $wpdb->get_results( "DESCRIBE $prefix$table;" );
    144                                 $wpdb->suppress_errors( false );
     153                                $wpdb->suppress_errors( $suppress );
    145154                                if ( $drop_tables )
    146155                                        $this->assertEmpty( $table_fields );
  • branches/3.7/tests/phpunit/tests/option/blogOption.php

    r25397 r47343  
    66 */
    77class Tests_Option_BlogOption extends WP_UnitTestCase {
     8        protected $suppress = false;
     9
    810        function setUp() {
     11                global $wpdb;
    912                parent::setUp();
     13                $this->suppress = $wpdb->suppress_errors();
    1014
    1115                $_SERVER['REMOTE_ADDR'] = null;
    1216        }
    1317
    14         function test_from_same_site() {
    15                 $key = rand_str();
    16                 $key2 = rand_str();
    17                 $value = rand_str();
    18                 $value2 = rand_str();
    19 
    20                 $this->assertFalse( get_blog_option( 1, 'doesnotexist' ) );
    21                 $this->assertFalse( get_option( 'doesnotexist' ) ); // check get_option()
    22 
    23                 $this->assertTrue( add_blog_option( 1, $key, $value ) );
    24                 // Assert all values of $blog_id that means the current or main blog (the same here).
    25                 $this->assertEquals( $value, get_blog_option( 1, $key ) );
    26                 $this->assertEquals( $value, get_blog_option( null, $key ) );
    27                 $this->assertEquals( $value, get_blog_option( '1', $key ) );
    28                 $this->assertEquals( $value, get_option( $key ) ); // check get_option()
    29 
    30                 $this->assertFalse( add_blog_option( 1, $key, $value ) );  // Already exists
    31                 $this->assertFalse( update_blog_option( 1, $key, $value ) );  // Value is the same
    32                 $this->assertTrue( update_blog_option( 1, $key, $value2 ) );
    33                 $this->assertEquals( $value2, get_blog_option( 1, $key ) );
    34                 $this->assertEquals( $value2, get_option( $key ) ); // check get_option()
    35                 $this->assertFalse( add_blog_option( 1, $key, $value ) );
    36                 $this->assertEquals( $value2, get_blog_option( 1, $key ) );
    37                 $this->assertEquals( $value2, get_option( $key ) ); // check get_option()
    38 
    39                 $this->assertTrue( delete_blog_option( 1, $key ) );
    40                 $this->assertFalse( get_blog_option( 1, $key ) );
    41                 $this->assertFalse( get_option( $key ) ); // check get_option()
    42                 $this->assertFalse( delete_blog_option( 1, $key ) );
    43                 $this->assertTrue( update_blog_option( 1, $key2, $value2 ) );
    44                 $this->assertEquals( $value2, get_blog_option( 1, $key2 ) );
    45                 $this->assertEquals( $value2, get_option( $key2 ) ); // check get_option()
    46                 $this->assertTrue( delete_blog_option( 1, $key2 ) );
    47                 $this->assertFalse( get_blog_option( 1, $key2 ) );
    48                 $this->assertFalse( get_option( $key2 ) ); // check get_option()
    49         }
    50 
    51         function test_from_same_site_with_null_blog_id() {
    52                 $key = rand_str();
    53                 $key2 = rand_str();
    54                 $value = rand_str();
    55                 $value2 = rand_str();
    56 
    57                 $this->assertFalse( get_blog_option( null, 'doesnotexist' ) );
    58                 $this->assertFalse( get_option( 'doesnotexist' ) ); // check get_option()
    59 
    60                 $this->assertTrue( add_blog_option( null, $key, $value ) );
    61                 // Assert all values of $blog_id that means the current or main blog (the same here).
    62                 $this->assertEquals( $value, get_blog_option( null, $key ) );
    63                 $this->assertEquals( $value, get_blog_option( null, $key ) );
    64                 $this->assertEquals( $value, get_option( $key ) ); // check get_option()
    65 
    66                 $this->assertFalse( add_blog_option( null, $key, $value ) );  // Already exists
    67                 $this->assertFalse( update_blog_option( null, $key, $value ) );  // Value is the same
    68                 $this->assertTrue( update_blog_option( null, $key, $value2 ) );
    69                 $this->assertEquals( $value2, get_blog_option( null, $key ) );
    70                 $this->assertEquals( $value2, get_option( $key ) ); // check get_option()
    71                 $this->assertFalse( add_blog_option( null, $key, $value ) );
    72                 $this->assertEquals( $value2, get_blog_option( null, $key ) );
    73                 $this->assertEquals( $value2, get_option( $key ) ); // check get_option()
    74 
    75                 $this->assertTrue( delete_blog_option( null, $key ) );
    76                 $this->assertFalse( get_blog_option( null, $key ) );
    77                 $this->assertFalse( get_option( $key ) ); // check get_option()
    78                 $this->assertFalse( delete_blog_option( null, $key ) );
    79                 $this->assertTrue( update_blog_option( null, $key2, $value2 ) );
    80                 $this->assertEquals( $value2, get_blog_option( null, $key2 ) );
    81                 $this->assertEquals( $value2, get_option( $key2 ) ); // check get_option()
    82                 $this->assertTrue( delete_blog_option( null, $key2 ) );
    83                 $this->assertFalse( get_blog_option( null, $key2 ) );
    84                 $this->assertFalse( get_option( $key2 ) ); // check get_option()
     18        function tearDown() {
     19                global $wpdb;
     20                parent::tearDown();
     21                $wpdb->suppress_errors( $this->suppress );
    8522        }
    8623
  • branches/3.7/tests/phpunit/tests/post.php

    r32188 r47343  
    447447
    448448                global $wp_rewrite;
     449                $wp_rewrite->init();
    449450                $wp_rewrite->set_permalink_structure('/%year%/%monthnum%/%day%/%postname%/');
     451                $wp_rewrite->flush_rules();
    450452
    451453                $post = array(
     
    736738                $this->assertEquals( $post->post_author, $this->author_id );
    737739                $this->assertEquals( $post->post_title, $title );
    738         }
    739 
    740         /**
    741          * @ticket 19373
    742          */
    743         function test_insert_programmatic_without_current_user_success() {
    744                 $this->_unset_current_user();
    745 
    746                 register_taxonomy( 'test_tax', 'post' );
    747 
    748                 $title = rand_str();
    749                 $post_data = array(
    750                         'post_author' => $this->author_id,
    751                         'post_status' => 'public',
    752                         'post_content' => rand_str(),
    753                         'post_title' => $title,
    754                         'tax_input' => array(
    755                                 'test_tax' => array( 'term', 'term2', 'term3' )
    756                         )
    757                 );
    758                 // with sanitize set to false
    759                 $insert_post_id = wp_insert_post( $post_data, true, false );
    760 
    761                 $post = get_post( $insert_post_id );
    762                 $this->assertEquals( $post->post_author, $this->author_id );
    763                 $this->assertEquals( $post->post_title, $title );
    764 
    765                 $terms = wp_get_object_terms( $insert_post_id, 'test_tax' );
    766                 $this->assertTrue( ( is_array( $terms ) && count( $terms ) == 3 ) );
    767         }
    768 
    769         /**
    770          * @ticket 19373
    771          */
    772         function test_insert_programmatic_without_current_user_fail() {
    773                 $this->_unset_current_user();
    774 
    775                 register_taxonomy( 'test_tax', 'post' );
    776 
    777                 $title = rand_str();
    778                 $post_data = array(
    779                         // post_author not set
    780                         'post_status' => 'public',
    781                         'post_content' => rand_str(),
    782                         'post_title' => $title,
    783                         'tax_input' => array(
    784                                 'test_tax' => array( 'term', 'term2', 'term3' )
    785                         )
    786                 );
    787                 // with sanitize set to false
    788                 $insert_post_id = wp_insert_post( $post_data, true, false );
    789 
    790                 // should error because no default user exists and no post author is passed in
    791                 $this->assertInstanceOf( 'WP_Error', $insert_post_id );
    792                 $this->assertEquals( 'empty_author', $insert_post_id->get_error_code() );
    793740        }
    794741
  • branches/3.7/tests/phpunit/tests/post/attachments.php

    r25002 r47343  
    1010        function tearDown() {
    1111                // Remove all uploads.
    12                 $uploads = wp_upload_dir();
    13                 foreach ( scandir( $uploads['basedir'] ) as $file )
    14                         _rmdir( $uploads['basedir'] . '/' . $file );
    15 
     12                $this->remove_added_uploads();
    1613                parent::tearDown();
    1714        }
     
    212209        }
    213210
    214         /**
    215          * GUID should never be empty
    216          * @ticket 18310
    217          * @ticket 21963
    218          */
    219         function test_insert_image_without_guid() {
    220                 // this image is smaller than the thumbnail size so it won't have one
    221                 $filename = ( DIR_TESTDATA.'/images/test-image.jpg' );
    222                 $contents = file_get_contents($filename);
    223 
    224                 $upload = wp_upload_bits(basename($filename), null, $contents);
    225                 $this->assertTrue( empty($upload['error']) );
    226 
    227                 $upload['url'] = '';
    228                 $id = $this->_make_attachment( $upload );
    229 
    230                 $guid = get_the_guid( $id );
    231                 $this->assertFalse( empty( $guid ) );
    232         }
    233 
    234211}
  • branches/3.7/tests/phpunit/tests/post/filtering.php

    r25002 r47343  
    9191        }
    9292
    93         /**
    94          * make sure unbalanced tags are fixed when they span a --more-- tag
    95          * @ticket 6297
    96          */
    97         function test_post_content_unbalanced_more() {
    98                 $content = <<<EOF
    99 <em>some text<!--more-->
    100 that's continued after the jump</em>
    101 EOF;
    102 
    103                 $expected = <<<EOF
    104 <em>some text</em><!--more-->
    105 that's continued after the jump
    106 EOF;
    107 
    108                 $id = $this->factory->post->create( array( 'post_content' => $content ) );
    109                 $post = get_post($id);
    110 
    111                 $this->assertEquals( $expected, $post->post_content );
    112         }
    113 
    114         /**
    115          * make sure unbalanced tags are fixed when they span a --nextpage-- tag
    116          * @ticket 6297
    117          */
    118         function test_post_content_unbalanced_nextpage() {
    119                 $content = <<<EOF
    120 <em>some text<!--nextpage-->
    121 that's continued after the jump</em>
    122 EOF;
    123 
    124                 $expected = <<<EOF
    125 <em>some text</em><!--nextpage-->
    126 that's continued after the jump
    127 EOF;
    128 
    129                 $id = $this->factory->post->create( array( 'post_content' => $content ) );
    130                 $post = get_post($id);
    131 
    132                 $this->assertEquals( $expected, $post->post_content );
    133         }
    134 
    135         /**
    136          * make sure unbalanced tags are fixed when they span both --more-- and --nextpage-- tags (in that order)
    137          * @ticket 6297
    138          */
    139         function test_post_content_unbalanced_more_nextpage() {
    140                 $content = <<<EOF
    141 <em>some text<!--more-->
    142 that's continued after the jump</em>
    143 <!--nextpage-->
    144 <p>and the next page
    145 <!--nextpage-->
    146 breaks the graf</p>
    147 EOF;
    148 
    149                 $expected = <<<EOF
    150 <em>some text</em><!--more-->
    151 that's continued after the jump
    152 <!--nextpage-->
    153 <p>and the next page
    154 </p><!--nextpage-->
    155 breaks the graf
    156 EOF;
    157 
    158                 $id = $this->factory->post->create( array( 'post_content' => $content ) );
    159                 $post = get_post($id);
    160 
    161                 $this->assertEquals( $expected, $post->post_content );
    162         }
    163 
    164         /**
    165          * make sure unbalanced tags are fixed when they span both --nextpage-- and --more-- tags (in that order)
    166          * @ticket 6297
    167          */
    168         function test_post_content_unbalanced_nextpage_more() {
    169                 $content = <<<EOF
    170 <em>some text<!--nextpage-->
    171 that's continued after the jump</em>
    172 <!--more-->
    173 <p>and the next page
    174 <!--nextpage-->
    175 breaks the graf</p>
    176 EOF;
    177 
    178                 $expected = <<<EOF
    179 <em>some text</em><!--nextpage-->
    180 that's continued after the jump
    181 <!--more-->
    182 <p>and the next page
    183 </p><!--nextpage-->
    184 breaks the graf
    185 EOF;
    186 
    187                 $id = $this->factory->post->create( array( 'post_content' => $content ) );
    188                 $post = get_post($id);
    189 
    190                 $this->assertEquals( $expected, $post->post_content );
    191         }
    192 
    19393        // make sure unbalanced tags are untouched when the balance option is off
    19494        function test_post_content_nobalance_nextpage_more() {
  • branches/3.7/tests/phpunit/tests/post/revisions.php

    r32151 r47343  
    5454
    5555                wp_set_current_user( 0 );
    56         }
    57 
    58         /**
    59         * @ticket 7392
    60         * @ticket 9843
    61         */
    62         function test_revision_dont_save_revision_if_unchanged() {
    63                 $post = get_default_post_to_edit( 'post', true );
    64                 $post_id = $post->ID;
    65 
    66                 $this->assertCount( 0, wp_get_post_revisions( $post_id ) ); // No revisions on auto-draft creation.
    67 
    68                 wp_update_post( array( 'post_status' => 'draft', 'post_title' => 'some-post', 'post_content' => 'some_content', 'ID' => $post_id ) );
    69 
    70                 $this->assertCount( 1, wp_get_post_revisions( $post_id ) ); // Just the initial revision
    71 
    72                 // First update
    73                 wp_update_post( array( 'post_content'   => 'some updated content', 'ID' => $post_id ) );
    74 
    75                 $this->assertCount( 2, wp_get_post_revisions( $post_id ) ); // should be 2 revisions so far
    76 
    77                 //update the post
    78                 wp_update_post( array( 'post_content'   => 'new update for some updated content', 'ID' => $post_id ) ); //2nd revision
    79                 $this->assertCount( 3, wp_get_post_revisions( $post_id ) ); // should be 3 revision so far
    80 
    81                 //next try to save another identical update, tests for patch that prevents storing duplicates
    82                 wp_update_post( array( 'post_content'   => 'new update for some updated content', 'ID' => $post_id ) ); //content unchanged, shouldn't save
    83                 $this->assertCount( 3, wp_get_post_revisions( $post_id ) ); //should still be 3 revision
    84 
    85                 //next try to save another update, same content, but new ttile, should save revision
    86                 wp_update_post( array( 'post_title' => 'some-post-changed', 'post_content'      => 'new update for some updated content', 'ID' => $post_id ) );
    87                 $this->assertCount( 4, wp_get_post_revisions( $post_id ) ); //should  be 4 revision
    88 
    89                 //next try to save another identical update
    90                 wp_update_post( array( 'post_title' => 'some-post-changed', 'post_content'      => 'new update for some updated content', 'ID' => $post_id ) ); //content unchanged, shouldn't save
    91                 $this->assertCount( 4, wp_get_post_revisions( $post_id ) ); //should still be 4 revision
    9256        }
    9357
  • branches/3.7/tests/phpunit/tests/query.php

    r25601 r47343  
    22
    33class Tests_Query extends WP_UnitTestCase {
     4
     5        function setUp() {
     6                global $wp_rewrite;
     7                parent::setUp();
     8
     9                $wp_rewrite->init();
     10                $wp_rewrite->set_permalink_structure( '/%year%/%monthnum%/%day%/%postname%/' );
     11
     12                create_initial_taxonomies();
     13
     14                $wp_rewrite->flush_rules();
     15        }
    416
    517        /**
  • branches/3.7/tests/phpunit/tests/query/conditionals.php

    r32151 r47343  
    2424
    2525                global $wp_rewrite;
    26                 update_option( 'permalink_structure', '/%year%/%monthnum%/%day%/%postname%/' );
     26
     27                $wp_rewrite->init();
     28                $wp_rewrite->set_permalink_structure( '/%year%/%monthnum%/%day%/%postname%/' );
     29
    2730                create_initial_taxonomies();
    28                 $GLOBALS['wp_rewrite']->init();
    29                 flush_rewrite_rules();
     31
     32                $wp_rewrite->flush_rules();
    3033        }
    3134
    3235        function tearDown() {
    33                 $GLOBALS['wp_rewrite']->init();
     36                global $wp_rewrite;
     37                $wp_rewrite->init();
     38
    3439                parent::tearDown();
    3540        }
  • branches/3.7/tests/phpunit/tests/query/results.php

    r25356 r47343  
    280280
    281281        /**
    282          * @ticket 18897
    283          */
    284         function test_query_offset_and_paged() {
    285                 $posts = $this->q->query('paged=2&offset=3');
    286 
    287                 $expected = array (
    288                         0 => 'many-trackbacks',
    289                         1 => 'one-trackback',
    290                         2 => 'comment-test',
    291                         3 => 'lorem-ipsum',
    292                         4 => 'cat-c',
    293                         5 => 'cat-b',
    294                         6 => 'cat-a',
    295                         7 => 'cats-a-and-c',
    296                         8 => 'cats-b-and-c',
    297                         9 => 'cats-a-and-b',
    298                 );
    299 
    300                 $this->assertCount( 10, $posts );
    301                 $this->assertTrue( $this->q->is_paged() );
    302                 $this->assertEquals( $expected, wp_list_pluck( $posts, 'post_name' ) );
    303         }
    304 
    305         /**
    306282         * @ticket 11056
    307283         */
  • branches/3.7/tests/phpunit/tests/query/verboseRewriteRules.php

    r25002 r47343  
    99class Tests_Query_VerbosePageRules extends Tests_Query_Conditionals {
    1010        function setUp() {
     11                global $wp_rewrite;
     12
    1113                parent::setUp();
    12                 global $wp_rewrite;
    13                 update_option( 'permalink_structure', '/%category%/%year%/%postname%/' );
     14               
     15                $wp_rewrite->init();
     16                $wp_rewrite->set_permalink_structure( '/%category%/%year%/%postname%/' );
     17
    1418                create_initial_taxonomies();
    15                 $GLOBALS['wp_rewrite']->init();
    16                 flush_rewrite_rules();
     19
     20                $wp_rewrite->flush_rules();
    1721        }
    1822}
  • branches/3.7/tests/phpunit/tests/rewrite.php

    r32151 r47343  
    99
    1010        function setUp() {
     11                global $wp_rewrite;
    1112                parent::setUp();
    1213
    1314                // Need rewrite rules in place to use url_to_postid
    14                 global $wp_rewrite;
    15                 update_option( 'permalink_structure', '/%year%/%monthnum%/%day%/%postname%/' );
     15                $wp_rewrite->init();
     16                $wp_rewrite->set_permalink_structure( '/%year%/%monthnum%/%day%/%postname%/' );
     17
    1618                create_initial_taxonomies();
    17                 $GLOBALS['wp_rewrite']->init();
    18                 flush_rewrite_rules();
     19
     20                $wp_rewrite->flush_rules();
    1921        }
    2022
    2123        function tearDown() {
    22                 $GLOBALS['wp_rewrite']->init();
     24                global $wp_rewrite;
     25                $wp_rewrite->init();
     26
    2327                parent::tearDown();
    2428        }
     
    3539        function test_url_to_postid_custom_post_type() {
    3640                delete_option( 'rewrite_rules' );
    37                
     41
    3842                $post_type = rand_str( 12 );
    3943                register_post_type( $post_type, array( 'public' => true ) );
    40                
     44
    4145                $id = $this->factory->post->create( array( 'post_type' => $post_type ) );
    42                 $this->assertEquals( $id, url_to_postid( get_permalink( $id ) ) );             
    43                
    44                 _unregister_post_type( $post_type );           
     46                $this->assertEquals( $id, url_to_postid( get_permalink( $id ) ) );
     47
     48                _unregister_post_type( $post_type );
    4549        }
    46        
     50
    4751        function test_url_to_postid_hierarchical() {
    4852
  • branches/3.7/tests/phpunit/tests/shortcode.php

    r33568 r47343  
    309309
    310310        /**
    311          * @ticket 14050
    312          */
    313         function test_multiple_shortcode_unautop() {
    314                 // a blank line is added at the end, so test with it already there
    315                 $test_string = "[footag]\n[footag]\n";
    316                 $actual = shortcode_unautop( wpautop( $test_string ) );
    317                 $this->assertEquals( $test_string, $actual );
    318         }
    319 
    320         /**
    321311         * @ticket 10326
    322312         */
  • branches/3.7/tests/phpunit/tests/taxonomy.php

    r25924 r47343  
    106106
    107107        /**
    108          * @ticket 11058
    109          */
    110         function test_registering_taxonomies_to_object_types() {
    111                 // Create a taxonomy to test with
    112                 $tax = 'test_tax';
    113                 $this->assertFalse( taxonomy_exists($tax) );
    114                 register_taxonomy( $tax, 'post', array( 'hierarchical' => true ) );
    115 
    116                 // Create a post type to test with
    117                 $post_type = 'test_cpt';
    118                 $this->assertFalse( get_post_type( $post_type ) );
    119                 $this->assertObjectHasAttribute( 'name', register_post_type( $post_type ) );
    120 
    121                 // Core taxonomy, core post type
    122                 $this->assertTrue( unregister_taxonomy_for_object_type( 'category', 'post' ) );
    123                 $this->assertFalse( unregister_taxonomy_for_object_type( 'category', 'post' ) );
    124                 $this->assertTrue( register_taxonomy_for_object_type( 'category', 'post' ) );
    125 
    126                 // Core taxonomy, non-core post type
    127                 $this->assertTrue( register_taxonomy_for_object_type( 'category', $post_type ) );
    128                 $this->assertTrue( unregister_taxonomy_for_object_type( 'category', $post_type ) );
    129                 $this->assertFalse( unregister_taxonomy_for_object_type( 'category', $post_type ) );
    130                 $this->assertTrue( register_taxonomy_for_object_type( 'category', $post_type ) );
    131 
    132                 // Core taxonomies, non-post object types
    133                 $this->assertFalse( register_taxonomy_for_object_type( 'category', 'user' ) );
    134                 $this->assertFalse( unregister_taxonomy_for_object_type( 'category', 'user' ) );
    135 
    136                 // Non-core taxonomy, core post type
    137                 $this->assertTrue( unregister_taxonomy_for_object_type( $tax, 'post' ) );
    138                 $this->assertFalse( unregister_taxonomy_for_object_type( $tax, 'post' ) );
    139                 $this->assertTrue( register_taxonomy_for_object_type( $tax, 'post' ) );
    140 
    141                 // Non-core taxonomy, non-core post type
    142                 $this->assertTrue( register_taxonomy_for_object_type( $tax, $post_type ) );
    143                 $this->assertTrue( unregister_taxonomy_for_object_type( $tax, $post_type ) );
    144                 $this->assertFalse( unregister_taxonomy_for_object_type( $tax, $post_type ) );
    145                 $this->assertTrue( register_taxonomy_for_object_type( $tax, $post_type ) );
    146 
    147                 // Non-core taxonomies, non-post object types
    148                 $this->assertFalse( register_taxonomy_for_object_type( $tax, 'user' ) );
    149                 $this->assertFalse( unregister_taxonomy_for_object_type( $tax, 'user' ) );
    150 
    151                 unset($GLOBALS['wp_taxonomies'][$tax]);
    152                 _unregister_post_type( $post_type );
    153 
    154         }
    155         /**
    156108         * @ticket 25706
    157109         */
  • branches/3.7/tests/phpunit/tests/term.php

    r25551 r47343  
    388388        }
    389389
    390         /**
    391          * @ticket 5809
    392          */
    393         function test_update_shared_term() {
    394                 $random_tax = __FUNCTION__;
    395 
    396                 register_taxonomy( $random_tax, 'post' );
    397 
    398                 $post_id = $this->factory->post->create();
    399 
    400                 $old_name = 'Initial';
    401 
    402                 $t1 = wp_insert_term( $old_name, 'category' );
    403                 $t2 = wp_insert_term( $old_name, 'post_tag' );
    404 
    405                 $this->assertEquals( $t1['term_id'], $t2['term_id'] );
    406 
    407                 wp_set_post_categories( $post_id, array( $t1['term_id'] ) );
    408                 wp_set_post_tags( $post_id, array( (int) $t2['term_id'] ) );
    409 
    410                 $new_name = 'Updated';
    411 
    412                 // create the term in a third taxonomy, just to keep things interesting
    413                 $t3 = wp_insert_term( $old_name, $random_tax );
    414                 wp_set_post_terms( $post_id, array( (int) $t3['term_id'] ), $random_tax );
    415                 $this->assertPostHasTerms( $post_id, array( $t3['term_id'] ), $random_tax );
    416 
    417                 $t2_updated = wp_update_term( $t2['term_id'], 'post_tag', array(
    418                         'name' => $new_name
    419                 ) );
    420 
    421                 $this->assertNotEquals( $t2_updated['term_id'], $t3['term_id'] );
    422 
    423                 // make sure the terms have split
    424                 $this->assertEquals( $old_name, get_term_field( 'name', $t1['term_id'], 'category' ) );
    425                 $this->assertEquals( $new_name, get_term_field( 'name', $t2_updated['term_id'], 'post_tag' ) );
    426 
    427                 // and that they are still assigned to the correct post
    428                 $this->assertPostHasTerms( $post_id, array( $t1['term_id'] ), 'category' );
    429                 $this->assertPostHasTerms( $post_id, array( $t2_updated['term_id'] ), 'post_tag' );
    430                 $this->assertPostHasTerms( $post_id, array( $t3['term_id'] ), $random_tax );
    431 
    432                 // clean up
    433                 unset( $GLOBALS['wp_taxonomies'][ $random_tax ] );
    434         }
    435 
    436390        private function assertPostHasTerms( $post_id, $expected_term_ids, $taxonomy ) {
    437391                $assigned_term_ids = wp_get_object_terms( $post_id, $taxonomy, array(
     
    440394
    441395                $this->assertEquals( $expected_term_ids, $assigned_term_ids );
    442         }
    443 
    444         /**
    445          * @ticket 24189
    446          */
    447         function test_object_term_cache_when_term_changes() {
    448                 $post_id = $this->factory->post->create();
    449                 $tag_id = $this->factory->tag->create( array( 'description' => 'My Amazing Tag' ) );
    450 
    451                 $tt_1 = wp_set_object_terms( $post_id, $tag_id, 'post_tag' );
    452 
    453                 $terms = get_the_terms( $post_id, 'post_tag' );
    454                 $this->assertEquals( $tag_id, $terms[0]->term_id );
    455                 $this->assertEquals( 'My Amazing Tag', $terms[0]->description );
    456 
    457                 $_updated = wp_update_term( $tag_id, 'post_tag', array(
    458                         'description' => 'This description is even more amazing!'
    459                 ) );
    460 
    461                 $_new_term = get_term( $tag_id, 'post_tag' );
    462                 $this->assertEquals( $tag_id, $_new_term->term_id );
    463                 $this->assertEquals( 'This description is even more amazing!', $_new_term->description );
    464 
    465                 $terms = get_the_terms( $post_id, 'post_tag' );
    466                 $this->assertEquals( $tag_id, $terms[0]->term_id );
    467                 $this->assertEquals( 'This description is even more amazing!', $terms[0]->description );
    468396        }
    469397
  • branches/3.7/tests/phpunit/tests/user.php

    r30434 r47343  
    146146        }
    147147
    148         /**
    149          * Test the magic __unset method
    150          *
    151          * @ticket 20043
    152          */
    153         public function test_user_unset() {
    154                 // New user
    155                 $user_id = $this->factory->user->create( array( 'role' => 'author' ) );
    156                 $user = new WP_User( $user_id );
    157 
    158                 // Test custom fields
    159                 $user->customField = 123;
    160                 $this->assertEquals( $user->customField, 123 );
    161                 unset( $user->customField );
    162                 $this->assertFalse( isset( $user->customField ) );
    163                 return $user;
    164         }
    165 
    166         /**
    167          * @depends test_user_unset
    168          * @expectedDeprecated WP_User->id
    169          * @ticket 20043
    170          */
    171         function test_user_unset_lowercase_id( $user ) {
    172                 // Test 'id' (lowercase)
    173                 unset( $user->id );
    174                 return $user;
    175         }
    176 
    177         /**
    178          * @depends test_user_unset_lowercase_id
    179          * @ticket 20043
    180          */
    181         function test_user_unset_uppercase_id( $user ) {
    182                 // Test 'ID'
    183                 $this->assertNotEmpty( $user->ID );
    184                 unset( $user->ID );
    185                 $this->assertEmpty( $user->ID );
    186         }
    187 
    188148        // Test meta property magic functions for property get/set/isset.
    189149        function test_user_meta_properties() {
  • branches/3.7/tests/phpunit/tests/xmlrpc/wp/getPosts.php

    r25002 r47343  
    5252                ));
    5353
     54                $post_ids = array();
    5455                $num_posts = 17;
    55                 $post_ids = $this->factory->post->create_many( $num_posts, array( 'post_type' => $cpt_name ) );
    56 
     56                foreach ( range( 1, $num_posts ) as $i ) {
     57                        $post_ids[] = $this->factory->post->create( array(
     58                                'post_type' => $cpt_name,
     59                                'post_date' => date( 'Y-m-d H:i:s', time() + $i )
     60                        ) );
     61                }
    5762                // get them all
    5863                $filter = array( 'post_type' => $cpt_name, 'number' => $num_posts + 10 );
     
    6772                do {
    6873                        $presults = $this->myxmlrpcserver->wp_getPosts( array( 1, 'editor', 'editor', $filter ) );
    69                         foreach( $presults as $post ) {
    70                                 $posts_found[] = $post['post_id'];
    71                         }
     74                        $posts_found = array_merge( $posts_found, wp_list_pluck( $presults, 'post_id' ) );
    7275                        $filter['offset'] += $filter['number'];
    7376                } while ( count( $presults ) > 0 );
  • branches/3.7/tests/phpunit/tests/xmlrpc/wp/uploadFile.php

    r25002 r47343  
    3030        }
    3131
    32         /**
    33          * @ticket 21292
    34          */
    35         function test_network_limit() {
    36                 $this->make_user_by_role( 'editor' );
    37 
    38                 update_option( 'blog_upload_space', 0.1 );
    39 
    40                 // create attachment
    41                 $filename = ( DIR_TESTDATA . '/images/canola.jpg' );
    42                 $contents = file_get_contents( $filename );
    43                 $data = array(
    44                         'name' => 'canola.jpg',
    45                         'type' => 'image/jpeg',
    46                         'bits' => $contents
    47                 );
    48 
    49                 $result = $this->myxmlrpcserver->mw_newMediaObject( array( 0, 'editor', 'editor', $data ) );
    50 
    51                 // Only multisite should have a limit
    52                 if ( is_multisite() )
    53                         $this->assertInstanceOf( 'IXR_Error', $result );
    54                 else
    55                         $this->assertNotInstanceOf( 'IXR_Error', $result );
    56         }
    57 
    58         /**
    59          * @ticket 11946
    60          */
    61         function test_valid_mime() {
    62                 $this->make_user_by_role( 'editor' );
    63 
    64                 // create attachment
    65                 $filename = ( DIR_TESTDATA . '/images/test-image-mime-jpg.png' );
    66                 $contents = file_get_contents( $filename );
    67                 $data = array(
    68                         'name' => 'test-image-mime-jpg.png',
    69                         'type' => 'image/png',
    70                         'bits' => $contents
    71                 );
    72 
    73                 $result = $this->myxmlrpcserver->mw_newMediaObject( array( 0, 'editor', 'editor', $data ) );
    74 
    75                 $this->assertNotInstanceOf( 'IXR_Error', $result );
    76 
    77                 $this->assertEquals( 'image/jpeg', $result['type'] );
    78         }
    7932}
Note: See TracChangeset for help on using the changeset viewer.