%PDF- %PDF-
Direktori : /www/varak.net/wiki.varak.net/extensions/MobileFrontend/tests/phpunit/api/ |
Current File : /www/varak.net/wiki.varak.net/extensions/MobileFrontend/tests/phpunit/api/ApiParseExtenderTest.php |
<?php /** * @group MobileFrontend */ class ApiParseExtenderTest extends MediaWikiTestCase { const SECTION_INDICATOR = '<div class="mw-ui-icon mw-ui-icon-element indicator"></div>'; /** * @dataProvider getData * @covers ApiParseExtender::onAPIGetAllowedParams * @covers ApiParseExtender::onAPIAfterExecute */ public function testApi( array $params, $expected ) { $this->setMwGlobals( 'wgMFRemovableClasses', [ 'base' => [ '.nomobile' ] ] ); $this->doTest( $params, $expected ); } private function doTest( array $params, $expected ) { $params += [ 'action' => 'parse', 'wrapoutputclass' => '' ]; $req = new FauxRequest( $params ); $api = new ApiMain( $req ); $api->execute(); $data = $api->getResult()->getResultData( null, [ 'BC' => [], 'Types' => [], ] ); $this->assertFalse( isset( $data['errors'] ) ); $text = preg_replace( "/[\r\n]/", '', trim( $data['parse']['text']['*'] ) ); $expected = preg_replace( "/[\r\n]/", '', trim( $expected ) ); $this->assertEquals( $expected, $text ); } public function getData() { return [ [ [ 'mobileformat' => '', 'text' => "I exist\n\n<span class='nomobile'>I don't</span>" ], '<div class="mf-section-0" id="mf-section-0"><p>I exist</p><p></p></div>' ], [ [ 'mobileformat' => 'html', 'text' => "Lede<h2>Section1</h2>Text<h2>Section2</h2>Text" ], '<div class="mf-section-0" id="mf-section-0"><p>Lede</p></div>' . '<h2 class="section-heading">' . self::SECTION_INDICATOR . '<span class="mw-headline" id="Section1">Section1</span></h2>' . '<div class="mf-section-1" id="mf-section-1"><p>Text</p></div>' . '<h2 class="section-heading">' . self::SECTION_INDICATOR . '<span class="mw-headline" id="Section2">Section2</span></h2>' . '<div class="mf-section-2" id="mf-section-2"><p>Text</p></div>' ], ]; } }