1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
#!/usr/bin/env php
<?php
require 'Test.php';
plan( 13 );
define( 'MEDIAWIKI', 1 );
require_ok( 'includes/Defines.php' );
require_ok( 'includes/GlobalFunctions.php' );
require_ok( 'includes/Sanitizer.php' );
require_ok( 'includes/normal/UtfNormal.php' );
require_ok( 'includes/ProfilerStub.php' ); # For removeHTMLtags
#
# decodeCharReferences
#
cmp_ok(
Sanitizer::decodeCharReferences( 'école' ),
'==',
"\xc3\xa9cole",
'decode named entities'
);
cmp_ok(
Sanitizer::decodeCharReferences( "Ĉio bonas dans l'école!" ),
'==',
"\xc4\x88io bonas dans l'\xc3\xa9cole!",
'decode numeric entities'
);
cmp_ok(
Sanitizer::decodeCharReferences( "Ĉio bonas dans l'école!" ),
'==',
"\xc4\x88io bonas dans l'\xc3\xa9cole!",
'decode mixed numeric/named entities'
);
cmp_ok(
Sanitizer::decodeCharReferences(
"Ĉio bonas dans l'école! (mais pas &#x108;io dans l'&eacute;cole)"
),
'==',
"\xc4\x88io bonas dans l'\xc3\xa9cole! (mais pas Ĉio dans l'école)",
'decode mixed complex entities'
);
cmp_ok( Sanitizer::decodeCharReferences( 'a & b' ), '==', 'a & b', 'Invalid ampersand' );
cmp_ok( Sanitizer::decodeCharReferences( '&foo;' ), '==', '&foo;', 'Invalid named entity' );
cmp_ok( Sanitizer::decodeCharReferences( "�" ), '==', UTF8_REPLACEMENT, 'Invalid numbered entity' );
$wgUseTidy = false;
cmp_ok(
Sanitizer::removeHTMLtags( '<div>Hello world</div />' ),
'==',
'<div>Hello world</div>',
'Self-closing closing div'
);
|