import { htmlentity } from './htmlentity';
import { some } from '../../combinator';
import { input } from '../context';
import { inspect } from '../../debug.test';
describe('Unit: parser/inline/htmlentity', () => {
describe('htmlentity', () => {
const parser = some(htmlentity);
it('invalid', () => {
assert.deepStrictEqual(inspect(parser, input('')), undefined);
assert.deepStrictEqual(inspect(parser, input('&')), [['&'], '']);
assert.deepStrictEqual(inspect(parser, input('&')), [['&'], '']);
assert.deepStrictEqual(inspect(parser, input('&;')), [['&'], ';']);
assert.deepStrictEqual(inspect(parser, input('& ;')), [['&'], ' ;']);
assert.deepStrictEqual(inspect(parser, input('&\n;')), [['&'], '\n;']);
assert.deepStrictEqual(inspect(parser, input('&a;')), [['&a;'], '']);
assert.deepStrictEqual(inspect(parser, input('')), [['&'], '#;']);
assert.deepStrictEqual(inspect(parser, input('g;')), [['&'], '#g;']);
assert.deepStrictEqual(inspect(parser, input('')), [['&'], '#x;']);
assert.deepStrictEqual(inspect(parser, input('-1;')), [['&'], '#-1;']);
assert.deepStrictEqual(inspect(parser, input('&&;')), [['&', '&'], ';']);
assert.deepStrictEqual(inspect(parser, input('&*&*')), [['&'], '*&*']);
assert.deepStrictEqual(inspect(parser, input('&<;')), [['&'], '<;']);
assert.deepStrictEqual(inspect(parser, input('&<>;')), [['&'], '<>;']);
assert.deepStrictEqual(inspect(parser, input('&>;')), [['&'], '>;']);
assert.deepStrictEqual(inspect(parser, input('#')), [['&'], '#35;']);
assert.deepStrictEqual(inspect(parser, input('Ӓ')), [['&'], '#1234;']);
assert.deepStrictEqual(inspect(parser, input('Ϡ')), [['&'], '#992;']);
assert.deepStrictEqual(inspect(parser, input('')), [['&'], '#98765432;']);
assert.deepStrictEqual(inspect(parser, input('')), [['&'], '#0;']);
assert.deepStrictEqual(inspect(parser, input('"')), [['&'], '#X22;']);
assert.deepStrictEqual(inspect(parser, input('ആ')), [['&'], '#XD06;']);
assert.deepStrictEqual(inspect(parser, input('ಫ')), [['&'], '#xcab;']);
assert.deepStrictEqual(inspect(parser, input('
')), [['
'], '']);
assert.deepStrictEqual(inspect(parser, input(' &')), undefined);
});
it('entity', () => {
assert.deepStrictEqual(inspect(parser, input(' ')), [['\u00A0'], '']);
assert.deepStrictEqual(inspect(parser, input('&')), [['&'], '']);
assert.deepStrictEqual(inspect(parser, input('©')), [['©'], '']);
assert.deepStrictEqual(inspect(parser, input('Æ')), [['Æ'], '']);
assert.deepStrictEqual(inspect(parser, input('Ď')), [['Ď'], '']);
assert.deepStrictEqual(inspect(parser, input('¾')), [['¾'], '']);
assert.deepStrictEqual(inspect(parser, input('ℋ')), [['ℋ'], '']);
assert.deepStrictEqual(inspect(parser, input('ⅆ')), [['ⅆ'], '']);
assert.deepStrictEqual(inspect(parser, input('∲')), [['∲'], '']);
assert.deepStrictEqual(inspect(parser, input('≧̸')), [['≧̸'], '']);
});
});
});