2012-04-23 17:13:54 +00:00
|
|
|
<?php
|
|
|
|
|
|
2012-05-13 22:02:29 +00:00
|
|
|
/**
|
|
|
|
|
* @group ContentHandler
|
|
|
|
|
*/
|
2012-04-23 17:13:54 +00:00
|
|
|
class JavascriptContentTest extends WikitextContentTest {
|
|
|
|
|
|
|
|
|
|
public function newContent( $text ) {
|
|
|
|
|
return new JavascriptContent( $text );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function dataGetParserOutput() {
|
|
|
|
|
return array(
|
2012-08-20 19:33:07 +00:00
|
|
|
array("MediaWiki:Test.js", "hello <world>\n",
|
|
|
|
|
"<pre class=\"mw-code mw-js\" dir=\"ltr\">\nhello <world>\n\n</pre>\n"),
|
2012-04-23 17:13:54 +00:00
|
|
|
// @todo: more...?
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function dataGetSection() {
|
|
|
|
|
return array(
|
|
|
|
|
array( WikitextContentTest::$sections,
|
|
|
|
|
"0",
|
|
|
|
|
null
|
|
|
|
|
),
|
|
|
|
|
array( WikitextContentTest::$sections,
|
|
|
|
|
"2",
|
|
|
|
|
null
|
|
|
|
|
),
|
|
|
|
|
array( WikitextContentTest::$sections,
|
|
|
|
|
"8",
|
|
|
|
|
null
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public 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 ) );
|
|
|
|
|
}
|
|
|
|
|
|
2012-06-12 08:32:42 +00:00
|
|
|
// XXX: currently, preSaveTransform is applied to scripts. this may change or become optional.
|
|
|
|
|
/*
|
2012-04-23 17:13:54 +00:00
|
|
|
public function dataPreSaveTransform() {
|
|
|
|
|
return array(
|
|
|
|
|
array( 'hello this is ~~~',
|
|
|
|
|
"hello this is ~~~",
|
|
|
|
|
),
|
|
|
|
|
array( 'hello \'\'this\'\' is <nowiki>~~~</nowiki>',
|
|
|
|
|
'hello \'\'this\'\' is <nowiki>~~~</nowiki>',
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
}
|
2012-06-12 08:32:42 +00:00
|
|
|
*/
|
2012-04-23 17:13:54 +00:00
|
|
|
|
|
|
|
|
public 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 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 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 function dataGetTextForSummary() {
|
|
|
|
|
return array(
|
|
|
|
|
array( "hello\nworld.",
|
|
|
|
|
16,
|
|
|
|
|
'hello world.',
|
|
|
|
|
),
|
|
|
|
|
array( 'hello world.',
|
|
|
|
|
8,
|
|
|
|
|
'hello...',
|
|
|
|
|
),
|
|
|
|
|
array( '[[hello world]].',
|
|
|
|
|
8,
|
|
|
|
|
'[[hel...',
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# =================================================================================================================
|
|
|
|
|
|
2012-05-13 22:02:29 +00:00
|
|
|
public function testGetModel() {
|
2012-04-23 17:13:54 +00:00
|
|
|
$content = $this->newContent( "hello world." );
|
|
|
|
|
|
2012-05-13 22:02:29 +00:00
|
|
|
$this->assertEquals( CONTENT_MODEL_JAVASCRIPT, $content->getModel() );
|
2012-04-23 17:13:54 +00:00
|
|
|
}
|
|
|
|
|
|
2012-05-13 22:02:29 +00:00
|
|
|
public function testGetContentHandler() {
|
2012-04-23 17:13:54 +00:00
|
|
|
$content = $this->newContent( "hello world." );
|
|
|
|
|
|
2012-05-13 22:02:29 +00:00
|
|
|
$this->assertEquals( CONTENT_MODEL_JAVASCRIPT, $content->getContentHandler()->getModelID() );
|
2012-04-23 17:13:54 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public 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 ),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|