* Port tests from t/inc/
[mediawiki.git] / tests / SanitizerTest.php
blob6fb9d5a59b43887d6682f9694423f450a2b89f8a
1 <?php
3 global $IP;
4 require_once( "$IP/includes/Sanitizer.php" );
6 class SanitizerTest extends PHPUnit_Framework_TestCase {
8 function testDecodeNamedEntities() {
9 $this->assertEquals(
10 "\xc3\xa9cole",
11 Sanitizer::decodeCharReferences( '&eacute;cole' ),
12 'decode named entities'
16 function testDecodeNumericEntities() {
17 $this->assertEquals(
18 "\xc4\x88io bonas dans l'\xc3\xa9cole!",
19 Sanitizer::decodeCharReferences( "&#x108;io bonas dans l'&#233;cole!" ),
20 'decode numeric entities'
24 function testDecodeMixedEntities() {
25 $this->assertEquals(
26 "\xc4\x88io bonas dans l'\xc3\xa9cole!",
27 Sanitizer::decodeCharReferences( "&#x108;io bonas dans l'&eacute;cole!" ),
28 'decode mixed numeric/named entities'
32 function testDecodeMixedComplexEntities() {
33 $this->assertEquals(
34 "\xc4\x88io bonas dans l'\xc3\xa9cole! (mais pas &#x108;io dans l'&eacute;cole)",
35 Sanitizer::decodeCharReferences(
36 "&#x108;io bonas dans l'&eacute;cole! (mais pas &amp;#x108;io dans l'&#38;eacute;cole)"
38 'decode mixed complex entities'
42 function testInvalidAmpersand() {
43 $this->assertEquals(
44 'a & b',
45 Sanitizer::decodeCharReferences( 'a & b' ),
46 'Invalid ampersand'
50 function testInvalidEntities() {
51 $this->assertEquals(
52 '&foo;',
53 Sanitizer::decodeCharReferences( '&foo;' ),
54 'Invalid named entity'
58 function testInvalidNumberedEntities() {
59 $this->assertEquals( UTF8_REPLACEMENT, Sanitizer::decodeCharReferences( "&#88888888888888;" ), 'Invalid numbered entity' );
62 function testSelfClosingTag() {
63 $GLOBALS['wgUseTidy'] = false;
64 $this->assertEquals(
65 '<div>Hello world</div>',
66 Sanitizer::removeHTMLtags( '<div>Hello world</div />' ),
67 'Self-closing closing div'