%PDF- %PDF-
Direktori : /proc/985914/root/www/varak.net/wiki.varak.net/extensions/Mantle/includes/ |
Current File : //proc/985914/root/www/varak.net/wiki.varak.net/extensions/Mantle/includes/Hooks.php |
<?php /** * Hook handlers for MobileFrontend extension * * Hook handler method names should be in the form of: * on<HookName>() * For intance, the hook handler for the 'RequestContextCreateSkin' would be called: * onRequestContextCreateSkin() */ class MantleHooks { /** * UnitTestsList hook handler * @see https://www.mediawiki.org/wiki/Manual:Hooks/UnitTestsList * * @param array $files * @return bool */ public static function onUnitTestsList( &$files ) { $dir = dirname( dirname( __FILE__ ) ) . '/tests'; $callback = function( $file ) use ( $dir ) { return "$dir/$file"; }; $files = array_merge( $files, array_map( $callback, array( 'ResourceLoaderTemplateModuleTest.php', ) ) ); return true; } /** * ResourceLoaderTestModules hook handler * @see https://www.mediawiki.org/wiki/Manual:Hooks/ResourceLoaderTestModules * * @param array $testModules * @param ResourceLoader $resourceLoader * @return bool */ public static function onResourceLoaderTestModules( array &$testModules, ResourceLoader &$resourceLoader ) { global $wgResourceModules; $testModuleBoilerplate = array( 'localBasePath' => dirname( __DIR__ ), 'remoteExtPath' => 'Mantle', 'targets' => array( 'desktop', 'mobile' ), ); // find test files for every RL module foreach ( $wgResourceModules as $key => $module ) { if ( substr( $key, 0, 10 ) === 'ext.mantle' && isset( $module['scripts'] ) ) { $testFiles = array(); foreach ( $module['scripts'] as $script ) { $testFile = 'tests/' . dirname( $script ) . '/test_' . basename( $script ); // if a test file exists for a given JS file, add it if ( file_exists( $testModuleBoilerplate['localBasePath'] . '/' . $testFile ) ) { $testFiles[] = $testFile; } } // if test files exist for given module, create a corresponding test module if ( !empty( $testFiles ) ) { $testModules['qunit']["$key.tests"] = $testModuleBoilerplate + array( 'dependencies' => array( $key ), 'scripts' => $testFiles, ); } } } return true; } }