use PHPUnit4And6Compat;
use MediaWikiCoversValidator;
+ private $unitGlobals = [];
+
+ protected function setUp() {
+ parent::setUp();
+ $reflection = new ReflectionClass( $this );
+ $dirSeparator = DIRECTORY_SEPARATOR;
+ if ( strpos( $reflection->getFilename(), "${dirSeparator}unit${dirSeparator}" ) === false ) {
+ $this->fail( 'This unit test needs to be in "tests/phpunit/unit" !' );
+ }
+ $this->unitGlobals = $GLOBALS;
+ unset( $GLOBALS );
+ $GLOBALS = [];
+ // Add back the minimal set of globals needed for unit tests to run for core +
+ // extensions/skins.
+ foreach ( $this->unitGlobals['wgPhpUnitBootstrapGlobals'] ?? [] as $key => $value ) {
+ $GLOBALS[ $key ] = $this->unitGlobals[ $key ];
+ }
+ }
+
+ protected function tearDown() {
+ $GLOBALS = $this->unitGlobals;
+ parent::tearDown();
+ }
}