Make WordPress Core

Ticket #33968: fix-blown-up-factory.diff

File fix-blown-up-factory.diff, 1.6 KB (added by nerrad, 9 years ago)

preserve back compat of $factory property for plugins extending WP_UnitTestCase

  • tests/phpunit/includes/testcase.php

    diff --git tests/phpunit/includes/testcase.php tests/phpunit/includes/testcase.php
    index e7c3308..c7b13d2 100644
    class WP_UnitTestCase extends PHPUnit_Framework_TestCase { 
    1717        /**
    1818         * @var WP_UnitTest_Factory
    1919         */
    20         protected static $factory;
     20        protected static $_factory;
     21        protected $factory;
    2122
    2223        public static function get_called_class() {
    2324                if ( function_exists( 'get_called_class' ) ) {
    class WP_UnitTestCase extends PHPUnit_Framework_TestCase { 
    3738        public static function setUpBeforeClass() {
    3839                parent::setUpBeforeClass();
    3940
    40                 if ( ! self::$factory ) {
    41                         self::$factory = new WP_UnitTest_Factory();
    42                 }
     41                self::_get_factory();
    4342
    4443                $c = self::get_called_class();
    4544                if ( ! method_exists( $c, 'wpSetUpBeforeClass' ) ) {
    class WP_UnitTestCase extends PHPUnit_Framework_TestCase { 
    6463                self::commit_transaction();
    6564        }
    6665
     66
     67        protected static function _get_factory() {
     68                if ( ! self::$_factory instanceof WP_UnitTest_Factory ) {
     69                        self::$_factory = new WP_UnitTest_Factory();
     70                }
     71                return self::$_factory;
     72        }
     73
     74
    6775        function setUp() {
    6876                set_time_limit(0);
    6977
    class WP_UnitTestCase extends PHPUnit_Framework_TestCase { 
    8088                $wpdb->show_errors = true;
    8189                $wpdb->db_connect();
    8290                ini_set('display_errors', 1 );
     91                $this->factory = self::_get_factory();
    8392                $this->clean_up_global_scope();
    8493
    8594                /*
    class WP_UnitTestCase extends PHPUnit_Framework_TestCase { 
    682691                $wp_rewrite->set_permalink_structure( $structure );
    683692                $wp_rewrite->flush_rules();
    684693        }
     694
    685695}