* @group ContentHandler
* @group Database
* ^--- important, causes temporary tables to be used instead of the real database
+* @group medium
**/
class WikiPageTest extends MediaWikiLangTestCase {
*/
protected function newPage( $title, $model = null ) {
if ( is_string( $title ) ) {
- $title = Title::newFromText( $title );
+ $ns = $this->getDefaultWikitextNS();
+ $title = Title::newFromText( $title, $ns );
}
$p = new WikiPage( $title );
* @return WikiPage
*/
protected function createPage( $page, $text, $model = null ) {
- if ( is_string( $page ) ) {
- $page = Title::newFromText( $page );
- }
-
- if ( $page instanceof Title ) {
+ if ( is_string( $page ) || $page instanceof Title ) {
$page = $this->newPage( $page, $model );
}
}
public function testDoEditContent() {
- $title = Title::newFromText( "WikiPageTest_testDoEditContent" );
-
- $page = $this->newPage( $title );
+ $page = $this->newPage( "WikiPageTest_testDoEditContent" );
+ $title = $page->getTitle();
$content = ContentHandler::makeContent( "[[Lorem ipsum]] dolor sit amet, consetetur sadipscing elitr, sed diam "
. " nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.",
* @dataProvider provideIsCountable
*/
public function testIsCountable( $title, $model, $text, $mode, $expected ) {
- global $wgArticleCountMethod;
+ global $wgContentHandlerUseDB;
+
+ $this->setMwGlobals( 'wgArticleCountMethod', $mode );
- $oldArticleCountMethod = $wgArticleCountMethod;
- $wgArticleCountMethod = $mode;
+ $title = Title::newFromText( $title );
+
+ if ( !$wgContentHandlerUseDB && ContentHandler::getDefaultModelFor( $title ) != $model ) {
+ $this->markTestSkipped( "Can not use non-default content model $model for "
+ . $title->getPrefixedDBkey() . " with \wgArticleCountMethod disabled." );
+ }
$page = $this->createPage( $title, $text, $model );
$hasLinks = wfGetDB( DB_SLAVE )->selectField( 'pagelinks', 1,
$v = $page->isCountable();
$w = $page->isCountable( $editInfo );
- $wgArticleCountMethod = $oldArticleCountMethod;
-
$this->assertEquals( $expected, $v, "isCountable( null ) returned unexpected value " . var_export( $v, true )
. " instead of " . var_export( $expected, true ) . " in mode `$mode` for text \"$text\"" );
public function testGetParserOutput( $model, $text, $expectedHtml ) {
$page = $this->createPage( 'WikiPageTest_testGetParserOutput', $text, $model );
- $opt = new ParserOptions();
+ $opt = $page->makeParserOptions( 'canonical' );
$po = $page->getParserOutput( $opt );
$text = $po->getText();
return $po;
}
+ public function testGetParserOutput_nonexisting( ) {
+ static $count = 0;
+ $count ++;
+
+ $page = new WikiPage( new Title( "WikiPageTest_testGetParserOutput_nonexisting_$count" ) );
+
+ $opt = new ParserOptions();
+ $po = $page->getParserOutput( $opt );
+
+ $this->assertFalse( $po, "getParserOutput() shall return false for non-existing pages." );
+ }
+
+ public function testGetParserOutput_badrev( ) {
+ $page = $this->createPage( 'WikiPageTest_testGetParserOutput', "dummy", CONTENT_MODEL_WIKITEXT );
+
+ $opt = new ParserOptions();
+ $po = $page->getParserOutput( $opt, $page->getLatest() + 1234 );
+
+ //@todo: would be neat to also test deleted revision
+
+ $this->assertFalse( $po, "getParserOutput() shall return false for non-existing revisions." );
+ }
+
static $sections =
"Intro