import { expect } from 'chai';
import '../../src/index';
import { DOMParserImpl } from '../../src/parser/dom-parser';
describe('Simple parse tests', () => {
let inc = 0;
const domErrorHandler = function(_level: string, _str: string) {
if (inc++ > 120) throw new Error();
};
it('simple', () => {
const parser = new DOMParser();
const s = '
';
const doc = parser.parseFromString(s, 'text/html');
expect(doc.toString()).to.eq(s.replace('<2', '<2'));
});
it('unclosedFix', () => {
const parser = new DOMParser();
const fileContents = '';
const expected = ' ';
const dom = parser.parseFromString(fileContents, 'text/xml');
expect(dom.toString()).to.eq(expected);
});
it('test', () => {
const parser = new DOMParser();
const fileContents = ' 1$');
});
it('svg test', () => {
const svgCase = [
'',
].join('\n');
const parser = new DOMParserImpl({ locator: {}, errorHandler: domErrorHandler });
const dom = parser.parseFromString(svgCase, 'text/xml');
expect(dom.toString()).to.eq(svgCase.replace(/ \/>/g, '/>'));
});
it.skip('line error', () => {
const xmlLineError = [
'',
' ',
'',
].join('\r\n');
const parser = new DOMParserImpl({ locator: {}, errorHandler: domErrorHandler });
const dom = parser.parseFromString(xmlLineError, 'text/xml');
const node = dom.documentElement.firstChild!.nextSibling!;
expect(node.lineNumber).to.eq(7);
});
});