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