Unit Tests: after [35225], make factory a method/getter on WP_UnitTestCase and add magic methods for BC for every plugin that is extending WP_UnitTestCase and accessing the $factory instance prop.

Props nerrad, wonderboymusic.
See #30017, #33968.



git-svn-id: https://develop.svn.wordpress.org/trunk@35242 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Scott Taylor
2015-10-17 18:02:16 +00:00
parent 5a0fd03f95
commit b757b37551
170 changed files with 2516 additions and 2507 deletions

View File

@@ -14,10 +14,23 @@ class WP_UnitTestCase extends PHPUnit_Framework_TestCase {
protected static $hooks_saved = array();
protected static $ignore_files;
/**
* @var WP_UnitTest_Factory
*/
protected static $factory;
function __isset( $name ) {
return 'factory' === $name;
}
function __get( $name ) {
if ( 'factory' === $name ) {
return self::factory();
}
}
protected static function factory() {
static $factory = null;
if ( ! $factory ) {
$factory = new WP_UnitTest_Factory();
}
return $factory;
}
public static function get_called_class() {
if ( function_exists( 'get_called_class' ) ) {
@@ -37,16 +50,12 @@ class WP_UnitTestCase extends PHPUnit_Framework_TestCase {
public static function setUpBeforeClass() {
parent::setUpBeforeClass();
if ( ! self::$factory ) {
self::$factory = new WP_UnitTest_Factory();
}
$c = self::get_called_class();
if ( ! method_exists( $c, 'wpSetUpBeforeClass' ) ) {
return;
}
call_user_func( array( $c, 'wpSetUpBeforeClass' ), self::$factory );
call_user_func( array( $c, 'wpSetUpBeforeClass' ), self::factory() );
self::commit_transaction();
}