jenkins-bot has submitted this change and it was merged.
Change subject: Fix wgMFShowRedLinks
......................................................................
Fix wgMFShowRedLinks
Correct the rules like they was in first ccommit
I8760ee24e4b28643518e446c78a68c6fa451a57c and what the config variable
description in MobileFrontend.php says.
Change-Id: I19923b731b53468f81804e4230a05f509857884b
---
M MobileFrontend.php
M includes/MobileFrontend.hooks.php
M includes/skins/SkinMinerva.php
A tests/phpunit/skins/SkinMinervaTest.php
4 files changed, 89 insertions(+), 4 deletions(-)
Approvals:
Jdlrobson: Looks good to me, approved
jenkins-bot: Verified
diff --git a/MobileFrontend.php b/MobileFrontend.php
index 6ec9458..5e2c74f 100644
--- a/MobileFrontend.php
+++ b/MobileFrontend.php
@@ -515,14 +515,15 @@
$wgMFPageActions = array( 'edit', 'talk', 'upload', 'watch' );
/**
- * Specify whether to show redlinks (page doesn't exist) for users using
stable mode.
+ * Specify whether to show redlinks (page doesn't exist) for logged in users
using stable mode.
* This hasn't any effect to beta and alpha mode!
* This variable is temporary only.
*/
$wgMFShowRedLinks = false;
/**
- * Specify whether show redlinks (page doesn't exist) for anonymous users.
+ * Specify whether show redlinks (page doesn't exist) for anonymous users
using stable mode.
+ * This hasn't any effect to beta and alpha mode!
*/
$wgMFShowRedLinksAnon = false;
diff --git a/includes/MobileFrontend.hooks.php
b/includes/MobileFrontend.hooks.php
index 3f0ab58..62d518b 100644
--- a/includes/MobileFrontend.hooks.php
+++ b/includes/MobileFrontend.hooks.php
@@ -782,6 +782,7 @@
'DeviceDetectionTest.php',
'MobileContextTest.php',
'MobileFormatterTest.php',
+ 'skins/SkinMinervaTest.php',
'specials/MobileSpecialPageTest.php',
'specials/SpecialMobileDiffTest.php',
)
diff --git a/includes/skins/SkinMinerva.php b/includes/skins/SkinMinerva.php
index b7972d5..a852f60 100644
--- a/includes/skins/SkinMinerva.php
+++ b/includes/skins/SkinMinerva.php
@@ -837,8 +837,20 @@
$vars['wgMFIsLoggedInUserBlocked'] = $user->isBlocked()
&& $user->isBlockedFrom( $title );
}
- $vars['wgMFShowRedLinks'] = (
$this->mobileContext->isBetaGroupMember() && $wgMFShowRedLinks )
- || ( $wgMFShowRedLinksAnon && $user->isAnon() );
+ // init with false
+ $vars['wgMFShowRedLinks'] = false;
+
+ // in beta redlinks are visible for logged in users (no matter
what config vars say)
+ if ( $this->mobileContext->isBetaGroupMember() ) {
+ if ( $user->isLoggedIn() ) {
+ $vars['wgMFShowRedLinks'] = true;
+ }
+ } elseif (
+ ( $wgMFShowRedLinks && $user->isLoggedIn() ) // ...for
logged in users
+ || ( $wgMFShowRedLinksAnon && $user->isAnon() ) //
...for anonymous users
+ ) {
+ $vars['wgMFShowRedLinks'] = true;
+ }
// Get variables that are only needed in mobile mode
if ( $this->isMobileMode ) {
diff --git a/tests/phpunit/skins/SkinMinervaTest.php
b/tests/phpunit/skins/SkinMinervaTest.php
new file mode 100644
index 0000000..0e443e6
--- /dev/null
+++ b/tests/phpunit/skins/SkinMinervaTest.php
@@ -0,0 +1,71 @@
+<?php
+
+/**
+ * @group MobileFrontend
+ * @group Database
+ */
+class SkinMinervaTest extends MediaWikiTestCase {
+ /**
+ * @dataProvider providerShowRedLinks
+ */
+ public function testGetSkinConfigVariables( $showRedLinks,
$showRedLinksAnon,
+ $mode, $username, $expected
+ ) {
+ // set config variables, which we test here
+ $values = array(
+ 'wgMFShowRedLinks' => $showRedLinks,
+ 'wgMFShowRedLinksAnon' => $showRedLinksAnon,
+ 'wgMFEnableBeta' => true
+ );
+ $this->setMwGlobals( $values );
+
+ // create our specific user object
+ $user = User::newFromName( $username );
+ $user->load();
+
+ // create a new RequestContext for this test case and set User
and title
+ $context = new RequestContext;
+ $context->setUser( $user );
+ $context->setTitle( Title::newFromText( 'Main_page' ) );
+
+ // create SkinMinerva to test
+ $skin = new SkinMinerva;
+ $skin->setContext( $context );
+
+ // set the fake mobile mode
+ MobileContext::singleton()->setMobileMode( $mode );
+
+ // test now
+ $vars = $skin->getSkinConfigVariables();
+ $this->assertEquals( $expected, $vars['wgMFShowRedLinks'] );
+ }
+
+ /**
+ * Provides test data for testgetSkinConfigVariables()
+ */
+ public function providerShowRedLinks() {
+ // UTSysop is logged in, NotLoggedIn isn't
+ // $wgMFShowRedLinks, $wgMFShowRedLinksAnon, mobile mode, user,
expected
+ return array(
+ // test in stable mode
+ array( false, false, 'stable', 'UTSysop', false ),
+ array( true, false, 'stable', 'UTSysop', true ),
+ array( false, true, 'stable', 'UTSysop', false ),
+ array( true, true, 'stable', 'UTSysop', true ),
+ array( false, false, 'stable', 'NotLoggedIn', false ),
+ array( true, false, 'stable', 'NotLoggedIn', false ),
+ array( false, true, 'stable', 'NotLoggedIn', true ),
+ array( true, true, 'stable', 'NotLoggedIn', true ),
+
+ // test in beta mode
+ array( false, false, 'beta', 'NotLoggedIn', false ),
+ array( true, false, 'beta', 'NotLoggedIn', false ),
+ array( false, true, 'beta', 'NotLoggedIn', false ),
+ array( true, true, 'beta', 'NotLoggedIn', false ),
+ array( false, false, 'beta', 'UTSysop', true ),
+ array( true, false, 'beta', 'UTSysop', true ),
+ array( false, true, 'beta', 'UTSysop', true ),
+ array( true, true, 'beta', 'UTSysop', true ),
+ );
+ }
+}
--
To view, visit https://gerrit.wikimedia.org/r/154873
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I19923b731b53468f81804e4230a05f509857884b
Gerrit-PatchSet: 13
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Florianschmidtwelzow <[email protected]>
Gerrit-Reviewer: Awjrichards <[email protected]>
Gerrit-Reviewer: Florianschmidtwelzow <[email protected]>
Gerrit-Reviewer: JGonera <[email protected]>
Gerrit-Reviewer: Jdlrobson <[email protected]>
Gerrit-Reviewer: MaxSem <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits