]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blob - tests/phpunit/includes/ExportTest.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / tests / phpunit / includes / ExportTest.php
1 <?php
2
3 /**
4  * Test class for Export methods.
5  *
6  * @group Database
7  *
8  * @author Isaac Hutt <mhutti1@gmail.com>
9  */
10 class ExportTest extends MediaWikiLangTestCase {
11
12         protected function setUp() {
13                 parent::setUp();
14                 $this->setMwGlobals( [
15                         'wgCapitalLinks' => true,
16                 ] );
17         }
18
19         /**
20          * @covers WikiExporter::pageByTitle
21          */
22         public function testPageByTitle() {
23                 global $wgContLang;
24                 $pageTitle = 'UTPage';
25
26                 $exporter = new WikiExporter(
27                         $this->db,
28                         WikiExporter::FULL
29                 );
30
31                 $title = Title::newFromText( $pageTitle );
32
33                 $sink = new DumpStringOutput;
34                 $exporter->setOutputSink( $sink );
35                 $exporter->openStream();
36                 $exporter->pageByTitle( $title );
37                 $exporter->closeStream();
38
39                 // This throws error if invalid xml output
40                 $xmlObject = simplexml_load_string( $sink );
41
42                 /**
43                  * Check namespaces match xml
44                  */
45                 $xmlNamespaces = (array)$xmlObject->siteinfo->namespaces->namespace;
46                 $xmlNamespaces = str_replace( ' ', '_', $xmlNamespaces );
47                 unset( $xmlNamespaces[ '@attributes' ] );
48                 foreach ( $xmlNamespaces as &$namespaceObject ) {
49                         if ( is_object( $namespaceObject ) ) {
50                                 $namespaceObject = '';
51                         }
52                 }
53
54                 $actualNamespaces = (array)$wgContLang->getNamespaces();
55                 $actualNamespaces = array_values( $actualNamespaces );
56                 $this->assertEquals( $actualNamespaces, $xmlNamespaces );
57
58                 // Check xml page title correct
59                 $xmlTitle = (array)$xmlObject->page->title;
60                 $this->assertEquals( $pageTitle, $xmlTitle[0] );
61
62                 // Check xml page text is not empty
63                 $text = (array)$xmlObject->page->revision->text;
64                 $this->assertNotEquals( '', $text[0] );
65         }
66
67 }