v2 / vlib / encoding / xml / entity_test.v
35 lines · 27 sloc · 1.58 KB · 35558df96c5c3645143a3b7c80e81c25c1ad90e3
Raw
1module main
2
3import encoding.xml
4
5fn test_escape() {
6 assert xml.escape_text('Normal string') == 'Normal string'
7 assert xml.escape_text('12 < 34') == '12 < 34'
8 assert xml.escape_text('12 > 34') == '12 > 34'
9 assert xml.escape_text('12 & 34') == '12 & 34'
10 assert xml.escape_text('He said, "Very well, let us proceed."') == 'He said, "Very well, let us proceed."'
11 assert xml.escape_text("He said, 'Very well, let us proceed.'") == 'He said, 'Very well, let us proceed.''
12
13 assert xml.escape_text('Do not escape ©.') == 'Do not escape ©.'
14
15 mut reverse_entities := xml.default_entities_reverse.clone()
16 reverse_entities['©'] = 'copy'
17 assert xml.escape_text('Do escape ©.', reverse_entities: reverse_entities) == 'Do escape ©.'
18}
19
20fn test_unescape() ! {
21 assert xml.unescape_text('Normal string')! == 'Normal string'
22 assert xml.unescape_text('12 < 34')! == '12 < 34'
23 assert xml.unescape_text('12 > 34')! == '12 > 34'
24 assert xml.unescape_text('12 & 34')! == '12 & 34'
25 assert xml.unescape_text('He said, "Very well, let us proceed."')! == 'He said, "Very well, let us proceed."'
26 assert xml.unescape_text('He said, 'Very well, let us proceed.'')! == "He said, 'Very well, let us proceed.'"
27
28 xml.unescape_text('12 &invalid; 34') or { assert err.msg() == 'Unknown entity: invalid' }
29
30 xml.unescape_text('Do not unescape ©') or { assert err.msg() == 'Unknown entity: copy' }
31
32 mut entities := xml.default_entities.clone()
33 entities['copy'] = '©'
34 assert xml.unescape_text('Do unescape ©.', entities: entities)! == 'Do unescape ©.'
35}
36