From: Antoine Musso Date: Thu, 30 May 2013 15:05:34 +0000 (+0200) Subject: tests: resources tests were not being run X-Git-Tag: 1.31.0-rc.0~19538^2 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22lang_raccourcis%22%2C%22module=%24nom_module%22%29%20.%20%22?a=commitdiff_plain;h=67b935edb41dafa34b0ee2af58102c3dce03826b;p=lhc%2Fweb%2Fwiklou.git tests: resources tests were not being run The ResourcesTest class under ./resources/ were not registered anywhere. This patch move it under the `structure` testsuite and phaseout the, now empty, `resources` directory. Change-Id: I53410e1dc83263c4c541f4dc278a9e616265d7b1 --- diff --git a/tests/phpunit/resources/ResourcesTest.php b/tests/phpunit/resources/ResourcesTest.php deleted file mode 100644 index 3af805a958..0000000000 --- a/tests/phpunit/resources/ResourcesTest.php +++ /dev/null @@ -1,126 +0,0 @@ -assertFileExists( $filename, - "File '$resource' referenced by '$module' must exist." - ); - } - - /** - * This ask the ResouceLoader for all registered files from modules - * created by ResourceLoaderFileModule (or one of its descendants). - * - * - * Since the raw data is stored in protected properties, we have to - * overrride this through ReflectionObject methods. - */ - public static function provideResourceFiles() { - global $wgEnableJavaScriptTest; - - // Test existance of test suite files as well - // (can't use setUp or setMwGlobals because providers are static) - $live_wgEnableJavaScriptTest = $wgEnableJavaScriptTest; - $wgEnableJavaScriptTest = true; - - // Array with arguments for the test function - $cases = array(); - - // Initialize ResourceLoader - $rl = new ResourceLoader(); - - // See also ResourceLoaderFileModule::__construct - $filePathProps = array( - // Lists of file paths - 'lists' => array( - 'scripts', - 'debugScripts', - 'loaderScripts', - 'styles', - ), - - // Collated lists of file paths - 'nested-lists' => array( - 'languageScripts', - 'skinScripts', - 'skinStyles', - ), - ); - - foreach ( $rl->getModuleNames() as $moduleName ) { - $module = $rl->getModule( $moduleName ); - if ( !$module instanceof ResourceLoaderFileModule ) { - continue; - } - - $reflectedModule = new ReflectionObject( $module ); - - $files = array(); - - foreach ( $filePathProps['lists'] as $propName ) { - $property = $reflectedModule->getProperty( $propName ); - $property->setAccessible( true ); - $list = $property->getValue( $module ); - foreach ( $list as $key => $value ) { - // 'scripts' are numeral arrays. - // 'styles' can be numeral or associative. - // In case of associative the key is the file path - // and the value is the 'media' attribute. - if ( is_int( $key ) ) { - $files[] = $value; - } else { - $files[] = $key; - } - } - } - - foreach ( $filePathProps['nested-lists'] as $propName ) { - $property = $reflectedModule->getProperty( $propName ); - $property->setAccessible( true ); - $lists = $property->getValue( $module ); - foreach ( $lists as $list ) { - foreach ( $list as $key => $value ) { - // We need the same filter as for 'lists', - // due to 'skinStyles'. - if ( is_int( $key ) ) { - $files[] = $value; - } else { - $files[] = $key; - } - } - } - } - - // Get method for resolving the paths to full paths - $method = $reflectedModule->getMethod( 'getLocalPath' ); - $method->setAccessible( true ); - - // Populate cases - foreach ( $files as $file ) { - $cases[] = array( - $method->invoke( $module, $file ), - $module->getName(), - $file, - ); - } - } - - // Restore settings - $wgEnableJavaScriptTest = $live_wgEnableJavaScriptTest; - - return $cases; - } -} diff --git a/tests/phpunit/structure/ResourcesTest.php b/tests/phpunit/structure/ResourcesTest.php new file mode 100644 index 0000000000..3af805a958 --- /dev/null +++ b/tests/phpunit/structure/ResourcesTest.php @@ -0,0 +1,126 @@ +assertFileExists( $filename, + "File '$resource' referenced by '$module' must exist." + ); + } + + /** + * This ask the ResouceLoader for all registered files from modules + * created by ResourceLoaderFileModule (or one of its descendants). + * + * + * Since the raw data is stored in protected properties, we have to + * overrride this through ReflectionObject methods. + */ + public static function provideResourceFiles() { + global $wgEnableJavaScriptTest; + + // Test existance of test suite files as well + // (can't use setUp or setMwGlobals because providers are static) + $live_wgEnableJavaScriptTest = $wgEnableJavaScriptTest; + $wgEnableJavaScriptTest = true; + + // Array with arguments for the test function + $cases = array(); + + // Initialize ResourceLoader + $rl = new ResourceLoader(); + + // See also ResourceLoaderFileModule::__construct + $filePathProps = array( + // Lists of file paths + 'lists' => array( + 'scripts', + 'debugScripts', + 'loaderScripts', + 'styles', + ), + + // Collated lists of file paths + 'nested-lists' => array( + 'languageScripts', + 'skinScripts', + 'skinStyles', + ), + ); + + foreach ( $rl->getModuleNames() as $moduleName ) { + $module = $rl->getModule( $moduleName ); + if ( !$module instanceof ResourceLoaderFileModule ) { + continue; + } + + $reflectedModule = new ReflectionObject( $module ); + + $files = array(); + + foreach ( $filePathProps['lists'] as $propName ) { + $property = $reflectedModule->getProperty( $propName ); + $property->setAccessible( true ); + $list = $property->getValue( $module ); + foreach ( $list as $key => $value ) { + // 'scripts' are numeral arrays. + // 'styles' can be numeral or associative. + // In case of associative the key is the file path + // and the value is the 'media' attribute. + if ( is_int( $key ) ) { + $files[] = $value; + } else { + $files[] = $key; + } + } + } + + foreach ( $filePathProps['nested-lists'] as $propName ) { + $property = $reflectedModule->getProperty( $propName ); + $property->setAccessible( true ); + $lists = $property->getValue( $module ); + foreach ( $lists as $list ) { + foreach ( $list as $key => $value ) { + // We need the same filter as for 'lists', + // due to 'skinStyles'. + if ( is_int( $key ) ) { + $files[] = $value; + } else { + $files[] = $key; + } + } + } + } + + // Get method for resolving the paths to full paths + $method = $reflectedModule->getMethod( 'getLocalPath' ); + $method->setAccessible( true ); + + // Populate cases + foreach ( $files as $file ) { + $cases[] = array( + $method->invoke( $module, $file ), + $module->getName(), + $file, + ); + } + } + + // Restore settings + $wgEnableJavaScriptTest = $live_wgEnableJavaScriptTest; + + return $cases; + } +}