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

Reply via email to