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); }); });