Remove $wgContLanguageCode usage in core.
[lhc/web/wiklou.git] / maintenance / tests / SanitizerTest.php
1 <?php
2
3 class SanitizerTest extends PHPUnit_Framework_TestCase {
4
5 function setUp() {
6 AutoLoader::loadClass( 'Sanitizer' );
7 }
8
9 function testDecodeNamedEntities() {
10 $this->assertEquals(
11 "\xc3\xa9cole",
12 Sanitizer::decodeCharReferences( '&eacute;cole' ),
13 'decode named entities'
14 );
15 }
16
17 function testDecodeNumericEntities() {
18 $this->assertEquals(
19 "\xc4\x88io bonas dans l'\xc3\xa9cole!",
20 Sanitizer::decodeCharReferences( "&#x108;io bonas dans l'&#233;cole!" ),
21 'decode numeric entities'
22 );
23 }
24
25 function testDecodeMixedEntities() {
26 $this->assertEquals(
27 "\xc4\x88io bonas dans l'\xc3\xa9cole!",
28 Sanitizer::decodeCharReferences( "&#x108;io bonas dans l'&eacute;cole!" ),
29 'decode mixed numeric/named entities'
30 );
31 }
32
33 function testDecodeMixedComplexEntities() {
34 $this->assertEquals(
35 "\xc4\x88io bonas dans l'\xc3\xa9cole! (mais pas &#x108;io dans l'&eacute;cole)",
36 Sanitizer::decodeCharReferences(
37 "&#x108;io bonas dans l'&eacute;cole! (mais pas &amp;#x108;io dans l'&#38;eacute;cole)"
38 ),
39 'decode mixed complex entities'
40 );
41 }
42
43 function testInvalidAmpersand() {
44 $this->assertEquals(
45 'a & b',
46 Sanitizer::decodeCharReferences( 'a & b' ),
47 'Invalid ampersand'
48 );
49 }
50
51 function testInvalidEntities() {
52 $this->assertEquals(
53 '&foo;',
54 Sanitizer::decodeCharReferences( '&foo;' ),
55 'Invalid named entity'
56 );
57 }
58
59 function testInvalidNumberedEntities() {
60 $this->assertEquals( UTF8_REPLACEMENT, Sanitizer::decodeCharReferences( "&#88888888888888;" ), 'Invalid numbered entity' );
61 }
62
63 function testSelfClosingTag() {
64 $GLOBALS['wgUseTidy'] = false;
65 $this->assertEquals(
66 '<div>Hello world</div>',
67 Sanitizer::removeHTMLtags( '<div>Hello world</div />' ),
68 'Self-closing closing div'
69 );
70 }
71 }
72