From d3c64655dc8e0cd773585d26ce15f49bf265e717 Mon Sep 17 00:00:00 2001 From: jarry1250 Date: Mon, 21 Oct 2013 20:44:38 +0100 Subject: [PATCH] mediawiki.Title: Generalise filename-matching in newFromImg Both core and extensions can (and do) modify the thumbnail string e.g. to add page numbers, languages, etc. As bawolff notes in the commentary to bug 55963, the assumption that the filename itself appears twice is likely to be violated from time to time, but for the moment it suffices to fix the apparent regression described in that bug report. Also includes some additional test cases. Bug: 55963 Change-Id: I9bb29a24f9bf50924699b913e31f44689906c525 --- resources/mediawiki/mediawiki.Title.js | 5 ++--- .../resources/mediawiki/mediawiki.Title.test.js | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/resources/mediawiki/mediawiki.Title.js b/resources/mediawiki/mediawiki.Title.js index b236019663..4a6456678b 100644 --- a/resources/mediawiki/mediawiki.Title.js +++ b/resources/mediawiki/mediawiki.Title.js @@ -312,13 +312,12 @@ // thumb.php-generated thumbnails thumbPhpRegex = /thumb\.php/, - regexes = [ // Thumbnails - /\/[a-f0-9]\/[a-f0-9]{2}\/([^\s\/]+)\/[0-9]+px-\1[^\s\/]*$/, + /\/[a-f0-9]\/[a-f0-9]{2}\/([^\s\/]+)\/[^\s\/]+-\1[^\s\/]*$/, // Thumbnails in non-hashed upload directories - /\/([^\s\/]+)\/[0-9]+px-\1[^\s\/]*$/, + /\/([^\s\/]+)\/[^\s\/]+-\1[^\s\/]*$/, // Full size images /\/[a-f0-9]\/[a-f0-9]{2}\/([^\s\/]+)$/, diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js index ba15fba144..13c0efcd80 100644 --- a/tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js +++ b/tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js @@ -330,7 +330,7 @@ assert.equal( title.getUrl(), '/wiki/User_talk:John_Doe', 'Escaping in title and namespace for urls' ); } ); - QUnit.test( 'newFromImg', 28, function ( assert ) { + QUnit.test( 'newFromImg', 36, function ( assert ) { var title, i, thisCase, prefix, cases = [ { @@ -340,6 +340,13 @@ prefixedText: 'File:Anticlockwise heliotrope\'s.jpg' }, + { + url: '/wiki/images/thumb/8/80/Wikipedia-logo-v2.svg/langde-150px-Wikipedia-logo-v2.svg.png', + typeOfUrl: 'Normal hashed directory thumbnail with complex thumbnail parameters', + nameText: 'Wikipedia-logo-v2', + prefixedText: 'File:Wikipedia-logo-v2.svg' + }, + { url: '//upload.wikimedia.org/wikipedia/commons/thumb/8/80/Wikipedia-logo-v2.svg/150px-Wikipedia-logo-v2.svg.png', typeOfUrl: 'Commons thumbnail', @@ -368,6 +375,13 @@ prefixedText: 'File:Wikipedia-logo-v2.svg' }, + { + url: '/wikipedia/commons/thumb/Wikipedia-logo-v2.svg/langde-150px-Wikipedia-logo-v2.svg.png', + typeOfUrl: 'Commons unhashed thumbnail with complex thumbnail parameters', + nameText: 'Wikipedia-logo-v2', + prefixedText: 'File:Wikipedia-logo-v2.svg' + }, + { url: '/wiki/images/Anticlockwise_heliotrope%27s.jpg', typeOfUrl: 'Unhashed local file', -- 2.20.1