Krinkle has uploaded a new change for review.
https://gerrit.wikimedia.org/r/276898
Change subject: Minor clean up of MFResourceLoaderParsedMessageModule
......................................................................
Minor clean up of MFResourceLoaderParsedMessageModule
* Remove redundant getMessages() method inherited from parent.
* Use $context->msg() instead of manually passing around language
for consistency with core.
* Export one mw.messages.set() call with an object instead of one
call for each message.
* Remove spurious line break from output.
* Fix typo (getScripts > getScript).
Change-Id: I1842d278ecdb69e8696d596fc89f6e2df86f1d28
---
M includes/modules/MFResourceLoaderParsedMessageModule.php
M tests/phpunit/modules/MFResourceLoaderParsedMessageModuleTest.php
2 files changed, 20 insertions(+), 27 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MobileFrontend
refs/changes/98/276898/1
diff --git a/includes/modules/MFResourceLoaderParsedMessageModule.php
b/includes/modules/MFResourceLoaderParsedMessageModule.php
index c92de3a..f500245 100644
--- a/includes/modules/MFResourceLoaderParsedMessageModule.php
+++ b/includes/modules/MFResourceLoaderParsedMessageModule.php
@@ -10,7 +10,7 @@
protected $messages = array();
/** @var array Saves the target for the module (e.g. desktop and
mobile). */
protected $targets = array( 'mobile', 'desktop' );
- /** @var boolean Whether the module abuses getScripts. */
+ /** @var boolean Whether the module abuses getScript. */
protected $hasHackedScriptMode = false;
/**
@@ -33,25 +33,27 @@
}
/**
- * Processes messages which have been marked as needing parsing
+ * Process messages which have been marked as needing parsing
*
* @param string $lang Language code to use
* @return string JavaScript code
*/
- public function addParsedMessages( $lang ) {
- $js = "\n";
- foreach ( $this->parsedMessages as $key ) {
- $value = wfMessage( $key )->inLanguage( $lang
)->parse();
- $js .= Xml::encodeJsCall( 'mw.messages.set', array(
$key, $value ) );
+ public function addParsedMessages( ResourceLoaderContext $context ) {
+ if ( !$this->parsedMessages ) {
+ return '';
}
- return $js;
+ $messages = [];
+ foreach ( $this->parsedMessages as $key ) {
+ $messages[ $key ] = $context->msg( $key )->parse();
+ }
+ return Xml::encodeJsCall( 'mw.messages.set', array( $messages )
);
}
/**
- * Separates messages which have been marked as needing parsing from
standard messages
+ * Separate messages which have been marked as needing parsing from
standard messages
* @param array $messages Array of messages to process
*/
- public function processMessages( $messages ) {
+ private function processMessages( $messages ) {
foreach ( $messages as $key => $value ) {
if ( is_array( $value ) ) {
foreach ( $value as $directive ) {
@@ -66,15 +68,6 @@
}
/**
- * Gets list of message keys used by this module.
- *
- * @return array List of message keys
- */
- public function getMessages() {
- return $this->messages;
- }
-
- /**
* Gets all scripts for a given context concatenated together including
processed messages
*
* @param ResourceLoaderContext $context Context in which to generate
script
@@ -82,7 +75,7 @@
*/
public function getScript( ResourceLoaderContext $context ) {
$script = parent::getScript( $context );
- return $this->addParsedMessages( $context->getLanguage() ) .
$script;
+ return $this->addParsedMessages( $context ) . $script;
}
/**
diff --git a/tests/phpunit/modules/MFResourceLoaderParsedMessageModuleTest.php
b/tests/phpunit/modules/MFResourceLoaderParsedMessageModuleTest.php
index 8500df6..260b334 100644
--- a/tests/phpunit/modules/MFResourceLoaderParsedMessageModuleTest.php
+++ b/tests/phpunit/modules/MFResourceLoaderParsedMessageModuleTest.php
@@ -3,7 +3,7 @@
/**
* @group MobileFrontend
*/
-class MFResourceLoaderParsedMessageModuleTest extends MediaWikiTestCase {
+class MFResourceLoaderParsedMessageModuleTest extends ResourceLoaderTestCase {
private $modules = array(
array(
'messages' => array( 'foo', 'bar' ),
@@ -41,16 +41,16 @@
}
public function providerAddParsedMessages() {
- $msg = wfMessage( 'mobile-frontend-photo-license' )->parse();
- $expected = "\n" . Xml::encodeJsCall( 'mw.messages.set',
- array( 'mobile-frontend-photo-license', $msg )
);
+ $html = wfMessage( 'mobile-frontend-photo-license' )->parse();
+ $expected = Xml::encodeJsCall( 'mw.messages.set',
+ array( array( 'mobile-frontend-photo-license'
=> $html ) ) );
return array(
// test case 1
array(
$this->modules[0],
// expected value
- "\n"
+ ''
),
// test case 2
array(
@@ -62,7 +62,7 @@
array(
$this->modules[2],
// expected value 2
- "\n"
+ ''
),
);
}
@@ -74,7 +74,7 @@
*/
public function testAddParsedMessages( $module, $expectedJavascript ) {
$rl = new MFResourceLoaderParsedMessageModule( $module );
- $js = $rl->addParsedMessages( 'en' );
+ $js = $rl->addParsedMessages( $this->getResourceLoaderContext(
'en' ) );
$this->assertEquals( $js, $expectedJavascript );
}
--
To view, visit https://gerrit.wikimedia.org/r/276898
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I1842d278ecdb69e8696d596fc89f6e2df86f1d28
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Krinkle <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits