diff options
Diffstat (limited to 'www/wiki/tests/phpunit/includes/api/ApiQueryAllPagesTest.php')
-rw-r--r-- | www/wiki/tests/phpunit/includes/api/ApiQueryAllPagesTest.php | 36 |
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' ); + } +} |