25 lines
1 KiB
JavaScript
25 lines
1 KiB
JavaScript
import { test } from 'node:test'
|
|
import assert from 'node:assert/strict'
|
|
import { decodeXmlEntities } from '#import-recipes/odt/decodeXmlEntities.js'
|
|
|
|
test('decodes the five named XML entities', () => {
|
|
assert.equal(decodeXmlEntities('sel & poivre'), 'sel & poivre')
|
|
assert.equal(decodeXmlEntities('<plat>'), '<plat>')
|
|
assert.equal(decodeXmlEntities('d'huile'), "d'huile")
|
|
assert.equal(decodeXmlEntities('"maison"'), '"maison"')
|
|
})
|
|
|
|
test('decodes decimal and hexadecimal character references', () => {
|
|
assert.equal(decodeXmlEntities('crème'), 'crème')
|
|
assert.equal(decodeXmlEntities('crème'), 'crème')
|
|
assert.equal(decodeXmlEntities('180 °C'), '180 °C')
|
|
})
|
|
|
|
test('leaves unknown or out-of-range references untouched', () => {
|
|
assert.equal(decodeXmlEntities('AT&T é �'), 'AT&T é �')
|
|
})
|
|
|
|
test('returns an empty string for anything that is not a string', () => {
|
|
assert.equal(decodeXmlEntities(null), '')
|
|
assert.equal(decodeXmlEntities(undefined), '')
|
|
})
|