From 1ceabc0f649df666ca53ad4757bbb8e2be215dee Mon Sep 17 00:00:00 2001 From: addshore Date: Mon, 27 Nov 2017 14:39:20 +0000 Subject: [PATCH] Split WikiPageTest into ContentHandler & NoContentHandler tests Follow up to Iccdcd4a4f72c8b1329d36ff2e8699ba6b23c9ae7 Bug: T180989 Change-Id: Ib37a058586c7222ffe3ee5dc5f0e134ee18f0ff7 --- tests/common/TestsAutoLoader.php | 2 +- .../page/WikiPageContentHandlerDbTest.php | 42 +++++++++++++++ ...ikiPageTest.php => WikiPageDbTestBase.php} | 52 ++----------------- .../page/WikiPageNoContentHandlerDbTest.php | 14 +++++ 4 files changed, 62 insertions(+), 48 deletions(-) create mode 100644 tests/phpunit/includes/page/WikiPageContentHandlerDbTest.php rename tests/phpunit/includes/page/{WikiPageTest.php => WikiPageDbTestBase.php} (96%) create mode 100644 tests/phpunit/includes/page/WikiPageNoContentHandlerDbTest.php diff --git a/tests/common/TestsAutoLoader.php b/tests/common/TestsAutoLoader.php index 993f8d3950..44868b30d6 100644 --- a/tests/common/TestsAutoLoader.php +++ b/tests/common/TestsAutoLoader.php @@ -112,7 +112,7 @@ $wgAutoloadClasses += [ 'LogFormatterTestCase' => "$testDir/phpunit/includes/logging/LogFormatterTestCase.php", # tests/phpunit/includes/page - 'WikiPageTest' => "$testDir/phpunit/includes/page/WikiPageTest.php", + 'WikiPageDbTestBase' => "$testDir/phpunit/includes/page/WikiPageDbTestBase.php", # tests/phpunit/includes/parser 'ParserIntegrationTest' => "$testDir/phpunit/includes/parser/ParserIntegrationTest.php", diff --git a/tests/phpunit/includes/page/WikiPageContentHandlerDbTest.php b/tests/phpunit/includes/page/WikiPageContentHandlerDbTest.php new file mode 100644 index 0000000000..bfda3dca35 --- /dev/null +++ b/tests/phpunit/includes/page/WikiPageContentHandlerDbTest.php @@ -0,0 +1,42 @@ +createPage( + __METHOD__, + "some text", + CONTENT_MODEL_JAVASCRIPT + ); + + $page = new WikiPage( $page->getTitle() ); + $this->assertEquals( CONTENT_MODEL_JAVASCRIPT, $page->getContentModel() ); + } + + /** + * @covers WikiPage::getContentHandler + */ + public function testGetContentHandler() { + $page = $this->createPage( + __METHOD__, + "some text", + CONTENT_MODEL_JAVASCRIPT + ); + + $page = new WikiPage( $page->getTitle() ); + $this->assertEquals( 'JavaScriptContentHandler', get_class( $page->getContentHandler() ) ); + } + +} diff --git a/tests/phpunit/includes/page/WikiPageTest.php b/tests/phpunit/includes/page/WikiPageDbTestBase.php similarity index 96% rename from tests/phpunit/includes/page/WikiPageTest.php rename to tests/phpunit/includes/page/WikiPageDbTestBase.php index e6ee27bd1d..9de2bc91a8 100644 --- a/tests/phpunit/includes/page/WikiPageTest.php +++ b/tests/phpunit/includes/page/WikiPageDbTestBase.php @@ -1,11 +1,6 @@ setMwGlobals( 'wgContentHandlerUseDB', $this->getContentHandlerUseDB() ); $this->pagesToDelete = []; } @@ -53,6 +49,8 @@ class WikiPageTest extends MediaWikiLangTestCase { parent::tearDown(); } + abstract protected function getContentHandlerUseDB(); + /** * @param Title|string $title * @param string|null $model @@ -78,7 +76,7 @@ class WikiPageTest extends MediaWikiLangTestCase { * * @return WikiPage */ - private function createPage( $page, $text, $model = null ) { + protected function createPage( $page, $text, $model = null ) { if ( is_string( $page ) || $page instanceof Title ) { $page = $this->newPage( $page, $model ); } @@ -266,46 +264,6 @@ class WikiPageTest extends MediaWikiLangTestCase { $this->assertEquals( "some text", $content->getNativeData() ); } - /** - * @covers WikiPage::getContentModel - */ - public function testGetContentModel() { - global $wgContentHandlerUseDB; - - if ( !$wgContentHandlerUseDB ) { - $this->markTestSkipped( '$wgContentHandlerUseDB is disabled' ); - } - - $page = $this->createPage( - __METHOD__, - "some text", - CONTENT_MODEL_JAVASCRIPT - ); - - $page = new WikiPage( $page->getTitle() ); - $this->assertEquals( CONTENT_MODEL_JAVASCRIPT, $page->getContentModel() ); - } - - /** - * @covers WikiPage::getContentHandler - */ - public function testGetContentHandler() { - global $wgContentHandlerUseDB; - - if ( !$wgContentHandlerUseDB ) { - $this->markTestSkipped( '$wgContentHandlerUseDB is disabled' ); - } - - $page = $this->createPage( - __METHOD__, - "some text", - CONTENT_MODEL_JAVASCRIPT - ); - - $page = new WikiPage( $page->getTitle() ); - $this->assertEquals( 'JavaScriptContentHandler', get_class( $page->getContentHandler() ) ); - } - /** * @covers WikiPage::exists */ diff --git a/tests/phpunit/includes/page/WikiPageNoContentHandlerDbTest.php b/tests/phpunit/includes/page/WikiPageNoContentHandlerDbTest.php new file mode 100644 index 0000000000..a6ce185a12 --- /dev/null +++ b/tests/phpunit/includes/page/WikiPageNoContentHandlerDbTest.php @@ -0,0 +1,14 @@ +