assertEquals( "\xc3\xa9cole", Sanitizer::decodeCharReferences( 'école' ), 'decode named entities' ); } function testDecodeNumericEntities() { $this->assertEquals( "\xc4\x88io bonas dans l'\xc3\xa9cole!", Sanitizer::decodeCharReferences( "Ĉio bonas dans l'école!" ), 'decode numeric entities' ); } function testDecodeMixedEntities() { $this->assertEquals( "\xc4\x88io bonas dans l'\xc3\xa9cole!", Sanitizer::decodeCharReferences( "Ĉio bonas dans l'école!" ), 'decode mixed numeric/named entities' ); } function testDecodeMixedComplexEntities() { $this->assertEquals( "\xc4\x88io bonas dans l'\xc3\xa9cole! (mais pas Ĉio dans l'école)", Sanitizer::decodeCharReferences( "Ĉio bonas dans l'école! (mais pas Ĉio dans l'école)" ), 'decode mixed complex entities' ); } function testInvalidAmpersand() { $this->assertEquals( 'a & b', Sanitizer::decodeCharReferences( 'a & b' ), 'Invalid ampersand' ); } function testInvalidEntities() { $this->assertEquals( '&foo;', Sanitizer::decodeCharReferences( '&foo;' ), 'Invalid named entity' ); } function testInvalidNumberedEntities() { $this->assertEquals( UTF8_REPLACEMENT, Sanitizer::decodeCharReferences( "�" ), 'Invalid numbered entity' ); } function testSelfClosingTag() { $GLOBALS['wgUseTidy'] = false; $this->assertEquals( '
Hello world
', Sanitizer::removeHTMLtags( '
Hello world
' ), 'Self-closing closing div' ); } }