From: Brian Wolff Date: Sat, 21 Jun 2014 17:19:42 +0000 (-0300) Subject: Fix typo in Special:MIMESearch causing minor part to be ignored. X-Git-Tag: 1.31.0-rc.0~15282^2 X-Git-Url: http://git.cyclocoop.org//%27%40script%40/%27?a=commitdiff_plain;h=2fa5569b7e381de0033a87ad4b65e74a6ca68705;p=lhc%2Fweb%2Fwiklou.git Fix typo in Special:MIMESearch causing minor part to be ignored. img_minor_mime was being added to wrong part of query info array, and thus was being ignored. Whoops. Change-Id: I55f45f5ae9621ff1319b34a2aa85cb4bd2c96253 Follow-up: c93baa941a5a56b7 --- diff --git a/includes/specials/SpecialMIMEsearch.php b/includes/specials/SpecialMIMEsearch.php index cb9dac9bfa..4d9e7dad7f 100644 --- a/includes/specials/SpecialMIMEsearch.php +++ b/includes/specials/SpecialMIMEsearch.php @@ -85,8 +85,8 @@ class MIMEsearchPage extends QueryPage { MEDIATYPE_TEXT, MEDIATYPE_EXECUTABLE, MEDIATYPE_ARCHIVE, - ) + $minorType, - ), + ), + ) + $minorType, ); return $qi; diff --git a/tests/phpunit/includes/specials/SpecialMIMESearchTest.php b/tests/phpunit/includes/specials/SpecialMIMESearchTest.php new file mode 100644 index 0000000000..e7bb35c126 --- /dev/null +++ b/tests/phpunit/includes/specials/SpecialMIMESearchTest.php @@ -0,0 +1,44 @@ +page = new MIMESearchPage; + $context = new RequestContext(); + $context->setTitle( Title::makeTitle( NS_SPECIAL, 'MIMESearch' ) ); + $context->setRequest( new FauxRequest() ); + $this->page->setContext( $context ); + + parent::setUp(); + } + + /** + * @dataProvider providerMimeFiltering + * @param $par String subpage for special page + * @param $major String Major mime type we expect to look for + * @param $minor String Minor mime type we expect to look for + */ + function testMimeFiltering( $par, $major, $minor ) { + $this->page->run( $par ); + $qi = $this->page->getQueryInfo(); + $this->assertEquals( $qi['conds']['img_major_mime'], $major ); + if ( $minor !== null ) { + $this->assertEquals( $qi['conds']['img_minor_mime'], $minor ); + } else { + $this->assertArrayNotHasKey( 'img_minor_mime', $qi['conds'] ); + } + $this->assertContains( 'image', $qi['tables'] ); + } + + function providerMimeFiltering() { + return array( + array( 'image/gif', 'image', 'gif' ), + array( 'image/png', 'image', 'png' ), + array( 'application/pdf', 'application', 'pdf' ), + array( 'image/*', 'image', null ), + array( 'multipart/*', 'multipart', null ), + ); + } +}