193fb6ee3Sopenharmony_ciimport * as assert from 'node:assert'; 293fb6ee3Sopenharmony_ciimport { generateLocationInfoParserTests } from 'parse5-test-utils/utils/generate-location-info-parser-tests.js'; 393fb6ee3Sopenharmony_ciimport { generateTestsForEachTreeAdapter } from 'parse5-test-utils/utils/common.js'; 493fb6ee3Sopenharmony_ciimport { parseChunked } from './utils/parse-chunked.js'; 593fb6ee3Sopenharmony_ci 693fb6ee3Sopenharmony_cigenerateLocationInfoParserTests('location-info', (input, opts) => 793fb6ee3Sopenharmony_ci // NOTE: because of performance use bigger chunks here 893fb6ee3Sopenharmony_ci parseChunked({ input }, opts, 100, 400) 993fb6ee3Sopenharmony_ci); 1093fb6ee3Sopenharmony_ci 1193fb6ee3Sopenharmony_cigenerateTestsForEachTreeAdapter('location-info', (treeAdapter) => { 1293fb6ee3Sopenharmony_ci test('Regression - location info for the implicitly generated <body>, <html> and <head> (GH-44)', () => { 1393fb6ee3Sopenharmony_ci const html = '</head><div class="test"></div></body></html>'; 1493fb6ee3Sopenharmony_ci 1593fb6ee3Sopenharmony_ci const opts = { 1693fb6ee3Sopenharmony_ci treeAdapter, 1793fb6ee3Sopenharmony_ci sourceCodeLocationInfo: true, 1893fb6ee3Sopenharmony_ci }; 1993fb6ee3Sopenharmony_ci 2093fb6ee3Sopenharmony_ci const document = parseChunked({ input: html }, opts).node; 2193fb6ee3Sopenharmony_ci const htmlEl = treeAdapter.getChildNodes(document)[0]; 2293fb6ee3Sopenharmony_ci const headEl = treeAdapter.getChildNodes(htmlEl)[0]; 2393fb6ee3Sopenharmony_ci const bodyEl = treeAdapter.getChildNodes(htmlEl)[1]; 2493fb6ee3Sopenharmony_ci 2593fb6ee3Sopenharmony_ci assert.strictEqual(treeAdapter.getNodeSourceCodeLocation(htmlEl), null); 2693fb6ee3Sopenharmony_ci assert.strictEqual(treeAdapter.getNodeSourceCodeLocation(headEl), null); 2793fb6ee3Sopenharmony_ci assert.strictEqual(treeAdapter.getNodeSourceCodeLocation(bodyEl), null); 2893fb6ee3Sopenharmony_ci }); 2993fb6ee3Sopenharmony_ci}); 30