Use "target" instead "title" as the param name in SpecialPageData
authorAmir Sarabadani <ladsgroup@gmail.com>
Mon, 12 Jun 2017 13:02:02 +0000 (17:32 +0430)
committerDaniel Kinzler <daniel.kinzler@wikimedia.de>
Mon, 12 Jun 2017 13:15:49 +0000 (13:15 +0000)
Using "title" confuses mediawiki and causes redirect loops

Bug: T163923
Change-Id: I29e0e6a61703cc04397205a3f7f38df5906622e1

includes/linkeddata/PageDataRequestHandler.php
tests/phpunit/includes/linkeddata/PageDataRequestHandlerTest.php
tests/phpunit/includes/specials/SpecialPageDataTest.php

index 3da20bf..8fc32b9 100644 (file)
@@ -28,7 +28,7 @@ class PageDataRequestHandler {
         */
        public function canHandleRequest( $title, WebRequest $request ) {
                if ( $title === '' || $title === null ) {
-                       if ( $request->getText( 'title', '' ) === '' ) {
+                       if ( $request->getText( 'target', '' ) === '' ) {
                                return false;
                        }
                }
@@ -57,7 +57,7 @@ class PageDataRequestHandler {
 
                $revision = 0;
 
-               $title = $request->getText( 'title', $title );
+               $title = $request->getText( 'target', $title );
                $revision = $request->getInt( 'oldid', $revision );
                $revision = $request->getInt( 'revision', $revision );
 
index eb67fae..56790e2 100644 (file)
@@ -82,16 +82,16 @@ class PageDataRequestHandlerTest extends \MediaWikiTestCase {
 
                $cases[] = [ '', [], [], '!!', 400 ];
 
-               $cases[] = [ '', [ 'title' => 'Helsinki' ], [], '!!', 303,  [ 'Location' => '!.+!' ] ];
+               $cases[] = [ '', [ 'target' => 'Helsinki' ], [], '!!', 303,  [ 'Location' => '!.+!' ] ];
 
                $subpageCases = [];
                foreach ( $cases as $c ) {
                        $case = $c;
                        $case[0] = '';
 
-                       if ( isset( $case[1]['title'] ) ) {
-                               $case[0] .= $case[1]['title'];
-                               unset( $case[1]['title'] );
+                       if ( isset( $case[1]['target'] ) ) {
+                               $case[0] .= $case[1]['target'];
+                               unset( $case[1]['target'] );
                        }
 
                        $subpageCases[] = $case;
@@ -101,7 +101,7 @@ class PageDataRequestHandlerTest extends \MediaWikiTestCase {
 
                $cases[] = [
                        '',
-                       [ 'title' => 'Helsinki' ],
+                       [ 'target' => 'Helsinki' ],
                        [ 'Accept' => 'text/HTML' ],
                        '!!',
                        303,
@@ -111,7 +111,7 @@ class PageDataRequestHandlerTest extends \MediaWikiTestCase {
                $cases[] = [
                        '',
                        [
-                               'title' => 'Helsinki',
+                               'target' => 'Helsinki',
                                'revision' => '4242',
                        ],
                        [ 'Accept' => 'text/HTML' ],
index 7569d63..2566875 100644 (file)
@@ -30,7 +30,7 @@ class SpecialPageDataTest extends SpecialPageTestBase {
 
                $cases['Only title specified'] = [
                        '',
-                       [ 'title' => 'Helsinki' ],
+                       [ 'target' => 'Helsinki' ],
                        [],
                        '!!',
                        303,
@@ -54,7 +54,7 @@ class SpecialPageDataTest extends SpecialPageTestBase {
 
                $cases['Accept only HTML'] = [
                        '',
-                       [ 'title' => 'Helsinki' ],
+                       [ 'target' => 'Helsinki' ],
                        [ 'Accept' => 'text/HTML' ],
                        '!!',
                        303,
@@ -64,7 +64,7 @@ class SpecialPageDataTest extends SpecialPageTestBase {
                $cases['Accept only HTML with revid'] = [
                        '',
                        [
-                               'title' => 'Helsinki',
+                               'target' => 'Helsinki',
                                'revision' => '4242',
                        ],
                        [ 'Accept' => 'text/HTML' ],