From: mhutti1 Date: Fri, 25 Dec 2015 20:14:02 +0000 (+0100) Subject: Added a simple smoke test for export X-Git-Tag: 1.31.0-rc.0~8540 X-Git-Url: http://git.cyclocoop.org/%22%2C%20generer_url_ecrire%28?a=commitdiff_plain;h=437d48ab681e3f9e2aed34d72b2f20a63ebfff9c;p=lhc%2Fweb%2Fwiklou.git Added a simple smoke test for export Added ExportTest.php to check that exported xml is valid. Bug: T116883 Change-Id: I76151a6ab4f88ab1904627ad1d00ed487d0ab606 --- diff --git a/tests/phpunit/includes/ExportTest.php b/tests/phpunit/includes/ExportTest.php new file mode 100644 index 0000000000..202603030b --- /dev/null +++ b/tests/phpunit/includes/ExportTest.php @@ -0,0 +1,71 @@ + + */ +class ExportTest extends MediaWikiLangTestCase { + + protected function setUp() { + parent::setUp(); + $this->setMwGlobals( array( + 'wgContLang' => Language::factory( 'en' ), + 'wgLanguageCode' => 'en', + 'wgCapitalLinks' => true, + ) ); + } + + /** + * @covers WikiExporter::pageByTitle + */ + public function testPageByTitle() { + global $wgContLang; + $pageTitle = 'UTPage'; + + $exporter = new WikiExporter( + $this->db, + WikiExporter::FULL + ); + + $title = Title::newFromText( $pageTitle ); + + ob_start(); + $exporter->openStream(); + $exporter->pageByTitle( $title ); + $exporter->closeStream(); + $xmlString = ob_get_clean(); + + // This throws error if invalid xml output + $xmlObject = simplexml_load_string( $xmlString ); + + /** + * Check namespaces match xml + * FIXME: PHP 5.3 support. When we don't support PHP 5.3, + * add ->namespace to object and remove from array + */ + $xmlNamespaces = (array) $xmlObject->siteinfo->namespaces; + $xmlNamespaces = str_replace( ' ', '_', $xmlNamespaces['namespace'] ); + unset ( $xmlNamespaces[ '@attributes' ] ); + foreach ( $xmlNamespaces as &$namespaceObject ) { + if ( is_object( $namespaceObject ) ) { + $namespaceObject = ''; + } + } + + $actualNamespaces = (array) $wgContLang->getNamespaces(); + $actualNamespaces = array_values( $actualNamespaces ); + $this->assertEquals( $actualNamespaces, $xmlNamespaces ); + + // Check xml page title correct + $xmlTitle = (array) $xmlObject->page->title; + $this->assertEquals( $pageTitle, $xmlTitle[0] ); + + // Check xml page text is not empty + $text = (array) $xmlObject->page->revision->text; + $this->assertNotEquals( '', $text[0] ); + } + +}