wiki.techinc.nl/tests/phpunit/includes/WikiPageTest_ContentHandlerUseDB.php
daniel cbc2014b2d Use integers for content_model and content_format.
Representing content_model and content_format as integers in the
database was suggested by Asher mainly to save space.

This change entails some refactoring and renaming, but no big
change in logic.
2012-05-14 10:22:52 +02:00

64 lines
2 KiB
PHP

<?php
/**
* @group ContentHandler
* @group Database
* ^--- important, causes temporary tables to be used instead of the real database
*/
class WikiPageTest_ContentHandlerUseDB extends WikiPageTest {
var $saveContentHandlerNoDB = null;
function setUp() {
global $wgContentHandlerUseDB;
parent::setUp();
$this->saveContentHandlerNoDB = $wgContentHandlerUseDB;
$wgContentHandlerUseDB = false;
$dbw = wfGetDB( DB_MASTER );
$page_table = $dbw->tableName( 'page' );
$revision_table = $dbw->tableName( 'revision' );
$archive_table = $dbw->tableName( 'archive' );
if ( $dbw->fieldExists( $page_table, 'page_content_model' ) ) {
$dbw->query( "alter table $page_table drop column page_content_model" );
$dbw->query( "alter table $revision_table drop column rev_content_model" );
$dbw->query( "alter table $revision_table drop column rev_content_format" );
$dbw->query( "alter table $archive_table drop column ar_content_model" );
$dbw->query( "alter table $archive_table drop column ar_content_format" );
}
}
function tearDown() {
global $wgContentHandlerUseDB;
$wgContentHandlerUseDB = $this->saveContentHandlerNoDB;
parent::tearDown();
}
public function testGetContentModel() {
$page = $this->createPage( "WikiPageTest_testGetContentModel", "some text", CONTENT_MODEL_JAVASCRIPT );
$page = new WikiPage( $page->getTitle() );
// NOTE: since the content model is not recorded in the database,
// we expect to get the default, namely CONTENT_MODEL_WIKITEXT
$this->assertEquals( CONTENT_MODEL_WIKITEXT, $page->getContentModel() );
}
public function testGetContentHandler() {
$page = $this->createPage( "WikiPageTest_testGetContentHandler", "some text", CONTENT_MODEL_JAVASCRIPT );
// NOTE: since the content model is not recorded in the database,
// we expect to get the default, namely CONTENT_MODEL_WIKITEXT
$page = new WikiPage( $page->getTitle() );
$this->assertEquals( 'WikitextContentHandler', get_class( $page->getContentHandler() ) );
}
}