JGonera has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/50198


Change subject: (bug 45217) Fix dependencies support in MFResourceLoaderModule
......................................................................

(bug 45217) Fix dependencies support in MFResourceLoaderModule

Add support for 'dependencies' key in MFResourceLoaderModule. Also
always depend on 'mobile.startup' (which contains code responsible for
compiling templates).

Change-Id: I148c6db90bf837f9813194a7835fa3edb9aa0247
---
M includes/modules/MFResourceLoaderModule.php
M tests/modules/MFResourceLoaderModuleTest.php
2 files changed, 41 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MobileFrontend 
refs/changes/98/50198/1

diff --git a/includes/modules/MFResourceLoaderModule.php 
b/includes/modules/MFResourceLoaderModule.php
index 66d4d7f..7183b94 100644
--- a/includes/modules/MFResourceLoaderModule.php
+++ b/includes/modules/MFResourceLoaderModule.php
@@ -4,6 +4,7 @@
  * Allows basic parsing of messages without arguments
  */
 class MFResourceLoaderModule extends ResourceLoaderModule {
+       protected $dependencies = array();
        protected $parsedMessages = array();
        protected $messages = array();
        protected $templates = array();
@@ -16,18 +17,34 @@
         * Registers core modules and runs registration hooks.
         */
        public function __construct( $options ) {
-               if ( isset( $options[ 'localTemplateBasePath' ] ) ) {
-                       $this->localTemplateBasePath = $options[ 
'localTemplateBasePath' ];
+               foreach ( $options as $member => $option ) {
+                       switch ( $member ) {
+                               case 'localTemplateBasePath':
+                               case 'localBasePath':
+                                       $this->{$member} = (string) $option;
+                                       break;
+                               case 'templates':
+                               case 'dependencies':
+                                       $this->{$member} = (array) $option;
+                                       break;
+                               case 'messages':
+                                       $this->processMessages( $option );
+                                       break;
+                       }
                }
-               if ( isset( $options[ 'messages' ] ) ) {
-                       $this->processMessages( $options[ 'messages'] );
-               }
-               if ( isset( $options[ 'localBasePath' ] ) ) {
-                       $this->localBasePath = $options[ 'localBasePath' ];
-               }
-               if ( isset( $options[ 'templates' ] ) ) {
-                       $this->templates = $options['templates'];
-               }
+
+               // MFResourceLoaderModule must depend on mobile.startup because
+               // mobile.startup contains code responsible for compiling 
templates
+               $this->dependencies[] = 'mobile.startup';
+       }
+
+       /**
+        * Gets list of names of modules this module depends on.
+        *
+        * @return Array: List of module names
+        */
+       public function getDependencies() {
+               return $this->dependencies;
        }
 
        /**
diff --git a/tests/modules/MFResourceLoaderModuleTest.php 
b/tests/modules/MFResourceLoaderModuleTest.php
index af571ae..8aff7d2 100644
--- a/tests/modules/MFResourceLoaderModuleTest.php
+++ b/tests/modules/MFResourceLoaderModuleTest.php
@@ -25,6 +25,10 @@
                        'templates' => array(
                                'template', 'template2',
                        )
+               ),
+
+               'dependenciesModule' => array(
+                       'dependencies' => array( 'dependency1', 'dependency2' )
                )
        );
        // providers
@@ -139,4 +143,13 @@
 
                $this->assertEquals( $js, $expected );
        }
+
+       public function testGetDependencies() {
+               $rlModule = new MFResourceLoaderModule( 
$this->modules['dependenciesModule'] );
+               $dependencies = $rlModule->getDependencies();
+
+               $this->assertContains( 'dependency1', $dependencies );
+               $this->assertContains( 'dependency2', $dependencies );
+               $this->assertContains( 'mobile.startup', $dependencies );
+       }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/50198
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I148c6db90bf837f9813194a7835fa3edb9aa0247
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: JGonera <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to