summaryrefslogtreecommitdiff
path: root/tests/phpunit/includes/specials/SpecialMIMESearchTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/phpunit/includes/specials/SpecialMIMESearchTest.php')
-rw-r--r--tests/phpunit/includes/specials/SpecialMIMESearchTest.php48
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/phpunit/includes/specials/SpecialMIMESearchTest.php b/tests/phpunit/includes/specials/SpecialMIMESearchTest.php
new file mode 100644
index 00000000..14d19685
--- /dev/null
+++ b/tests/phpunit/includes/specials/SpecialMIMESearchTest.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * @group Database
+ */
+
+class SpecialMIMESearchTest extends MediaWikiTestCase {
+
+ /** @var MIMESearchPage */
+ private $page;
+
+ function setUp() {
+ $this->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 string $par Subpage for special page
+ * @param string $major Major MIME type we expect to look for
+ * @param string $minor 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 ),
+ );
+ }
+}