summaryrefslogtreecommitdiff
path: root/tests/phpunit/includes/content/WikitextContentHandlerTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/phpunit/includes/content/WikitextContentHandlerTest.php')
-rw-r--r--tests/phpunit/includes/content/WikitextContentHandlerTest.php227
1 files changed, 0 insertions, 227 deletions
diff --git a/tests/phpunit/includes/content/WikitextContentHandlerTest.php b/tests/phpunit/includes/content/WikitextContentHandlerTest.php
deleted file mode 100644
index 75a72784..00000000
--- a/tests/phpunit/includes/content/WikitextContentHandlerTest.php
+++ /dev/null
@@ -1,227 +0,0 @@
-<?php
-
-/**
- * @group ContentHandler
- */
-class WikitextContentHandlerTest extends MediaWikiLangTestCase {
-
- /**
- * @var ContentHandler
- */
- var $handler;
-
- public function setUp() {
- parent::setUp();
-
- $this->handler = ContentHandler::getForModelID( CONTENT_MODEL_WIKITEXT );
- }
-
- /**
- * @covers WikitextContentHandler::serializeContent
- */
- public function testSerializeContent() {
- $content = new WikitextContent( 'hello world' );
-
- $this->assertEquals( 'hello world', $this->handler->serializeContent( $content ) );
- $this->assertEquals( 'hello world', $this->handler->serializeContent( $content, CONTENT_FORMAT_WIKITEXT ) );
-
- try {
- $this->handler->serializeContent( $content, 'dummy/foo' );
- $this->fail( "serializeContent() should have failed on unknown format" );
- } catch ( MWException $e ) {
- // ok, as expected
- }
- }
-
- /**
- * @covers WikitextContentHandler::unserializeContent
- */
- public function testUnserializeContent() {
- $content = $this->handler->unserializeContent( 'hello world' );
- $this->assertEquals( 'hello world', $content->getNativeData() );
-
- $content = $this->handler->unserializeContent( 'hello world', CONTENT_FORMAT_WIKITEXT );
- $this->assertEquals( 'hello world', $content->getNativeData() );
-
- try {
- $this->handler->unserializeContent( 'hello world', 'dummy/foo' );
- $this->fail( "unserializeContent() should have failed on unknown format" );
- } catch ( MWException $e ) {
- // ok, as expected
- }
- }
-
- /**
- * @covers WikitextContentHandler::makeEmptyContent
- */
- public function testMakeEmptyContent() {
- $content = $this->handler->makeEmptyContent();
-
- $this->assertTrue( $content->isEmpty() );
- $this->assertEquals( '', $content->getNativeData() );
- }
-
- public static function dataIsSupportedFormat() {
- return array(
- array( null, true ),
- array( CONTENT_FORMAT_WIKITEXT, true ),
- array( 99887766, false ),
- );
- }
-
- /**
- * @dataProvider provideMakeRedirectContent
- * @param Title|string $title Title object or string for Title::newFromText()
- * @param string $expected Serialized form of the content object built
- * @covers WikitextContentHandler::makeRedirectContent
- */
- public function testMakeRedirectContent( $title, $expected ) {
- global $wgContLang;
- $wgContLang->resetNamespaces();
-
- if ( is_string( $title ) ) {
- $title = Title::newFromText( $title );
- }
- $content = $this->handler->makeRedirectContent( $title );
- $this->assertEquals( $expected, $content->serialize() );
- }
-
- public static function provideMakeRedirectContent() {
- return array(
- array( 'Hello', '#REDIRECT [[Hello]]' ),
- array( 'Template:Hello', '#REDIRECT [[Template:Hello]]' ),
- array( 'Hello#section', '#REDIRECT [[Hello#section]]' ),
- array( 'user:john_doe#section', '#REDIRECT [[User:John doe#section]]' ),
- array( 'MEDIAWIKI:FOOBAR', '#REDIRECT [[MediaWiki:FOOBAR]]' ),
- array( 'Category:Foo', '#REDIRECT [[:Category:Foo]]' ),
- array( Title::makeTitle( NS_MAIN, 'en:Foo' ), '#REDIRECT [[en:Foo]]' ),
- array( Title::makeTitle( NS_MAIN, 'Foo', '', 'en' ), '#REDIRECT [[:en:Foo]]' ),
- array( Title::makeTitle( NS_MAIN, 'Bar', 'fragment', 'google' ), '#REDIRECT [[google:Bar#fragment]]' ),
- );
- }
-
- /**
- * @dataProvider dataIsSupportedFormat
- * @covers WikitextContentHandler::isSupportedFormat
- */
- public function testIsSupportedFormat( $format, $supported ) {
- $this->assertEquals( $supported, $this->handler->isSupportedFormat( $format ) );
- }
-
- public static function dataMerge3() {
- return array(
- array(
- "first paragraph
-
- second paragraph\n",
-
- "FIRST paragraph
-
- second paragraph\n",
-
- "first paragraph
-
- SECOND paragraph\n",
-
- "FIRST paragraph
-
- SECOND paragraph\n",
- ),
-
- array( "first paragraph
- second paragraph\n",
-
- "Bla bla\n",
-
- "Blubberdibla\n",
-
- false,
- ),
- );
- }
-
- /**
- * @dataProvider dataMerge3
- * @covers WikitextContentHandler::merge3
- */
- public function testMerge3( $old, $mine, $yours, $expected ) {
- $this->checkHasDiff3();
-
- // test merge
- $oldContent = new WikitextContent( $old );
- $myContent = new WikitextContent( $mine );
- $yourContent = new WikitextContent( $yours );
-
- $merged = $this->handler->merge3( $oldContent, $myContent, $yourContent );
-
- $this->assertEquals( $expected, $merged ? $merged->getNativeData() : $merged );
- }
-
- public static function dataGetAutosummary() {
- return array(
- array(
- 'Hello there, world!',
- '#REDIRECT [[Foo]]',
- 0,
- '/^Redirected page .*Foo/'
- ),
-
- array(
- null,
- 'Hello world!',
- EDIT_NEW,
- '/^Created page .*Hello/'
- ),
-
- array(
- 'Hello there, world!',
- '',
- 0,
- '/^Blanked/'
- ),
-
- array(
- '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.',
- 'Hello world!',
- 0,
- '/^Replaced .*Hello/'
- ),
-
- array(
- 'foo',
- 'bar',
- 0,
- '/^$/'
- ),
- );
- }
-
- /**
- * @dataProvider dataGetAutosummary
- * @covers WikitextContentHandler::getAutosummary
- */
- public function testGetAutosummary( $old, $new, $flags, $expected ) {
- $oldContent = is_null( $old ) ? null : new WikitextContent( $old );
- $newContent = is_null( $new ) ? null : new WikitextContent( $new );
-
- $summary = $this->handler->getAutosummary( $oldContent, $newContent, $flags );
-
- $this->assertTrue( (bool)preg_match( $expected, $summary ), "Autosummary didn't match expected pattern $expected: $summary" );
- }
-
- /**
- * @todo Text case requires database, should be done by a test class in the Database group
- */
- /*
- public function testGetAutoDeleteReason( Title $title, &$hasHistory ) {}
- */
-
- /**
- * @todo Text case requires database, should be done by a test class in the Database group
- */
- /*
- public function testGetUndoContent( Revision $current, Revision $undo, Revision $undoafter = null ) {}
- */
-}