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

Reply via email to