]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - tests/phpunit/includes/api/ApiQueryAllPagesTest.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / tests / phpunit / includes / api / ApiQueryAllPagesTest.php
diff --git a/tests/phpunit/includes/api/ApiQueryAllPagesTest.php b/tests/phpunit/includes/api/ApiQueryAllPagesTest.php
new file mode 100644 (file)
index 0000000..9f28aaf
--- /dev/null
@@ -0,0 +1,40 @@
+<?php
+
+/**
+ * @group API
+ * @group Database
+ * @group medium
+ */
+class ApiQueryAllPagesTest extends ApiTestCase {
+
+       protected function setUp() {
+               parent::setUp();
+               $this->doLogin();
+       }
+
+       /**
+        *Test T27702
+        *Prefixes of API search requests are not handled with case sensitivity and may result
+        *in wrong search results
+        */
+       public function testPrefixNormalizationSearchBug() {
+               $title = Title::newFromText( 'Category:Template:xyz' );
+               $page = WikiPage::factory( $title );
+
+               $page->doEditContent(
+                       ContentHandler::makeContent( 'Some text', $page->getTitle() ),
+                       'inserting content'
+               );
+
+               $result = $this->doApiRequest( [
+                       'action' => 'query',
+                       'list' => 'allpages',
+                       'apnamespace' => NS_CATEGORY,
+                       'apprefix' => 'Template:x' ] );
+
+               $this->assertArrayHasKey( 'query', $result[0] );
+               $this->assertArrayHasKey( 'allpages', $result[0]['query'] );
+               $this->assertNotEquals( 0, count( $result[0]['query']['allpages'] ),
+                       'allpages list does not contain page Category:Template:xyz' );
+       }
+}