From c67536716d62b3095ac58106ad6d723e778a97bb Mon Sep 17 00:00:00 2001 From: aude Date: Mon, 15 Aug 2016 12:37:00 -0400 Subject: [PATCH] Call parent::getFieldsForSearchIndex in ContentHandlers ContentHandler implementations were not including fields defined by their parent ContentHandler classes. merge method is added to the SearchIndexFieldDefinition mock in SearchEngineTest, to allow merges of fields in the way that SearchIndexFieldDefition implementation does. Change-Id: Id04a51528f566da2666bad0394a2f61c949c69b4 --- includes/content/CodeContentHandler.php | 7 ------- includes/content/TextContentHandler.php | 3 ++- includes/content/WikitextContentHandler.php | 2 +- tests/phpunit/includes/search/SearchEngineTest.php | 6 ++++++ 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/includes/content/CodeContentHandler.php b/includes/content/CodeContentHandler.php index 2bbf6ca7b2..20893bb0e7 100644 --- a/includes/content/CodeContentHandler.php +++ b/includes/content/CodeContentHandler.php @@ -64,11 +64,4 @@ abstract class CodeContentHandler extends TextContentHandler { throw new MWException( 'Subclass must override' ); } - /** - * @param SearchEngine $engine - * @return array - */ - public function getFieldsForSearchIndex( SearchEngine $engine ) { - return []; - } } diff --git a/includes/content/TextContentHandler.php b/includes/content/TextContentHandler.php index 74cbd16965..09cdcee143 100644 --- a/includes/content/TextContentHandler.php +++ b/includes/content/TextContentHandler.php @@ -143,9 +143,10 @@ class TextContentHandler extends ContentHandler { } public function getFieldsForSearchIndex( SearchEngine $engine ) { - $fields = []; + $fields = parent::getFieldsForSearchIndex( $engine ); $fields['language'] = $engine->makeSearchFieldMapping( 'language', SearchIndexField::INDEX_TYPE_KEYWORD ); + return $fields; } diff --git a/includes/content/WikitextContentHandler.php b/includes/content/WikitextContentHandler.php index d9f1e8639d..9baf64331d 100644 --- a/includes/content/WikitextContentHandler.php +++ b/includes/content/WikitextContentHandler.php @@ -109,7 +109,7 @@ class WikitextContentHandler extends TextContentHandler { } public function getFieldsForSearchIndex( SearchEngine $engine ) { - $fields = []; + $fields = parent::getFieldsForSearchIndex( $engine ); $fields['category'] = $engine->makeSearchFieldMapping( 'category', SearchIndexField::INDEX_TYPE_TEXT ); diff --git a/tests/phpunit/includes/search/SearchEngineTest.php b/tests/phpunit/includes/search/SearchEngineTest.php index 081cb38830..0b34b6f9b5 100644 --- a/tests/phpunit/includes/search/SearchEngineTest.php +++ b/tests/phpunit/includes/search/SearchEngineTest.php @@ -172,11 +172,17 @@ class SearchEngineTest extends MediaWikiLangTestCase { $name, $type ] )->getMock(); + $mockField->expects( $this->any() )->method( 'getMapping' )->willReturn( [ 'testData' => 'test', 'name' => $name, 'type' => $type, ] ); + + $mockField->expects( $this->any() ) + ->method( 'merge' ) + ->willReturn( $mockField ); + return $mockField; }; -- 2.20.1