Index: trunk/phase3/tests/phpunit/includes/parser/PreprocessorTest.php |
— | — | @@ -0,0 +1,81 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +class PreprocessorTest extends MediaWikiTestCase { |
| 5 | + var $mTitle = 'Page title'; |
| 6 | + var $mPPNodeCount = 0; |
| 7 | + var $mOptions; |
| 8 | + |
| 9 | + function setUp() { |
| 10 | + global $wgParserConf; |
| 11 | + $this->mOptions = new ParserOptions(); |
| 12 | + $name = isset( $wgParserConf['preprocessorClass'] ) ? $wgParserConf['preprocessorClass'] : 'Preprocessor_DOM'; |
| 13 | + |
| 14 | + $this->mPreprocessor = new $name( $this ); |
| 15 | + } |
| 16 | + |
| 17 | + function getStripList() { |
| 18 | + return array( 'gallery' ); |
| 19 | + } |
| 20 | + |
| 21 | + function provideCases() { |
| 22 | + return array( |
| 23 | + array( "Foo", "<root>Foo</root>" ), |
| 24 | + array( "<!-- Foo -->", "<root><comment><!-- Foo --></comment></root>" ), |
| 25 | + array( "<!-- Foo --><!-- Bar -->", "<root><comment><!-- Foo --></comment><comment><!-- Bar --></comment></root>" ), |
| 26 | + array( "<!-- Foo --> <!-- Bar -->", "<root><comment><!-- Foo --></comment> <comment><!-- Bar --></comment></root>" ), |
| 27 | + array( "<!-- Foo --> \n <!-- Bar -->", "<root><comment><!-- Foo --></comment> \n <comment><!-- Bar --></comment></root>" ), |
| 28 | + array( "<!-- Foo --> \n <!-- Bar -->\n", "<root><comment><!-- Foo --></comment> \n<comment> <!-- Bar -->\n</comment></root>" ), |
| 29 | + array( "<!-- Foo --> <!-- Bar -->\n", "<root><comment><!-- Foo --></comment> <comment><!-- Bar --></comment>\n</root>" ), |
| 30 | + array( "<!-->Bar", "<root><comment><!-->Bar</comment></root>" ), |
| 31 | + array( "<!-- Comment -- comment", "<root><comment><!-- Comment -- comment</comment></root>" ), |
| 32 | + array( "== Foo ==\n <!-- Bar -->\n== Baz ==\n", "<root><h level=\"2\" i=\"1\">== Foo ==</h>\n<comment> <!-- Bar -->\n</comment><h level=\"2\" i=\"2\">== Baz ==</h>\n</root>" ), |
| 33 | + array( "<gallery/>", "<root><ext><name>gallery</name><attr></attr></ext></root>" ), |
| 34 | + array( "Foo <gallery/> Bar", "<root>Foo <ext><name>gallery</name><attr></attr></ext> Bar</root>" ), |
| 35 | + array( "<gallery></gallery>", "<root><ext><name>gallery</name><attr></attr><inner></inner><close></gallery></close></ext></root>" ), |
| 36 | + array( "<foo> <gallery></gallery>", "<root><foo> <ext><name>gallery</name><attr></attr><inner></inner><close></gallery></close></ext></root>" ), |
| 37 | + array( "<foo> <gallery><gallery></gallery>", "<root><foo> <ext><name>gallery</name><attr></attr><inner><gallery></inner><close></gallery></close></ext></root>" ), |
| 38 | + array( "<noinclude> Foo bar </noinclude>", "<root><ignore><noinclude></ignore> Foo bar <ignore></noinclude></ignore></root>" ), |
| 39 | + array( "<gallery>foo bar", "<root><ext><name>gallery</name><attr></attr><inner>foo bar</inner></ext></root>" ), |
| 40 | + array( "<gallery></gallery</gallery>", "<root><ext><name>gallery</name><attr></attr><inner></gallery</inner><close></gallery></close></ext></root>" ), |
| 41 | + array( "=== Foo === ", "<root><h level=\"3\" i=\"1\">=== Foo === </h></root>" ), |
| 42 | + array( "==<!-- -->= Foo === ", "<root><h level=\"2\" i=\"1\">==<comment><!-- --></comment>= Foo === </h></root>" ), |
| 43 | + array( "=== Foo ==<!-- -->= ", "<root><h level=\"1\" i=\"1\">=== Foo ==<comment><!-- --></comment>= </h></root>" ), |
| 44 | + array( "=== Foo ===<!-- -->\n", "<root><h level=\"3\" i=\"1\">=== Foo ===<comment><!-- --></comment></h>\n</root>" ), |
| 45 | + array( "=== Foo ===<!-- --> <!-- -->\n", "<root><h level=\"3\" i=\"1\">=== Foo ===<comment><!-- --></comment> <comment><!-- --></comment></h>\n</root>" ), |
| 46 | + array( "== Foo ==\n== Bar == \n", "<root><h level=\"2\" i=\"1\">== Foo ==</h>\n<h level=\"2\" i=\"2\">== Bar == </h>\n</root>" ), |
| 47 | + array( "===========", "<root><h level=\"5\" i=\"1\">===========</h></root>" ), |
| 48 | + array( "Foo\n=\n==\n=\n", "<root>Foo\n=\n==\n=\n</root>" ), |
| 49 | + array( "{{Foo}}", "<root><template><title>Foo</title></template></root>" ), |
| 50 | + array( "\n{{Foo}}", "<root>\n<template lineStart=\"1\"><title>Foo</title></template></root>" ), |
| 51 | + array( "{{Foo|bar}}", "<root><template><title>Foo</title><part><name index=\"1\" /><value>bar</value></part></template></root>" ), |
| 52 | + array( "{{Foo|bar}}a", "<root><template><title>Foo</title><part><name index=\"1\" /><value>bar</value></part></template>a</root>" ), |
| 53 | + array( "{{Foo|bar|baz}}", "<root><template><title>Foo</title><part><name index=\"1\" /><value>bar</value></part><part><name index=\"2\" /><value>baz</value></part></template></root>" ), |
| 54 | + array( "{{Foo|1=bar}}", "<root><template><title>Foo</title><part><name>1</name>=<value>bar</value></part></template></root>" ), |
| 55 | + array( "{{Foo|bar=baz}}", "<root><template><title>Foo</title><part><name>bar</name>=<value>baz</value></part></template></root>" ), |
| 56 | + array( "{{Foo|1=bar|baz}}", "<root><template><title>Foo</title><part><name>1</name>=<value>bar</value></part><part><name index=\"1\" /><value>baz</value></part></template></root>" ), |
| 57 | + array( "{{Foo|bar|foo=baz}}", "<root><template><title>Foo</title><part><name index=\"1\" /><value>bar</value></part><part><name>foo</name>=<value>baz</value></part></template></root>" ), |
| 58 | + array( "{{{1}}}", "<root><tplarg><title>1</title></tplarg></root>" ), |
| 59 | + array( "{{{1|}}}", "<root><tplarg><title>1</title><part><name index=\"1\" /><value></value></part></tplarg></root>" ), |
| 60 | + array( "{{{Foo}}}", "<root><tplarg><title>Foo</title></tplarg></root>" ), |
| 61 | + array( "{{{Foo|}}}", "<root><tplarg><title>Foo</title><part><name index=\"1\" /><value></value></part></tplarg></root>" ), |
| 62 | + array( "{{{Foo|bar|baz}}}", "<root><tplarg><title>Foo</title><part><name index=\"1\" /><value>bar</value></part><part><name index=\"2\" /><value>baz</value></part></tplarg></root>" ), |
| 63 | + array( "{<!-- -->{Foo}}", "<root>{<comment><!-- --></comment>{Foo}}</root>" ), |
| 64 | + array( "{{{{Foobar}}}}", "<root>{<tplarg><title>Foobar</title></tplarg>}</root>" ), |
| 65 | + array( "{{{{{Foo}}}}}", "<root><template><title><tplarg><title>Foo</title></tplarg></title></template></root>" ), |
| 66 | + array( "{{{{{Foo}} }}}", "<root><tplarg><title><template><title>Foo</title></template> </title></tplarg></root>" ), |
| 67 | + array( "{{{{{{Foo}}}}}}", "<root><tplarg><title><tplarg><title>Foo</title></tplarg></title></tplarg></root>" ), |
| 68 | + array( "{{{{{{Foo}}}}}", "<root>{<template><title><tplarg><title>Foo</title></tplarg></title></template></root>" ), |
| 69 | + array( "[[[Foo]]", "<root>[[[Foo]]</root>" ), |
| 70 | + /* array( file_get_contents( dirname( __FILE__ ) . '/QuoteQuran.txt' ), file_get_contents( dirname( __FILE__ ) . '/QuoteQuranExpanded.txt' ) ), */ |
| 71 | + ); |
| 72 | + } |
| 73 | + |
| 74 | + /** |
| 75 | + * @dataProvider provideCases |
| 76 | + */ |
| 77 | + function testPreprocessorOutput( $wikiText, $expectedXml ) { |
| 78 | + $this->assertEquals( $expectedXml, $this->mPreprocessor->preprocessToXml( $wikiText ) ); |
| 79 | + } |
| 80 | + |
| 81 | +} |
| 82 | + |
Property changes on: trunk/phase3/tests/phpunit/includes/parser/PreprocessorTest.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 83 | + native |