| 1 | module main |
| 2 | |
| 3 | import encoding.xml |
| 4 | |
| 5 | fn 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 | |
| 20 | fn 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 | |