Aude has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/345783 )

Change subject: Update Wikidata - fixes for special pages
......................................................................

Update Wikidata - fixes for special pages

Change-Id: I4c410d9c0a94fafe3bbb1302abfc8e462536bbef
---
M composer.lock
M extensions/Wikibase/repo/i18n/en.json
M extensions/Wikibase/repo/i18n/qqq.json
M extensions/Wikibase/repo/includes/Specials/SpecialEntitiesWithoutPage.php
M extensions/Wikibase/repo/includes/Specials/SpecialModifyTerm.php
M extensions/Wikibase/repo/includes/Specials/SpecialSetSiteLink.php
M 
extensions/Wikibase/repo/tests/phpunit/includes/Specials/SpecialEntitiesWithoutPageTest.php
M vendor/composer/installed.json
8 files changed, 68 insertions(+), 43 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata 
refs/changes/83/345783/1

diff --git a/composer.lock b/composer.lock
index c6b5970..957cdfc 100644
--- a/composer.lock
+++ b/composer.lock
@@ -987,7 +987,7 @@
             "support": {
                 "issues": 
"https://phabricator.wikimedia.org/project/profile/1202/";
             },
-            "time": "2017-03-17 08:42:47"
+            "time": "2017-03-17 08:11:43"
         },
         {
             "name": "wikibase/data-model",
@@ -1436,12 +1436,12 @@
             "source": {
                 "type": "git",
                 "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-                "reference": "0bca144964d2214aba02786e7eb4d384be926988"
+                "reference": "b87735ae4a8f06246497c76883ff0c147afd138a"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/0bca144964d2214aba02786e7eb4d384be926988";,
-                "reference": "0bca144964d2214aba02786e7eb4d384be926988",
+                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/b87735ae4a8f06246497c76883ff0c147afd138a";,
+                "reference": "b87735ae4a8f06246497c76883ff0c147afd138a",
                 "shasum": ""
             },
             "require": {
@@ -1515,7 +1515,7 @@
                 "wikibaserepo",
                 "wikidata"
             ],
-            "time": "2017-03-26 22:33:16"
+            "time": "2017-03-30 23:11:18"
         },
         {
             "name": "wikibase/wikimedia-badges",
diff --git a/extensions/Wikibase/repo/i18n/en.json 
b/extensions/Wikibase/repo/i18n/en.json
index 4cb4e3a..eb628bc 100644
--- a/extensions/Wikibase/repo/i18n/en.json
+++ b/extensions/Wikibase/repo/i18n/en.json
@@ -288,7 +288,6 @@
        "wikibase-entitieswithoutlabel-legend": "Get list of entities without 
label",
        "wikibase-entitieswithoutlabel-label-language": "Language code:",
        "wikibase-entitieswithoutlabel-label-type": "Type:",
-       "wikibase-entitieswithoutlabel-label-alltypes": "all",
        "wikibase-entitieswithoutlabel-submit": "Find",
        "wikibase-entitieswithoutlabel-invalid-language": "\"$1\" is not a 
valid language code.",
        "wikibase-entitieswithoutlabel-invalid-type": "\"$1\" is not a valid 
entity type.",
diff --git a/extensions/Wikibase/repo/i18n/qqq.json 
b/extensions/Wikibase/repo/i18n/qqq.json
index 1e4d5f2..6605b39 100644
--- a/extensions/Wikibase/repo/i18n/qqq.json
+++ b/extensions/Wikibase/repo/i18n/qqq.json
@@ -320,7 +320,6 @@
        "wikibase-entitieswithoutlabel-legend": "Legend of the form that allow 
to change the language.",
        "wikibase-entitieswithoutlabel-label-language": "Label for the input 
field to change the language code.\n{{Identical|Language code}}",
        "wikibase-entitieswithoutlabel-label-type": "Label of the entity type 
selector that allows to restrict the request to one type.\n{{Identical|Type}}",
-       "wikibase-entitieswithoutlabel-label-alltypes": "Label of the entity 
type selector entry that allows to output missing labels for all entity 
types.\n{{Identical|All}}",
        "wikibase-entitieswithoutlabel-submit": "Label for the button that 
activate the action.\n{{Identical|Find}}",
        "wikibase-entitieswithoutlabel-invalid-language": "Error message shown 
when the language code passed in parameter is invalid.\n\nParameters:\n* $1 - 
language code\nSee also:\n* 
{{msg-mw|Wikibase-unconnectedpages-invalid-language}}",
        "wikibase-entitieswithoutlabel-invalid-type": "Parameters:\n* $1 - an 
invalid entity type. Valid entity types are: item, property and query.",
diff --git 
a/extensions/Wikibase/repo/includes/Specials/SpecialEntitiesWithoutPage.php 
b/extensions/Wikibase/repo/includes/Specials/SpecialEntitiesWithoutPage.php
index 70c0ab6..b261005 100644
--- a/extensions/Wikibase/repo/includes/Specials/SpecialEntitiesWithoutPage.php
+++ b/extensions/Wikibase/repo/includes/Specials/SpecialEntitiesWithoutPage.php
@@ -100,7 +100,7 @@
                $this->prepareArguments( $subPage );
                $this->setForm();
 
-               if ( $this->language !== '' ) {
+               if ( $this->language !== '' && $this->type !== '' ) {
                        $this->showQuery();
                }
        }
@@ -125,17 +125,20 @@
 
                $this->language = $request->getText( 'language', 
$this->language );
                if ( $this->language !== '' && 
!$this->termsLanguages->hasLanguage( $this->language ) ) {
-                       $this->showErrorHTML( $this->msg( 
'wikibase-entitieswithoutlabel-invalid-language', $this->language )->parse() );
+                       $this->showErrorHTML( $this->msg(
+                               
'wikibase-entitieswithoutlabel-invalid-language',
+                               wfEscapeWikiText( $this->language )
+                       )->parse() );
                        $this->language = '';
                }
 
                $this->type = $request->getText( 'type', $this->type );
-               if ( $this->type === '' ) {
-                       $this->type = null;
-               }
-               if ( $this->type !== null && !in_array( $this->type, 
$this->entityTypes ) ) {
-                       $this->showErrorHTML( $this->msg( 
'wikibase-entitieswithoutlabel-invalid-type', $this->type )->parse() );
-                       $this->type = null;
+               if ( $this->type !== '' && !in_array( $this->type, 
$this->entityTypes ) ) {
+                       $this->showErrorHTML( $this->msg(
+                               'wikibase-entitieswithoutlabel-invalid-type',
+                               wfEscapeWikiText( $this->type )
+                       )->parse() );
+                       $this->type = '';
                }
        }
 
@@ -157,13 +160,17 @@
         * Build the HTML form
         */
        private function setForm() {
-               $options = array(
-                       $this->msg( 
'wikibase-entitieswithoutlabel-label-alltypes' )->text() => ''
-               );
+               $options = array();
 
                foreach ( $this->entityTypes as $type ) {
-                       // Messages: wikibase-entity-item, 
wikibase-entity-property, wikibase-entity-query
+                       // Messages: wikibase-entity-item, 
wikibase-entity-property
                        $options[$this->msg( 'wikibase-entity-' . $type 
)->text()] = $type;
+               }
+
+               if ( $this->type !== null && $this->type !== '' ) {
+                       $defaultType = $this->type;
+               } else {
+                       $defaultType = reset( $this->entityTypes );
                }
 
                $formDescriptor = array(
@@ -179,7 +186,7 @@
                        'type' => array(
                                'name' => 'type',
                                'options' => $options,
-                               'default' => $this->type,
+                               'default' => $defaultType,
                                'type' => 'select',
                                'id' => 'wb-entitieswithoutpage-type',
                                'label-message' => 
'wikibase-entitieswithoutlabel-label-type'
@@ -213,7 +220,7 @@
                return $this->entitiesWithoutTerm->getEntitiesWithoutTerm(
                        $this->termType,
                        $this->language,
-                       $this->type === null ? null : [ $this->type ],
+                       [ $this->type ],
                        $limit,
                        $offset
                );
diff --git a/extensions/Wikibase/repo/includes/Specials/SpecialModifyTerm.php 
b/extensions/Wikibase/repo/includes/Specials/SpecialModifyTerm.php
index 9c25aa4..3ee17c7 100644
--- a/extensions/Wikibase/repo/includes/Specials/SpecialModifyTerm.php
+++ b/extensions/Wikibase/repo/includes/Specials/SpecialModifyTerm.php
@@ -98,7 +98,7 @@
                if ( $this->languageCode !== null && 
!$this->termsLanguages->hasLanguage( $this->languageCode ) ) {
                        $errorMessage = $this->msg(
                                'wikibase-wikibaserepopage-invalid-langcode',
-                               $this->languageCode
+                               wfEscapeWikiText( $this->languageCode )
                        )->parse();
 
                        $this->showErrorHTML( $errorMessage );
diff --git a/extensions/Wikibase/repo/includes/Specials/SpecialSetSiteLink.php 
b/extensions/Wikibase/repo/includes/Specials/SpecialSetSiteLink.php
index 29bb92e..637cf78 100644
--- a/extensions/Wikibase/repo/includes/Specials/SpecialSetSiteLink.php
+++ b/extensions/Wikibase/repo/includes/Specials/SpecialSetSiteLink.php
@@ -135,7 +135,10 @@
                }
 
                if ( $this->site !== null && !$this->isValidSiteId( $this->site 
) ) {
-                       $this->showErrorHTML( $this->msg( 
'wikibase-setsitelink-invalid-site', $this->site )->parse() );
+                       $this->showErrorHTML( $this->msg(
+                               'wikibase-setsitelink-invalid-site',
+                               wfEscapeWikiText( $this->site )
+                       )->parse() );
                }
 
                $this->page = $request->getVal( 'page' );
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/Specials/SpecialEntitiesWithoutPageTest.php
 
b/extensions/Wikibase/repo/tests/phpunit/includes/Specials/SpecialEntitiesWithoutPageTest.php
index 930e3c3..1de337a 100644
--- 
a/extensions/Wikibase/repo/tests/phpunit/includes/Specials/SpecialEntitiesWithoutPageTest.php
+++ 
b/extensions/Wikibase/repo/tests/phpunit/includes/Specials/SpecialEntitiesWithoutPageTest.php
@@ -54,7 +54,7 @@
                $this->assertContains( 
'(wikibase-entitieswithoutlabel-label-type)', $html );
                $this->assertContains( 'name=\'type\'', $html );
                $this->assertContains( 'id=\'wb-entitieswithoutpage-type\'', 
$html );
-               $this->assertContains( 
'(wikibase-entitieswithoutlabel-label-alltypes)', $html );
+               $this->assertContains( '(wikibase-entity-item)', $html );
 
                $this->assertContains( 
'(wikibase-entitieswithoutlabel-submit)', $html );
                $this->assertContains( 
'id=\'wikibase-entitieswithoutpage-submit\'', $html );
@@ -62,52 +62,69 @@
 
        public function testRequestParameters() {
                $request = new FauxRequest( array(
-                       'language' => '<LANGUAGE>',
-                       'type' => '<TYPE>',
+                       'language' => "''LANGUAGE''",
+                       'type' => "''TYPE''",
                ) );
                list( $html, ) = $this->executeSpecialPage( '', $request );
 
-               $this->assertContains( '&lt;LANGUAGE&gt;', $html );
-               $this->assertContains( '&lt;TYPE&gt;', $html );
-               $this->assertNotContains( '<LANGUAGE>', $html );
-               $this->assertNotContains( '<TYPE>', $html );
+               $this->assertContains( '&#39;&#39;LANGUAGE&#39;&#39;', $html );
+               $this->assertContains( '&#39;&#39;TYPE&#39;&#39;', $html );
+               $this->assertNotContains( "''LANGUAGE''", $html );
+               $this->assertNotContains( "''TYPE''", $html );
                $this->assertNotContains( '&amp;', $html, 'no double escaping' 
);
        }
 
        public function testSubPageParts() {
-               list( $html, ) = $this->executeSpecialPage( '<LANGUAGE>/<TYPE>' 
);
+               list( $html, ) = $this->executeSpecialPage( 
"''LANGUAGE''/''TYPE''" );
 
-               $this->assertContains( '&lt;LANGUAGE&gt;', $html );
-               $this->assertContains( '&lt;TYPE&gt;', $html );
+               $this->assertContains( '&#39;&#39;LANGUAGE&#39;&#39;', $html );
+               $this->assertContains( '&#39;&#39;TYPE&#39;&#39;', $html );
        }
 
-       public function testNoLanguage() {
+       public function testNoParams() {
                list( $html, ) = $this->executeSpecialPage( '', null, 'qqx' );
 
                $this->assertNotContains( 'class="mw-spcontent"', $html );
+               $this->assertNotContains( '(htmlform-invalid-input)', $html );
+       }
+
+       public function testNoLanguage() {
+               $request = new FauxRequest( [ 'type' => 'item' ] );
+               list( $html, ) = $this->executeSpecialPage( '', $request, 'qqx' 
);
+
+               $this->assertNotContains( 'class="mw-spcontent"', $html );
+               $this->assertNotContains( '(htmlform-invalid-input)', $html );
+       }
+
+       public function testNoType() {
+               list( $html, ) = $this->executeSpecialPage( 'acceptedlanguage', 
null, 'qqx' );
+
+               $this->assertNotContains( 'class="mw-spcontent"', $html );
+               $this->assertNotContains( '(htmlform-invalid-input)', $html );
        }
 
        public function testInvalidLanguage() {
-               list( $html, ) = $this->executeSpecialPage( '<INVALID>', null, 
'qqx' );
+               list( $html, ) = $this->executeSpecialPage( "''INVALID''", 
null, 'qqx' );
 
                $this->assertContains(
-                       '(wikibase-entitieswithoutlabel-invalid-language: 
&lt;INVALID&gt;)',
+                       '(wikibase-entitieswithoutlabel-invalid-language: 
&#39;&#39;INVALID&#39;&#39;)',
                        $html
                );
        }
 
        public function testValidLanguage() {
-               list( $html, ) = $this->executeSpecialPage( 'acceptedlanguage', 
null, 'qqx' );
+               $request = new FauxRequest( [ 'type' => 'item' ] );
+               list( $html, ) = $this->executeSpecialPage( 'acceptedlanguage', 
$request, 'qqx' );
 
                $this->assertContains( 'value=\'acceptedlanguage\'', $html );
                $this->assertContains( 'class="mw-spcontent"', $html );
        }
 
        public function testInvalidType() {
-               list( $html, ) = $this->executeSpecialPage( 
'acceptedlanguage/<INVALID>', null, 'qqx' );
+               list( $html, ) = $this->executeSpecialPage( 
"acceptedlanguage/''INVALID''", null, 'qqx' );
 
                $this->assertContains(
-                       '(wikibase-entitieswithoutlabel-invalid-type: 
&lt;INVALID&gt;)',
+                       '(wikibase-entitieswithoutlabel-invalid-type: 
&#39;&#39;INVALID&#39;&#39;)',
                        $html
                );
        }
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 8bd93e0..d514396 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1628,12 +1628,12 @@
         "source": {
             "type": "git",
             "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-            "reference": "0bca144964d2214aba02786e7eb4d384be926988"
+            "reference": "b87735ae4a8f06246497c76883ff0c147afd138a"
         },
         "dist": {
             "type": "zip",
-            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/0bca144964d2214aba02786e7eb4d384be926988";,
-            "reference": "0bca144964d2214aba02786e7eb4d384be926988",
+            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/b87735ae4a8f06246497c76883ff0c147afd138a";,
+            "reference": "b87735ae4a8f06246497c76883ff0c147afd138a",
             "shasum": ""
         },
         "require": {
@@ -1665,7 +1665,7 @@
             "jakub-onderka/php-parallel-lint": ">=0.3 <0.10",
             "mediawiki/mediawiki-codesniffer": ">=0.4 <0.8"
         },
-        "time": "2017-03-26 22:33:16",
+        "time": "2017-03-30 23:11:18",
         "type": "mediawiki-extension",
         "installation-source": "dist",
         "autoload": {

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4c410d9c0a94fafe3bbb1302abfc8e462536bbef
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikidata
Gerrit-Branch: wmf/1.29.0-wmf.17
Gerrit-Owner: Aude <aude.w...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to