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

Change subject: RCLFilters: support target page with a subpage
......................................................................

RCLFilters: support target page with a subpage

Correctly extract the target page when it has a subpage.
Examples (taken from unit tests):
        http://host/wiki/Special:RecentChangesLinked/Moai/Sub1
        http://host/wiki/Special:RecentChangesLinked/Category:Foo/Bar
        http://host/w/index.php?title=Special:RecentChangesLinked/Moai/Sub1

Bug: T182734
Change-Id: Id6909728f461a3cd687185abd304f2fac5dc6000
(cherry picked from commit bdb1d9894743e779662688295d59747390afff4f)
---
M resources/src/mediawiki.rcfilters/mw.rcfilters.UriProcessor.js
M tests/qunit/suites/resources/mediawiki.rcfilters/UriProcessor.test.js
2 files changed, 22 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/96/398096/1

diff --git a/resources/src/mediawiki.rcfilters/mw.rcfilters.UriProcessor.js 
b/resources/src/mediawiki.rcfilters/mw.rcfilters.UriProcessor.js
index 3e1191f..05aa2fc 100644
--- a/resources/src/mediawiki.rcfilters/mw.rcfilters.UriProcessor.js
+++ b/resources/src/mediawiki.rcfilters/mw.rcfilters.UriProcessor.js
@@ -100,7 +100,8 @@
         */
        mw.rcfilters.UriProcessor.prototype._normalizeTargetInUri = function ( 
uri ) {
                var parts,
-                       re = /^((?:\/.+\/)?.+:.+)\/(.+)$/; // matches 
[namespace:]Title/Subpage
+                       // matches 
[/wiki/]SpecialNS:RCL/[Namespace:]Title/Subpage/Subsubpage/etc
+                       re = /^((?:\/.+?\/)?.*?:.*?)\/(.*)$/;
 
                // target in title param
                if ( uri.query.title ) {
diff --git 
a/tests/qunit/suites/resources/mediawiki.rcfilters/UriProcessor.test.js 
b/tests/qunit/suites/resources/mediawiki.rcfilters/UriProcessor.test.js
index 674bf07..a234d1a 100644
--- a/tests/qunit/suites/resources/mediawiki.rcfilters/UriProcessor.test.js
+++ b/tests/qunit/suites/resources/mediawiki.rcfilters/UriProcessor.test.js
@@ -286,16 +286,36 @@
                                        message: 'Target as subpage in path'
                                },
                                {
+                                       input: 
'http://host/wiki/Special:RecentChangesLinked/Moai/Sub1',
+                                       output: 
'http://host/wiki/Special:RecentChangesLinked?target=Moai/Sub1',
+                                       message: 'Target as subpage also has a 
subpage'
+                               },
+                               {
                                        input: 
'http://host/wiki/Special:RecentChangesLinked/Category:Foo',
                                        output: 
'http://host/wiki/Special:RecentChangesLinked?target=Category:Foo',
                                        message: 'Target as subpage in path 
(with namespace)'
                                },
                                {
+                                       input: 
'http://host/wiki/Special:RecentChangesLinked/Category:Foo/Bar',
+                                       output: 
'http://host/wiki/Special:RecentChangesLinked?target=Category:Foo/Bar',
+                                       message: 'Target as subpage in path 
also has a subpage (with namespace)'
+                               },
+                               {
                                        input: 
'http://host/w/index.php?title=Special:RecentChangesLinked/Moai',
                                        output: 
'http://host/w/index.php?title=Special:RecentChangesLinked&target=Moai',
                                        message: 'Target as subpage in title 
param'
                                },
                                {
+                                       input: 
'http://host/w/index.php?title=Special:RecentChangesLinked/Moai/Sub1',
+                                       output: 
'http://host/w/index.php?title=Special:RecentChangesLinked&target=Moai/Sub1',
+                                       message: 'Target as subpage in title 
param also has a subpage'
+                               },
+                               {
+                                       input: 
'http://host/w/index.php?title=Special:RecentChangesLinked/Category:Foo/Bar',
+                                       output: 
'http://host/w/index.php?title=Special:RecentChangesLinked&target=Category:Foo/Bar',
+                                       message: 'Target as subpage in title 
param also has a subpage (with namespace)'
+                               },
+                               {
                                        input: 
'http://host/wiki/Special:Watchlist',
                                        output: 
'http://host/wiki/Special:Watchlist',
                                        message: 'No target specified'

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id6909728f461a3cd687185abd304f2fac5dc6000
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: wmf/1.31.0-wmf.12
Gerrit-Owner: Sbisson <sbis...@wikimedia.org>

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

Reply via email to