Merge "registration: Allow extensions to specify which MW core versions they require"
[lhc/web/wiklou.git] / tests / phpunit / includes / parser / TidyTest.php
1 <?php
2
3 /**
4 * @group Parser
5 */
6 class TidyTest extends MediaWikiTestCase {
7
8 protected function setUp() {
9 parent::setUp();
10 if ( !MWTidy::isEnabled() ) {
11 $this->markTestSkipped( 'Tidy not found' );
12 }
13 }
14
15 /**
16 * @dataProvider provideTestWrapping
17 */
18 public function testTidyWrapping( $expected, $text, $msg = '' ) {
19 $text = MWTidy::tidy( $text );
20 // We don't care about where Tidy wants to stick is <p>s
21 $text = trim( preg_replace( '#</?p>#', '', $text ) );
22 // Windows, we love you!
23 $text = str_replace( "\r", '', $text );
24 $this->assertEquals( $expected, $text, $msg );
25 }
26
27 public static function provideTestWrapping() {
28 $testMathML = <<<'MathML'
29 <math xmlns="http://www.w3.org/1998/Math/MathML">
30 <mrow>
31 <mi>a</mi>
32 <mo>&InvisibleTimes;</mo>
33 <msup>
34 <mi>x</mi>
35 <mn>2</mn>
36 </msup>
37 <mo>+</mo>
38 <mi>b</mi>
39 <mo>&InvisibleTimes; </mo>
40 <mi>x</mi>
41 <mo>+</mo>
42 <mi>c</mi>
43 </mrow>
44 </math>
45 MathML;
46 return array(
47 array(
48 '<mw:editsection page="foo" section="bar">foo</mw:editsection>',
49 '<mw:editsection page="foo" section="bar">foo</mw:editsection>',
50 '<mw:editsection> should survive tidy'
51 ),
52 array(
53 '<editsection page="foo" section="bar">foo</editsection>',
54 '<editsection page="foo" section="bar">foo</editsection>',
55 '<editsection> should survive tidy'
56 ),
57 array( '<mw:toc>foo</mw:toc>', '<mw:toc>foo</mw:toc>', '<mw:toc> should survive tidy' ),
58 array( "<link foo=\"bar\" />\nfoo", '<link foo="bar"/>foo', '<link> should survive tidy' ),
59 array( "<meta foo=\"bar\" />\nfoo", '<meta foo="bar"/>foo', '<meta> should survive tidy' ),
60 array( $testMathML, $testMathML, '<math> should survive tidy' ),
61 );
62 }
63 }