Better match the original class name.
Change-Id: Ic85d486d55c2bc58189e5d5b411d296e872fc577
'DummyContentHandlerForTesting' => "$testDir/phpunit/includes/content/ContentHandlerTest.php",
'DummyContentForTesting' => "$testDir/phpunit/includes/content/ContentHandlerTest.php",
'ContentHandlerTest' => "$testDir/phpunit/includes/content/ContentHandlerTest.php",
- 'JavascriptContentTest' => "$testDir/phpunit/includes/content/JavascriptContentTest.php",
+ 'JavaScriptContentTest' => "$testDir/phpunit/includes/content/JavaScriptContentTest.php",
'TextContentTest' => "$testDir/phpunit/includes/content/TextContentTest.php",
# tests/phpunit/includes/db
--- /dev/null
+<?php
+
+/**
+ * @group ContentHandler
+ * @group Database
+ * ^--- needed, because we do need the database to test link updates
+ */
+class JavaScriptContentTest extends TextContentTest {
+
+ public function newContent( $text ) {
+ return new JavaScriptContent( $text );
+ }
+
+ public static function dataGetParserOutput() {
+ return array(
+ array(
+ 'MediaWiki:Test.js',
+ null,
+ "hello <world>\n",
+ "<pre class=\"mw-code mw-js\" dir=\"ltr\">\nhello <world>\n\n</pre>"
+ ),
+ array(
+ 'MediaWiki:Test.js',
+ null,
+ "hello(); // [[world]]\n",
+ "<pre class=\"mw-code mw-js\" dir=\"ltr\">\nhello(); // [[world]]\n\n</pre>",
+ array(
+ 'Links' => array(
+ array( 'World' => 0 )
+ )
+ )
+ ),
+
+ // TODO: more...?
+ );
+ }
+
+ // XXX: Unused function
+ public static function dataGetSection() {
+ return array(
+ array( WikitextContentTest::$sections,
+ '0',
+ null
+ ),
+ array( WikitextContentTest::$sections,
+ '2',
+ null
+ ),
+ array( WikitextContentTest::$sections,
+ '8',
+ null
+ ),
+ );
+ }
+
+ // XXX: Unused function
+ public static function dataReplaceSection() {
+ return array(
+ array( WikitextContentTest::$sections,
+ '0',
+ 'No more',
+ null,
+ null
+ ),
+ array( WikitextContentTest::$sections,
+ '',
+ 'No more',
+ null,
+ null
+ ),
+ array( WikitextContentTest::$sections,
+ '2',
+ "== TEST ==\nmore fun",
+ null,
+ null
+ ),
+ array( WikitextContentTest::$sections,
+ '8',
+ 'No more',
+ null,
+ null
+ ),
+ array( WikitextContentTest::$sections,
+ 'new',
+ 'No more',
+ 'New',
+ null
+ ),
+ );
+ }
+
+ public function testAddSectionHeader( ) {
+ $content = $this->newContent( 'hello world' );
+ $c = $content->addSectionHeader( 'test' );
+
+ $this->assertTrue( $content->equals( $c ) );
+ }
+
+ // XXX: currently, preSaveTransform is applied to scripts. this may change or become optional.
+ public static function dataPreSaveTransform() {
+ return array(
+ array( 'hello this is ~~~',
+ "hello this is [[Special:Contributions/127.0.0.1|127.0.0.1]]",
+ ),
+ array( 'hello \'\'this\'\' is <nowiki>~~~</nowiki>',
+ 'hello \'\'this\'\' is <nowiki>~~~</nowiki>',
+ ),
+ array( " Foo \n ",
+ " Foo",
+ ),
+ );
+ }
+
+ public static function dataPreloadTransform() {
+ return array(
+ array( 'hello this is ~~~',
+ 'hello this is ~~~',
+ ),
+ array( 'hello \'\'this\'\' is <noinclude>foo</noinclude><includeonly>bar</includeonly>',
+ 'hello \'\'this\'\' is <noinclude>foo</noinclude><includeonly>bar</includeonly>',
+ ),
+ );
+ }
+
+ public static function dataGetRedirectTarget() {
+ return array(
+ array( '#REDIRECT [[Test]]',
+ null,
+ ),
+ array( '#REDIRECT Test',
+ null,
+ ),
+ array( '* #REDIRECT [[Test]]',
+ null,
+ ),
+ );
+ }
+
+ /**
+ * @todo: test needs database!
+ */
+ /*
+ public function getRedirectChain() {
+ $text = $this->getNativeData();
+ return Title::newFromRedirectArray( $text );
+ }
+ */
+
+ /**
+ * @todo: test needs database!
+ */
+ /*
+ public function getUltimateRedirectTarget() {
+ $text = $this->getNativeData();
+ return Title::newFromRedirectRecurse( $text );
+ }
+ */
+
+ public static function dataIsCountable() {
+ return array(
+ array( '',
+ null,
+ 'any',
+ true
+ ),
+ array( 'Foo',
+ null,
+ 'any',
+ true
+ ),
+ array( 'Foo',
+ null,
+ 'comma',
+ false
+ ),
+ array( 'Foo, bar',
+ null,
+ 'comma',
+ false
+ ),
+ array( 'Foo',
+ null,
+ 'link',
+ false
+ ),
+ array( 'Foo [[bar]]',
+ null,
+ 'link',
+ false
+ ),
+ array( 'Foo',
+ true,
+ 'link',
+ false
+ ),
+ array( 'Foo [[bar]]',
+ false,
+ 'link',
+ false
+ ),
+ array( '#REDIRECT [[bar]]',
+ true,
+ 'any',
+ true
+ ),
+ array( '#REDIRECT [[bar]]',
+ true,
+ 'comma',
+ false
+ ),
+ array( '#REDIRECT [[bar]]',
+ true,
+ 'link',
+ false
+ ),
+ );
+ }
+
+ public static function dataGetTextForSummary() {
+ return array(
+ array( "hello\nworld.",
+ 16,
+ 'hello world.',
+ ),
+ array( 'hello world.',
+ 8,
+ 'hello...',
+ ),
+ array( '[[hello world]].',
+ 8,
+ '[[hel...',
+ ),
+ );
+ }
+
+ public function testMatchMagicWord( ) {
+ $mw = MagicWord::get( "staticredirect" );
+
+ $content = $this->newContent( "#REDIRECT [[FOO]]\n__STATICREDIRECT__" );
+ $this->assertFalse( $content->matchMagicWord( $mw ), "should not have matched magic word, since it's not wikitext" );
+ }
+
+ public function testUpdateRedirect( ) {
+ $target = Title::newFromText( "testUpdateRedirect_target" );
+
+ $content = $this->newContent( "#REDIRECT [[Someplace]]" );
+ $newContent = $content->updateRedirect( $target );
+
+ $this->assertTrue( $content->equals( $newContent ), "content should be unchanged since it's not wikitext" );
+ }
+
+ public function testGetModel() {
+ $content = $this->newContent( "hello world." );
+
+ $this->assertEquals( CONTENT_MODEL_JAVASCRIPT, $content->getModel() );
+ }
+
+ public function testGetContentHandler() {
+ $content = $this->newContent( "hello world." );
+
+ $this->assertEquals( CONTENT_MODEL_JAVASCRIPT, $content->getContentHandler()->getModelID() );
+ }
+
+ public static function dataEquals( ) {
+ return array(
+ array( new JavaScriptContent( "hallo" ), null, false ),
+ array( new JavaScriptContent( "hallo" ), new JavaScriptContent( "hallo" ), true ),
+ array( new JavaScriptContent( "hallo" ), new CssContent( "hallo" ), false ),
+ array( new JavaScriptContent( "hallo" ), new JavaScriptContent( "HALLO" ), false ),
+ );
+ }
+
+}
+++ /dev/null
-<?php
-
-/**
- * @group ContentHandler
- * @group Database
- * ^--- needed, because we do need the database to test link updates
- */
-class JavaScriptContentTest extends TextContentTest {
-
- public function newContent( $text ) {
- return new JavaScriptContent( $text );
- }
-
- public static function dataGetParserOutput() {
- return array(
- array(
- 'MediaWiki:Test.js',
- null,
- "hello <world>\n",
- "<pre class=\"mw-code mw-js\" dir=\"ltr\">\nhello <world>\n\n</pre>"
- ),
- array(
- 'MediaWiki:Test.js',
- null,
- "hello(); // [[world]]\n",
- "<pre class=\"mw-code mw-js\" dir=\"ltr\">\nhello(); // [[world]]\n\n</pre>",
- array(
- 'Links' => array(
- array( 'World' => 0 )
- )
- )
- ),
-
- // TODO: more...?
- );
- }
-
- // XXX: Unused function
- public static function dataGetSection() {
- return array(
- array( WikitextContentTest::$sections,
- '0',
- null
- ),
- array( WikitextContentTest::$sections,
- '2',
- null
- ),
- array( WikitextContentTest::$sections,
- '8',
- null
- ),
- );
- }
-
- // XXX: Unused function
- public static function dataReplaceSection() {
- return array(
- array( WikitextContentTest::$sections,
- '0',
- 'No more',
- null,
- null
- ),
- array( WikitextContentTest::$sections,
- '',
- 'No more',
- null,
- null
- ),
- array( WikitextContentTest::$sections,
- '2',
- "== TEST ==\nmore fun",
- null,
- null
- ),
- array( WikitextContentTest::$sections,
- '8',
- 'No more',
- null,
- null
- ),
- array( WikitextContentTest::$sections,
- 'new',
- 'No more',
- 'New',
- null
- ),
- );
- }
-
- public function testAddSectionHeader( ) {
- $content = $this->newContent( 'hello world' );
- $c = $content->addSectionHeader( 'test' );
-
- $this->assertTrue( $content->equals( $c ) );
- }
-
- // XXX: currently, preSaveTransform is applied to scripts. this may change or become optional.
- public static function dataPreSaveTransform() {
- return array(
- array( 'hello this is ~~~',
- "hello this is [[Special:Contributions/127.0.0.1|127.0.0.1]]",
- ),
- array( 'hello \'\'this\'\' is <nowiki>~~~</nowiki>',
- 'hello \'\'this\'\' is <nowiki>~~~</nowiki>',
- ),
- array( " Foo \n ",
- " Foo",
- ),
- );
- }
-
- public static function dataPreloadTransform() {
- return array(
- array( 'hello this is ~~~',
- 'hello this is ~~~',
- ),
- array( 'hello \'\'this\'\' is <noinclude>foo</noinclude><includeonly>bar</includeonly>',
- 'hello \'\'this\'\' is <noinclude>foo</noinclude><includeonly>bar</includeonly>',
- ),
- );
- }
-
- public static function dataGetRedirectTarget() {
- return array(
- array( '#REDIRECT [[Test]]',
- null,
- ),
- array( '#REDIRECT Test',
- null,
- ),
- array( '* #REDIRECT [[Test]]',
- null,
- ),
- );
- }
-
- /**
- * @todo: test needs database!
- */
- /*
- public function getRedirectChain() {
- $text = $this->getNativeData();
- return Title::newFromRedirectArray( $text );
- }
- */
-
- /**
- * @todo: test needs database!
- */
- /*
- public function getUltimateRedirectTarget() {
- $text = $this->getNativeData();
- return Title::newFromRedirectRecurse( $text );
- }
- */
-
- public static function dataIsCountable() {
- return array(
- array( '',
- null,
- 'any',
- true
- ),
- array( 'Foo',
- null,
- 'any',
- true
- ),
- array( 'Foo',
- null,
- 'comma',
- false
- ),
- array( 'Foo, bar',
- null,
- 'comma',
- false
- ),
- array( 'Foo',
- null,
- 'link',
- false
- ),
- array( 'Foo [[bar]]',
- null,
- 'link',
- false
- ),
- array( 'Foo',
- true,
- 'link',
- false
- ),
- array( 'Foo [[bar]]',
- false,
- 'link',
- false
- ),
- array( '#REDIRECT [[bar]]',
- true,
- 'any',
- true
- ),
- array( '#REDIRECT [[bar]]',
- true,
- 'comma',
- false
- ),
- array( '#REDIRECT [[bar]]',
- true,
- 'link',
- false
- ),
- );
- }
-
- public static function dataGetTextForSummary() {
- return array(
- array( "hello\nworld.",
- 16,
- 'hello world.',
- ),
- array( 'hello world.',
- 8,
- 'hello...',
- ),
- array( '[[hello world]].',
- 8,
- '[[hel...',
- ),
- );
- }
-
- public function testMatchMagicWord( ) {
- $mw = MagicWord::get( "staticredirect" );
-
- $content = $this->newContent( "#REDIRECT [[FOO]]\n__STATICREDIRECT__" );
- $this->assertFalse( $content->matchMagicWord( $mw ), "should not have matched magic word, since it's not wikitext" );
- }
-
- public function testUpdateRedirect( ) {
- $target = Title::newFromText( "testUpdateRedirect_target" );
-
- $content = $this->newContent( "#REDIRECT [[Someplace]]" );
- $newContent = $content->updateRedirect( $target );
-
- $this->assertTrue( $content->equals( $newContent ), "content should be unchanged since it's not wikitext" );
- }
-
- public function testGetModel() {
- $content = $this->newContent( "hello world." );
-
- $this->assertEquals( CONTENT_MODEL_JAVASCRIPT, $content->getModel() );
- }
-
- public function testGetContentHandler() {
- $content = $this->newContent( "hello world." );
-
- $this->assertEquals( CONTENT_MODEL_JAVASCRIPT, $content->getContentHandler()->getModelID() );
- }
-
- public static function dataEquals( ) {
- return array(
- array( new JavaScriptContent( "hallo" ), null, false ),
- array( new JavaScriptContent( "hallo" ), new JavaScriptContent( "hallo" ), true ),
- array( new JavaScriptContent( "hallo" ), new CssContent( "hallo" ), false ),
- array( new JavaScriptContent( "hallo" ), new JavaScriptContent( "HALLO" ), false ),
- );
- }
-
-}