Adrian Lang has uploaded a new change for review.
https://gerrit.wikimedia.org/r/180450
Change subject: Extract UserLanguageLookup interface
......................................................................
Extract UserLanguageLookup interface
Change-Id: Ideb951dac2719b57f10342a676e18c1f3027193d
---
A lib/includes/UserLanguageLookup.php
M repo/Wikibase.hooks.php
R repo/includes/BabelUserLanguageLookup.php
M repo/includes/View/EntityViewPlaceholderExpander.php
R repo/tests/phpunit/includes/BabelUserLanguageLookupDouble.php
R repo/tests/phpunit/includes/BabelUserLanguageLookupTest.php
M repo/tests/phpunit/includes/View/EntityViewPlaceholderExpanderTest.php
7 files changed, 51 insertions(+), 12 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/50/180450/1
diff --git a/lib/includes/UserLanguageLookup.php
b/lib/includes/UserLanguageLookup.php
new file mode 100644
index 0000000..25ccdc8
--- /dev/null
+++ b/lib/includes/UserLanguageLookup.php
@@ -0,0 +1,38 @@
+<?php
+
+namespace Wikibase\Lib;
+
+use User;
+
+/**
+ * Service for looking up the languages understood by a user.
+ *
+ * @since 0.5
+ *
+ * @licence GNU GPL v2+
+ * @author Daniel Kinzler
+ * @author Thiemo Mättig
+ * @author Marius Hoch
+ */
+interface UserLanguageLookup {
+
+ /**
+ * Returns a list of languages the user specified in addition to the
non-optional interface
+ * language.
+ *
+ * @param User $user The current user.
+ *
+ * @return string[] Which language codes the user specified.
+ */
+ public function getUserSpecifiedLanguages( User $user );
+
+ /**
+ * Collects all languages from all user settings we can reach at this
point.
+ *
+ * @param User $user The current user.
+ *
+ * @return string[] List of all the user's language codes.
+ */
+ public function getAllUserLanguages( User $user );
+
+}
diff --git a/repo/Wikibase.hooks.php b/repo/Wikibase.hooks.php
index 7681057..36f237b 100644
--- a/repo/Wikibase.hooks.php
+++ b/repo/Wikibase.hooks.php
@@ -29,6 +29,7 @@
use Wikibase\DataModel\Entity\EntityId;
use Wikibase\DataModel\Entity\EntityIdParsingException;
use Wikibase\Hook\OutputPageJsConfigHookHandler;
+use Wikibase\Repo\BabelUserLanguageLookup;
use Wikibase\Repo\Content\EntityHandler;
use Wikibase\Repo\View\EntityViewPlaceholderExpander;
use Wikibase\Repo\View\TextInjector;
@@ -989,7 +990,7 @@
if ( !empty( $placeholders ) ) {
$injector = new TextInjector( $placeholders );
- $userLanguageLookup = new UserLanguageLookup();
+ $userLanguageLookup = new BabelUserLanguageLookup();
$expander = new EntityViewPlaceholderExpander(
$out->getTitle(),
$out->getUser(),
diff --git a/repo/includes/UserLanguageLookup.php
b/repo/includes/BabelUserLanguageLookup.php
similarity index 95%
rename from repo/includes/UserLanguageLookup.php
rename to repo/includes/BabelUserLanguageLookup.php
index f7c6d31..e505fbf 100644
--- a/repo/includes/UserLanguageLookup.php
+++ b/repo/includes/BabelUserLanguageLookup.php
@@ -1,8 +1,10 @@
<?php
-namespace Wikibase;
+namespace Wikibase\Repo;
use User;
+use Wikibase\Utils;
+use Wikibase\Lib\UserLanguageLookup;
/**
* Service for looking up the languages understood by a user.
@@ -16,7 +18,7 @@
* @author Thiemo Mättig
* @author Marius Hoch
*/
-class UserLanguageLookup {
+class BabelUserLanguageLookup implements UserLanguageLookup {
/**
* Local caching since calling the Babel extension can be expensive.
diff --git a/repo/includes/View/EntityViewPlaceholderExpander.php
b/repo/includes/View/EntityViewPlaceholderExpander.php
index 38b92a7..1710570 100644
--- a/repo/includes/View/EntityViewPlaceholderExpander.php
+++ b/repo/includes/View/EntityViewPlaceholderExpander.php
@@ -12,7 +12,7 @@
use Wikibase\DataModel\Entity\EntityIdParser;
use Wikibase\Lib\Store\EntityRevisionLookup;
use Wikibase\Lib\Store\StorageException;
-use Wikibase\UserLanguageLookup;
+use Wikibase\Lib\UserLanguageLookup;
/**
* Utility for expanding the placeholders left in the HTML by EntityView.
diff --git a/repo/tests/phpunit/includes/UserLanguageLookupDouble.php
b/repo/tests/phpunit/includes/BabelUserLanguageLookupDouble.php
similarity index 78%
rename from repo/tests/phpunit/includes/UserLanguageLookupDouble.php
rename to repo/tests/phpunit/includes/BabelUserLanguageLookupDouble.php
index 9b3a0e5..4e68a08 100644
--- a/repo/tests/phpunit/includes/UserLanguageLookupDouble.php
+++ b/repo/tests/phpunit/includes/BabelUserLanguageLookupDouble.php
@@ -3,7 +3,7 @@
namespace Wikibase\Test;
use User;
-use Wikibase\UserLanguageLookup;
+use Wikibase\Repo\BabelUserLanguageLookup;
/**
* Double for the PHPUnit test that overrides the only method that depends on
the Babel extension
@@ -12,7 +12,7 @@
* @licence GNU GPL v2+
* @author Thiemo Mättig
*/
-class UserLanguageLookupDouble extends UserLanguageLookup {
+class BabelUserLanguageLookupDouble extends BabelUserLanguageLookup {
protected function getBabelLanguages( User $user ) {
// Not a real option, just to manipulate the double class
diff --git a/repo/tests/phpunit/includes/UserLanguageLookupTest.php
b/repo/tests/phpunit/includes/BabelUserLanguageLookupTest.php
similarity index 92%
rename from repo/tests/phpunit/includes/UserLanguageLookupTest.php
rename to repo/tests/phpunit/includes/BabelUserLanguageLookupTest.php
index 9a0ee5b..8b0ef65 100644
--- a/repo/tests/phpunit/includes/UserLanguageLookupTest.php
+++ b/repo/tests/phpunit/includes/BabelUserLanguageLookupTest.php
@@ -5,7 +5,7 @@
use User;
/**
- * @covers Wikibase\UserLanguageLookup
+ * @covers Wikibase\Repo\BabelUserLanguageLookup
*
* @group Wikibase
* @group WikibaseRepo
@@ -14,7 +14,7 @@
* @licence GNU GPL v2+
* @author Thiemo Mättig
*/
-class UserLanguageLookupTest extends \PHPUnit_Framework_TestCase {
+class BabelUserLanguageLookupTest extends \PHPUnit_Framework_TestCase {
/**
* @param string $subject
@@ -55,7 +55,7 @@
$user->setOption( 'language', $usersLanguage );
// Not a real option, just to manipulate the double class
$user->setOption( 'babelLanguages', $babelLanguages );
- $userLanguageLookup = new UserLanguageLookupDouble( $user );
+ $userLanguageLookup = new BabelUserLanguageLookupDouble( $user
);
$this->assertEquals( $allExpected, array_values(
$userLanguageLookup->getAllUserLanguages( $user ) ),
$message . '1' );
diff --git
a/repo/tests/phpunit/includes/View/EntityViewPlaceholderExpanderTest.php
b/repo/tests/phpunit/includes/View/EntityViewPlaceholderExpanderTest.php
index 3f84662..ba3c56b 100644
--- a/repo/tests/phpunit/includes/View/EntityViewPlaceholderExpanderTest.php
+++ b/repo/tests/phpunit/includes/View/EntityViewPlaceholderExpanderTest.php
@@ -43,9 +43,7 @@
->method( 'parse' )
->will( $this->returnValue( $itemId ) );
- $userLanguages = $this->getMockBuilder(
'Wikibase\UserLanguageLookup' )
- ->disableOriginalConstructor()
- ->getMock();
+ $userLanguages = $this->getMock(
'Wikibase\Lib\UserLanguageLookup' );
$userLanguages->expects( $this->any() )
->method( 'getAllUserLanguages' )
--
To view, visit https://gerrit.wikimedia.org/r/180450
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ideb951dac2719b57f10342a676e18c1f3027193d
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