jenkins-bot has submitted this change and it was merged.

Change subject: Don't get extra languages for anon users
......................................................................


Don't get extra languages for anon users

Bug: 49079
Change-Id: I75b95c7a2aaa80273d58ac6ed3a8709d378b5190
---
M repo/includes/EntityViewPlaceholderExpander.php
M repo/tests/phpunit/includes/EntityViewPlaceholderExpanderTest.php
2 files changed, 32 insertions(+), 10 deletions(-)

Approvals:
  Daniel Kinzler: Verified; Looks good to me, approved
  jenkins-bot: Verified



diff --git a/repo/includes/EntityViewPlaceholderExpander.php 
b/repo/includes/EntityViewPlaceholderExpander.php
index 3041e2f..bb78a71 100644
--- a/repo/includes/EntityViewPlaceholderExpander.php
+++ b/repo/includes/EntityViewPlaceholderExpander.php
@@ -99,9 +99,14 @@
         */
        public function getExtraUserLanguages() {
                if ( $this->extraLanguages === null ) {
-                       // ignore current interface language
-                       $skip = array( $this->uiLanguage->getCode() );
-                       $this->extraLanguages = 
$this->userLanguageLookup->getUserLanguages( $this->user, $skip );
+                       if ( $this->user->isAnon() ) {
+                               // no extra languages for anon user
+                               $this->extraLanguages = array();
+                       } else {
+                               // ignore current interface language
+                               $skip = array( $this->uiLanguage->getCode() );
+                               $this->extraLanguages = 
$this->userLanguageLookup->getUserLanguages( $this->user, $skip );
+                       }
                }
 
                return $this->extraLanguages;
diff --git a/repo/tests/phpunit/includes/EntityViewPlaceholderExpanderTest.php 
b/repo/tests/phpunit/includes/EntityViewPlaceholderExpanderTest.php
index 507b6ed..df81fd9 100644
--- a/repo/tests/phpunit/includes/EntityViewPlaceholderExpanderTest.php
+++ b/repo/tests/phpunit/includes/EntityViewPlaceholderExpanderTest.php
@@ -23,11 +23,8 @@
  */
 class EntityViewPlaceholderExpanderTest extends \MediaWikiTestCase {
 
-       protected function newExpander() {
+       protected function newExpander( $user ) {
                $title = new Title( 
'EntityViewPlaceholderExpanderTest-DummyTitleForLocalUrls' );
-
-               $user = new User();
-               $user->setName( 'EntityViewPlaceholderExpanderTest-DummyUser' );
 
                $language = Language::factory( 'en' );
 
@@ -70,8 +67,20 @@
                );
        }
 
+       private function newUser( $isAnon ) {
+               $user = $this->getMockBuilder( '\User' )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+               $user->expects( $this->any() )
+                       ->method( 'isAnon' )
+                       ->will( $this->returnValue( $isAnon ) );
+               $user->setName( 'EntityViewPlaceholderExpanderTest-DummyUser' );
+
+               return $user;
+       }
+
        public function testGetHtmlForPlaceholder() {
-               $expander = $this->newExpander();
+               $expander = $this->newExpander( $this->newUser( false ) );
 
                $html = $expander->getHtmlForPlaceholder( 'termbox-toc' );
                $this->assertInternalType( 'string', $html );
@@ -81,7 +90,7 @@
        }
 
        public function testRenderTermBoxTocEntry() {
-               $expander = $this->newExpander();
+               $expander = $this->newExpander( $this->newUser( false ) );
 
                // According to the mock objects, this should generate a term 
box for
                // 'de' and 'ru', since 'en' is already covered by the 
interface language.
@@ -91,7 +100,7 @@
        }
 
        public function renderTermBox() {
-               $expander = $this->newExpander();
+               $expander = $this->newExpander( $this->newUser( false ) );
 
                // According to the mock objects, this should generate a term 
box for
                // 'de' and 'ru', since 'en' is already covered by the 
interface language.
@@ -104,4 +113,12 @@
                $this->assertNotRegExp( '/Capitol/', $html );
        }
 
+       public function testGetExtraUserLanguages() {
+               $expander = $this->newExpander( $this->newUser( true ) );
+               $this->assertArrayEquals( array(), 
$expander->getExtraUserLanguages() );
+
+               $expander = $this->newExpander( $this->newUser( false ) );
+               $this->assertArrayEquals( array( 'de', 'en', 'ru' ), 
$expander->getExtraUserLanguages() );
+       }
+
 }
\ No newline at end of file

-- 
To view, visit https://gerrit.wikimedia.org/r/106689
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I75b95c7a2aaa80273d58ac6ed3a8709d378b5190
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Tobias Gritschacher <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: Henning Snater <[email protected]>
Gerrit-Reviewer: Jeroen De Dauw <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to