summaryrefslogtreecommitdiff
path: root/www/wiki/tests/phpunit/includes/api/ApiQueryAllPagesTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/tests/phpunit/includes/api/ApiQueryAllPagesTest.php')
-rw-r--r--www/wiki/tests/phpunit/includes/api/ApiQueryAllPagesTest.php36
1 files changed, 36 insertions, 0 deletions
diff --git a/www/wiki/tests/phpunit/includes/api/ApiQueryAllPagesTest.php b/www/wiki/tests/phpunit/includes/api/ApiQueryAllPagesTest.php
new file mode 100644
index 00000000..2d89aa54
--- /dev/null
+++ b/www/wiki/tests/phpunit/includes/api/ApiQueryAllPagesTest.php
@@ -0,0 +1,36 @@
+<?php
+
+/**
+ * @group API
+ * @group Database
+ * @group medium
+ *
+ * @covers ApiQueryAllPages
+ */
+class ApiQueryAllPagesTest extends ApiTestCase {
+ /**
+ * 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' );
+ }
+}