X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2Fcontent%2FWikitextContentHandlerTest.php;h=02f82f4dace74670d6bf8e46bd1b50b16c1fc3fd;hb=7040be4f72b46a0052f8896ef462d8b98f45e157;hp=ec97d763710d4cd85408f4082877d1b0a05615ec;hpb=84851a43f3ea8ea146c4d82c55fd01b9fa302347;p=lhc%2Fweb%2Fwiklou.git diff --git a/tests/phpunit/includes/content/WikitextContentHandlerTest.php b/tests/phpunit/includes/content/WikitextContentHandlerTest.php index ec97d76371..02f82f4dac 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,6 +237,104 @@ class WikitextContentHandlerTest extends MediaWikiLangTestCase { ); } + 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 + ], + ]; + } + + /** + * @dataProvider dataGetChangeTag + * @covers WikitextContentHandler::getChangeTag + */ + 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 ); + } + /** * @todo Text case requires database, should be done by a test class in the Database group */ @@ -244,8 +352,11 @@ class WikitextContentHandlerTest extends MediaWikiLangTestCase { } */ + /** + * @covers WikitextContentHandler::getDataForSearchIndex + */ public function testDataIndexFieldsFile() { - $mockEngine = $this->getMock( 'SearchEngine' ); + $mockEngine = $this->createMock( 'SearchEngine' ); $title = Title::newFromText( 'Somefile.jpg', NS_FILE ); $page = new WikiPage( $title );