X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2Fcontent%2FWikitextContentHandlerTest.php;h=59984d85e992ba932ab2c026cd9b49765f921e13;hp=ec97d763710d4cd85408f4082877d1b0a05615ec;hb=6b3e5511fb848890f174690885e748b90389c0b8;hpb=dcdb8e463e3b2be121c61c91df13ea36d270a602 diff --git a/tests/phpunit/includes/content/WikitextContentHandlerTest.php b/tests/phpunit/includes/content/WikitextContentHandlerTest.php index ec97d76371..59984d85e9 100644 --- a/tests/phpunit/includes/content/WikitextContentHandlerTest.php +++ b/tests/phpunit/includes/content/WikitextContentHandlerTest.php @@ -115,6 +115,9 @@ class WikitextContentHandlerTest extends MediaWikiLangTestCase { $this->assertEquals( $supported, $this->handler->isSupportedFormat( $format ) ); } + /** + * @covers WikitextContentHandler::supportsDirectEditing + */ public function testSupportsDirectEditing() { $handler = new WikiTextContentHandler(); $this->assertTrue( $handler->supportsDirectEditing(), 'direct editing is supported' ); @@ -185,6 +188,13 @@ class WikitextContentHandlerTest extends MediaWikiLangTestCase { '/^Created page .*Hello/' ], + [ + null, + '', + EDIT_NEW, + '/^Created blank page$/' + ], + [ 'Hello there, world!', '', @@ -227,25 +237,109 @@ class WikitextContentHandlerTest extends MediaWikiLangTestCase { ); } - /** - * @todo Text case requires database, should be done by a test class in the Database group - */ - /* - public function testGetAutoDeleteReason( Title $title, &$hasHistory ) {} - */ + public static function dataGetChangeTag() { + return [ + [ + null, + '#REDIRECT [[Foo]]', + 0, + 'mw-new-redirect' + ], + + [ + 'Lorem ipsum dolor', + '#REDIRECT [[Foo]]', + 0, + 'mw-new-redirect' + ], + + [ + '#REDIRECT [[Foo]]', + 'Lorem ipsum dolor', + 0, + 'mw-removed-redirect' + ], + + [ + '#REDIRECT [[Foo]]', + '#REDIRECT [[Bar]]', + 0, + 'mw-changed-redirect-target' + ], + + [ + null, + 'Lorem ipsum dolor', + EDIT_NEW, + null // mw-newpage is not defined as a tag + ], + + [ + null, + '', + EDIT_NEW, + null // mw-newblank is not defined as a tag + ], + + [ + 'Lorem ipsum dolor', + '', + 0, + 'mw-blank' + ], + + [ + 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy + eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam + voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet + clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.', + 'Ipsum', + 0, + 'mw-replace' + ], + + [ + 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy + eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam + voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet + clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.', + 'Duis purus odio, rhoncus et finibus dapibus, facilisis ac urna. Pellentesque + arcu, tristique nec tempus nec, suscipit vel arcu. Sed non dolor nec ligula + congue tempor. Quisque pellentesque finibus orci a molestie. Nam maximus, purus + euismod finibus mollis, dui ante malesuada felis, dignissim rutrum diam sapien.', + 0, + null + ], + ]; + } /** - * @todo Text case requires database, should be done by a test class in the Database group + * @dataProvider dataGetChangeTag + * @covers WikitextContentHandler::getChangeTag */ - /* - public function testGetUndoContent( Revision $current, Revision $undo, - Revision $undoafter = null - ) { + public function testGetChangeTag( $old, $new, $flags, $expected ) { + $this->setMwGlobals( 'wgSoftwareTags', [ + 'mw-new-redirect' => true, + 'mw-removed-redirect' => true, + 'mw-changed-redirect-target' => true, + 'mw-newpage' => true, + 'mw-newblank' => true, + 'mw-blank' => true, + 'mw-replace' => true, + ] ); + $oldContent = is_null( $old ) ? null : new WikitextContent( $old ); + $newContent = is_null( $new ) ? null : new WikitextContent( $new ); + + $tag = $this->handler->getChangeTag( $oldContent, $newContent, $flags ); + + $this->assertSame( $expected, $tag ); } - */ + /** + * @covers WikitextContentHandler::getDataForSearchIndex + */ public function testDataIndexFieldsFile() { - $mockEngine = $this->getMock( 'SearchEngine' ); + $mockEngine = $this->createMock( SearchEngine::class ); $title = Title::newFromText( 'Somefile.jpg', NS_FILE ); $page = new WikiPage( $title );