]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blob - tests/phpunit/includes/page/WikiPageTestContentHandlerUseDB.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / tests / phpunit / includes / page / WikiPageTestContentHandlerUseDB.php
1 <?php
2
3 /**
4  * @group ContentHandler
5  * @group Database
6  * ^--- important, causes temporary tables to be used instead of the real database
7  */
8 class WikiPageTestContentHandlerUseDB extends WikiPageTest {
9
10         protected function setUp() {
11                 parent::setUp();
12                 $this->setMwGlobals( 'wgContentHandlerUseDB', false );
13
14                 $dbw = wfGetDB( DB_MASTER );
15
16                 $page_table = $dbw->tableName( 'page' );
17                 $revision_table = $dbw->tableName( 'revision' );
18                 $archive_table = $dbw->tableName( 'archive' );
19
20                 if ( $dbw->fieldExists( $page_table, 'page_content_model' ) ) {
21                         $dbw->query( "alter table $page_table drop column page_content_model" );
22                         $dbw->query( "alter table $revision_table drop column rev_content_model" );
23                         $dbw->query( "alter table $revision_table drop column rev_content_format" );
24                         $dbw->query( "alter table $archive_table drop column ar_content_model" );
25                         $dbw->query( "alter table $archive_table drop column ar_content_format" );
26                 }
27         }
28
29         /**
30          * @covers WikiPage::getContentModel
31          */
32         public function testGetContentModel() {
33                 $page = $this->createPage(
34                         "WikiPageTest_testGetContentModel",
35                         "some text",
36                         CONTENT_MODEL_JAVASCRIPT
37                 );
38
39                 $page = new WikiPage( $page->getTitle() );
40
41                 // NOTE: since the content model is not recorded in the database,
42                 //       we expect to get the default, namely CONTENT_MODEL_WIKITEXT
43                 $this->assertEquals( CONTENT_MODEL_WIKITEXT, $page->getContentModel() );
44         }
45
46         /**
47          * @covers WikiPage::getContentHandler
48          */
49         public function testGetContentHandler() {
50                 $page = $this->createPage(
51                         "WikiPageTest_testGetContentHandler",
52                         "some text",
53                         CONTENT_MODEL_JAVASCRIPT
54                 );
55
56                 // NOTE: since the content model is not recorded in the database,
57                 //       we expect to get the default, namely CONTENT_MODEL_WIKITEXT
58                 $page = new WikiPage( $page->getTitle() );
59                 $this->assertEquals( 'WikitextContentHandler', get_class( $page->getContentHandler() ) );
60         }
61 }