Kai Nissen (WMDE) has uploaded a new change for review.
https://gerrit.wikimedia.org/r/236026
Change subject: Consider the object reference not being passed in the expected
format
......................................................................
Consider the object reference not being passed in the expected format
This fix cares for the parameter objref not containing the expected pipe
character as the delimiter. The href of the button that is configured to
'useObjref' will only be applied if the objref parameter consists of at
least two values delimited by the pipe character.
Bug: T111381
Change-Id: I1e422f135aad29d569b81a867da9a393c974f31e
---
M includes/UploadWizardCampaign.php
M tests/phpunit/UploadWizardConfigTest.php
2 files changed, 46 insertions(+), 13 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/UploadWizard
refs/changes/26/236026/1
diff --git a/includes/UploadWizardCampaign.php
b/includes/UploadWizardCampaign.php
index cdd7938..872401a 100755
--- a/includes/UploadWizardCampaign.php
+++ b/includes/UploadWizardCampaign.php
@@ -444,9 +444,12 @@
* @return bool|string
*/
private function getButtonHrefByObjectReference( $objRef ) {
- list( $wiki, $title ) = explode( '|', $objRef );
- if ( Interwiki::isValidInterwiki( $wiki ) ) {
- return str_replace( '$1', $title, Interwiki::fetch(
$wiki )->getURL() );
+ $arrObjRef = explode( '|', $objRef );
+ if ( count( $arrObjRef ) > 1 ) {
+ list( $wiki, $title ) = $arrObjRef;
+ if ( Interwiki::isValidInterwiki( $wiki ) ) {
+ return str_replace( '$1', $title,
Interwiki::fetch( $wiki )->getURL() );
+ }
}
return false;
}
diff --git a/tests/phpunit/UploadWizardConfigTest.php
b/tests/phpunit/UploadWizardConfigTest.php
index c511606..e59ddc5 100644
--- a/tests/phpunit/UploadWizardConfigTest.php
+++ b/tests/phpunit/UploadWizardConfigTest.php
@@ -7,18 +7,52 @@
class UploadWizardConfigTest extends MediaWikiTestCase {
- public function
testButtonTargetIsSetToUseObjRef_buttonHrefMatchesRefPage() {
+ public function objRefProvider() {
+ return array(
+ array(
+ '',
+ false
+ ),
+ array(
+ 'JustSomeString',
+ false
+ ),
+ array(
+ 'notawiki|Page Title',
+ false
+ ),
+ array(
+ 'es|Page Title',
+ 'http://es.wikipedia.org/wiki/Page Title'
+ ),
+ array(
+ 'es|Page Title|id12345',
+ 'http://es.wikipedia.org/wiki/Page Title'
+ ),
+ );
+ }
+
+ /**
+ * @dataProvider objRefProvider
+ */
+ public function
testButtonTargetIsSetToUseObjRef_buttonHrefMatchesRefPage( $objRef,
$expectedResult ) {
global $wgUploadWizardConfig;
ParserTest::setupInterwikis();
$this->setMwGlobals( array(
'wgUploadWizardConfig' => array_merge(
$wgUploadWizardConfig, array(
- 'defaults' => array( 'objref' => 'es|My
Monuments|12345' ),
+ 'defaults' => array( 'objref' => $objRef ),
) ),
) );
- $campaign = new UploadWizardCampaign(
- Title::newFromText( 'uw-test-campaign', NS_CAMPAIGN ),
+ $this->assertEquals(
+ $expectedResult,
+ $this->getHomeButtonHref()
+ );
+ }
+
+ private function getHomeButtonHref() {
+ $campaign = new UploadWizardCampaign( Title::newFromText(
'uw-test-campaign', NS_CAMPAIGN ),
array(
'enabled' => true,
'display' => array(
@@ -29,12 +63,8 @@
)
)
);
+
$config = $campaign->getParsedConfig();
-
- $this->assertEquals(
- 'http://es.wikipedia.org/wiki/My Monuments',
- $config['display']['homeButton']['target']
- );
+ return isset( $config['display']['homeButton']['target'] ) ?
$config['display']['homeButton']['target'] : false;
}
-
}
--
To view, visit https://gerrit.wikimedia.org/r/236026
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I1e422f135aad29d569b81a867da9a393c974f31e
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/UploadWizard
Gerrit-Branch: master
Gerrit-Owner: Kai Nissen (WMDE) <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits