Adrian Lang has uploaded a new change for review.
https://gerrit.wikimedia.org/r/180449
Change subject: Simplify UserLanguageLookup interface
......................................................................
Simplify UserLanguageLookup interface
Change-Id: I498dfba6001bef3247bc6be538263409ab07fa2c
---
M repo/includes/UserLanguageLookup.php
M repo/includes/View/EntityViewPlaceholderExpander.php
M repo/tests/phpunit/includes/UserLanguageLookupTest.php
M repo/tests/phpunit/includes/View/EntityViewPlaceholderExpanderTest.php
4 files changed, 13 insertions(+), 51 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/49/180449/1
diff --git a/repo/includes/UserLanguageLookup.php
b/repo/includes/UserLanguageLookup.php
index 259e3d2..f7c6d31 100644
--- a/repo/includes/UserLanguageLookup.php
+++ b/repo/includes/UserLanguageLookup.php
@@ -72,19 +72,6 @@
}
/**
- * Returns true if the user does have additional languages specified in
addition to the
- * non-optional interface language, or explicitly specified to not have
additional languages.
- *
- * @param User $user The current user.
- *
- * @return bool If the user specified languages.
- */
- public function hasSpecifiedLanguages( User $user ) {
- $userSpecifiedLanguages = $this->getUserSpecifiedLanguages(
$user );
- return !empty( $userSpecifiedLanguages );
- }
-
- /**
* Collects all languages from all user settings we can reach at this
point, in order of
* preference, duplicates stripped:
* 1. The interface language from the user's settings
@@ -113,18 +100,6 @@
wfProfileOut( __METHOD__ );
return $languages;
- }
-
- /**
- * Returns the languages desired by the user, in order of preference.
- *
- * @param User $user The current user.
- * @param string[] $skip List of language codes to skip.
- *
- * @return string[] List of language codes.
- */
- public function getExtraUserLanguages( User $user, array $skip ) {
- return array_diff( $this->getAllUserLanguages( $user ), $skip );
}
}
diff --git a/repo/includes/View/EntityViewPlaceholderExpander.php
b/repo/includes/View/EntityViewPlaceholderExpander.php
index 3f3f225..38b92a7 100644
--- a/repo/includes/View/EntityViewPlaceholderExpander.php
+++ b/repo/includes/View/EntityViewPlaceholderExpander.php
@@ -106,8 +106,10 @@
} else {
// ignore current interface language
$skip = array( $this->uiLanguage->getCode() );
- $this->extraLanguages =
$this->userLanguageLookup->getExtraUserLanguages(
- $this->user, $skip );
+ $this->extraLanguages = array_diff(
+
$this->userLanguageLookup->getAllUserLanguages( $this->user ),
+ $skip
+ );
}
}
diff --git a/repo/tests/phpunit/includes/UserLanguageLookupTest.php
b/repo/tests/phpunit/includes/UserLanguageLookupTest.php
index a28c827..9a0ee5b 100644
--- a/repo/tests/phpunit/includes/UserLanguageLookupTest.php
+++ b/repo/tests/phpunit/includes/UserLanguageLookupTest.php
@@ -35,25 +35,18 @@
* @param string $babelLanguages
* @param string $userSpecifiedLanguages
* @param string $allExpected
- * @param string $expectedWithoutDe
- * @param string $expectedWithoutEn
*/
public function testGetUserLanguages(
$usersLanguage,
$babelLanguages,
$userSpecifiedLanguages,
- $allExpected,
- $expectedWithoutDe,
- $expectedWithoutEn
+ $allExpected
) {
$message = $usersLanguage . ' with {{#babel:' . $babelLanguages
. '}} in assert #';
$babelLanguages = $this->split( $babelLanguages );
$userSpecifiedLanguages = $this->split(
$userSpecifiedLanguages );
$allExpected = $this->split( $allExpected );
- $expectedWithoutDe = $this->split( $expectedWithoutDe );
- $expectedWithoutEn = $this->split( $expectedWithoutEn );
- $hasSpecified = !empty( $userSpecifiedLanguages );
$user = new User();
// Required to not be anonymous
@@ -66,12 +59,6 @@
$this->assertEquals( $allExpected, array_values(
$userLanguageLookup->getAllUserLanguages( $user ) ),
$message . '1' );
- $this->assertEquals( $expectedWithoutDe, array_values(
- $userLanguageLookup->getExtraUserLanguages( $user,
array( 'de' ) ) ), $message . '2' );
- $this->assertEquals( $expectedWithoutEn, array_values(
- $userLanguageLookup->getExtraUserLanguages( $user,
array( 'en' ) ) ), $message . '3' );
- $this->assertEquals( $hasSpecified,
- $userLanguageLookup->hasSpecifiedLanguages( $user ),
$message . '4' );
$this->assertEquals( $userSpecifiedLanguages,
$userLanguageLookup->getUserSpecifiedLanguages( $user
), $message . '5' );
}
@@ -82,14 +69,12 @@
// 2. List of languages from the users babel box (as
returned by the Babel extension)
// 3. List of usable user specified languages
// 4. Expected collection of all languages
- // 5. Expected extra languages excluding de
- // 6. Expected extra languages excluding en
- array( 'de', '', '', 'de', '',
'de' ),
- array( 'de', 'en', 'en', 'de|en', 'en',
'de' ),
- array( 'de', 'de|en|fr', 'de|en|fr', 'de|en|fr',
'en|fr', 'de|fr' ),
- array( 'en', '', '', 'en', 'en',
'' ),
- array( 'en', 'en', 'en', 'en', 'en',
'' ),
- array( 'en', 'de|en|fr', 'de|en|fr', 'en|de|fr',
'en|fr', 'de|fr' ),
+ array( 'de', '', '', 'de' ),
+ array( 'de', 'en', 'en', 'de|en' ),
+ array( 'de', 'de|en|fr', 'de|en|fr', 'de|en|fr' ),
+ array( 'en', '', '', 'en', ),
+ array( 'en', 'en', 'en', 'en', ),
+ array( 'en', 'de|en|fr', 'de|en|fr', 'en|de|fr' ),
// Codes reported from Babel are getting lower-cased
array( 'en', 'nds-NL', 'nds-nl', 'en|nds-nl',
'en|nds-nl', 'nds-nl' ),
diff --git
a/repo/tests/phpunit/includes/View/EntityViewPlaceholderExpanderTest.php
b/repo/tests/phpunit/includes/View/EntityViewPlaceholderExpanderTest.php
index b085eb0..3f84662 100644
--- a/repo/tests/phpunit/includes/View/EntityViewPlaceholderExpanderTest.php
+++ b/repo/tests/phpunit/includes/View/EntityViewPlaceholderExpanderTest.php
@@ -48,7 +48,7 @@
->getMock();
$userLanguages->expects( $this->any() )
- ->method( 'getExtraUserLanguages' )
+ ->method( 'getAllUserLanguages' )
->will( $this->returnValue( array( 'de', 'en', 'ru' ) )
);
return new EntityViewPlaceholderExpander(
@@ -177,7 +177,7 @@
$this->assertArrayEquals( array(),
$expander->getExtraUserLanguages() );
$expander = $this->newExpander( $this->newUser( false ),
$entityRevisionLookup, $itemId );
- $this->assertArrayEquals( array( 'de', 'en', 'ru' ),
$expander->getExtraUserLanguages() );
+ $this->assertArrayEquals( array( 'de', 'ru' ),
$expander->getExtraUserLanguages() );
}
}
--
To view, visit https://gerrit.wikimedia.org/r/180449
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I498dfba6001bef3247bc6be538263409ab07fa2c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Adrian Lang <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits