@@ -314,214 +314,22 @@ pub const Document = struct {
314314};
315315
316316const testing = @import ("../../testing.zig" );
317- test "Browser.DOM.Document" {
318- var runner = try testing .jsRunner (testing .tracking_allocator , .{
319- .url = "about:blank" ,
320- });
321- defer runner .deinit ();
322-
323- try runner .testCases (&.{
324- .{ "document.__proto__.__proto__.constructor.name" , "Document" },
325- .{ "document.__proto__.__proto__.__proto__.constructor.name" , "Node" },
326- .{ "document.__proto__.__proto__.__proto__.__proto__.constructor.name" , "EventTarget" },
327-
328- .{ "let newdoc = new Document()" , "undefined" },
329- .{ "newdoc.documentElement" , "null" },
330- .{ "newdoc.children.length" , "0" },
331- .{ "newdoc.getElementsByTagName('*').length" , "0" },
332- .{ "newdoc.getElementsByTagName('*').item(0)" , "null" },
333- .{ "newdoc.inputEncoding === document.inputEncoding" , "true" },
334- .{ "newdoc.documentURI === document.documentURI" , "true" },
335- .{ "newdoc.URL === document.URL" , "true" },
336- .{ "newdoc.compatMode === document.compatMode" , "true" },
337- .{ "newdoc.characterSet === document.characterSet" , "true" },
338- .{ "newdoc.charset === document.charset" , "true" },
339- .{ "newdoc.contentType === document.contentType" , "true" },
340- }, .{});
341-
342- try runner .testCases (&.{
343- .{ "let getElementById = document.getElementById('content')" , "undefined" },
344- .{ "getElementById.constructor.name" , "HTMLDivElement" },
345- .{ "getElementById.localName" , "div" },
346- }, .{});
347-
348- try runner .testCases (&.{
349- .{ "let getElementsByTagName = document.getElementsByTagName('p')" , "undefined" },
350- .{ "getElementsByTagName.length" , "2" },
351- .{ "getElementsByTagName.item(0).localName" , "p" },
352- .{ "getElementsByTagName.item(1).localName" , "p" },
353- .{ "let getElementsByTagNameAll = document.getElementsByTagName('*')" , "undefined" },
354- .{ "getElementsByTagNameAll.length" , "8" },
355- .{ "getElementsByTagNameAll.item(0).localName" , "html" },
356- .{ "getElementsByTagNameAll.item(7).localName" , "p" },
357- .{ "getElementsByTagNameAll.namedItem('para-empty-child').localName" , "span" },
358- }, .{});
359-
360- try runner .testCases (&.{
361- .{ "let ok = document.getElementsByClassName('ok')" , "undefined" },
362- .{ "ok.length" , "2" },
363- .{ "let empty = document.getElementsByClassName('empty')" , "undefined" },
364- .{ "empty.length" , "1" },
365- .{ "let emptyok = document.getElementsByClassName('empty ok')" , "undefined" },
366- .{ "emptyok.length" , "1" },
367- }, .{});
368-
369- try runner .testCases (&.{
370- .{ "let e = document.documentElement" , "undefined" },
371- .{ "e.localName" , "html" },
372- }, .{});
373-
374- try runner .testCases (&.{
375- .{ "document.characterSet" , "UTF-8" },
376- .{ "document.charset" , "UTF-8" },
377- .{ "document.inputEncoding" , "UTF-8" },
378- }, .{});
379-
380- try runner .testCases (&.{
381- .{ "document.compatMode" , "CSS1Compat" },
382- }, .{});
383-
384- try runner .testCases (&.{
385- .{ "document.contentType" , "text/html" },
386- }, .{});
387-
388- try runner .testCases (&.{
389- .{ "document.documentURI" , "about:blank" },
390- .{ "document.URL" , "about:blank" },
391- }, .{});
392-
393- try runner .testCases (&.{
394- .{ "let impl = document.implementation" , "undefined" },
395- }, .{});
396-
397- try runner .testCases (&.{
398- .{ "let d = new Document()" , "undefined" },
399- .{ "d.characterSet" , "UTF-8" },
400- .{ "d.URL" , "about:blank" },
401- .{ "d.documentURI" , "about:blank" },
402- .{ "d.compatMode" , "CSS1Compat" },
403- .{ "d.contentType" , "text/html" },
404- }, .{});
405-
406- try runner .testCases (&.{
407- .{ "var v = document.createDocumentFragment()" , "undefined" },
408- .{ "v.nodeName" , "#document-fragment" },
409- }, .{});
410-
411- try runner .testCases (&.{
412- .{ "var v = document.createTextNode('foo')" , "undefined" },
413- .{ "v.nodeName" , "#text" },
414- }, .{});
415-
416- try runner .testCases (&.{
417- .{ "var v = document.createCDATASection('foo')" , "undefined" },
418- .{ "v.nodeName" , "#cdata-section" },
419- }, .{});
420-
421- try runner .testCases (&.{
422- .{ "var v = document.createComment('foo')" , "undefined" },
423- .{ "v.nodeName" , "#comment" },
424- .{ "let v2 = v.cloneNode()" , "undefined" },
425- }, .{});
426-
427- try runner .testCases (&.{
428- .{ "let pi = document.createProcessingInstruction('foo', 'bar')" , "undefined" },
429- .{ "pi.target" , "foo" },
430- .{ "let pi2 = pi.cloneNode()" , "undefined" },
431- }, .{});
432-
433- try runner .testCases (&.{
434- .{ "let nimp = document.getElementById('content')" , "undefined" },
435- .{ "var v = document.importNode(nimp)" , "undefined" },
436- .{ "v.nodeName" , "DIV" },
437- }, .{});
438-
439- try runner .testCases (&.{
440- .{ "var v = document.createAttribute('foo')" , "undefined" },
441- .{ "v.nodeName" , "foo" },
442- }, .{});
443-
444- try runner .testCases (&.{
445- .{ "document.children.length" , "1" },
446- .{ "document.children.item(0).nodeName" , "HTML" },
447- .{ "document.firstElementChild.nodeName" , "HTML" },
448- .{ "document.lastElementChild.nodeName" , "HTML" },
449- .{ "document.childElementCount" , "1" },
450-
451- .{ "let nd = new Document()" , "undefined" },
452- .{ "nd.children.length" , "0" },
453- .{ "nd.children.item(0)" , "null" },
454- .{ "nd.firstElementChild" , "null" },
455- .{ "nd.lastElementChild" , "null" },
456- .{ "nd.childElementCount" , "0" },
457-
458- .{ "let emptydoc = document.createElement('html')" , "undefined" },
459- .{ "emptydoc.prepend(document.createElement('html'))" , "undefined" },
460-
461- .{ "let emptydoc2 = document.createElement('html')" , "undefined" },
462- .{ "emptydoc2.append(document.createElement('html'))" , "undefined" },
463- }, .{});
464-
465- try runner .testCases (&.{
466- .{ "document.querySelector('')" , "null" },
467- .{ "document.querySelector('*').nodeName" , "HTML" },
468- .{ "document.querySelector('#content').id" , "content" },
469- .{ "document.querySelector('#para').id" , "para" },
470- .{ "document.querySelector('.ok').id" , "link" },
471- .{ "document.querySelector('a ~ p').id" , "para-empty" },
472- .{ "document.querySelector(':root').nodeName" , "HTML" },
473-
474- .{ "document.querySelectorAll('p').length" , "2" },
475- .{
476- \\ Array.from(document.querySelectorAll('#content > p#para-empty'))
477- \\ .map(row => row.querySelector('span').textContent)
478- \\ .length;
479- ,
480- "1" ,
481- },
482-
483- .{ "document.querySelectorAll('.\\\\ :popover-open').length" , "0" },
484- .{ "document.querySelectorAll('.foo\\\\ :bar').length" , "0" },
485- }, .{});
486-
487- try runner .testCases (&.{
488- .{ "document.activeElement === document.body" , "true" },
489- .{ "document.getElementById('link').focus()" , "undefined" },
490- .{ "document.activeElement === document.getElementById('link')" , "true" },
491- }, .{});
492-
493- try runner .testCases (&.{
494- .{ "document.styleSheets.length" , "0" },
495- }, .{});
496-
497- // this test breaks the doc structure, keep it at the end of the test
498- // suite.
499- try runner .testCases (&.{
500- .{ "let nadop = document.getElementById('content')" , "undefined" },
501- .{ "var v = document.adoptNode(nadop)" , "undefined" },
502- .{ "v.nodeName" , "DIV" },
503- }, .{});
504-
505- try runner .testCases (&.{
506- .{ "const acss = document.adoptedStyleSheets" , null },
507- .{ "acss.length" , "0" },
508- .{ "acss.push(new CSSStyleSheet())" , null },
509- .{ "document.adoptedStyleSheets.length" , "1" },
510- }, .{});
511-
512- const Case = testing .JsRunner .Case ;
513- const tags = comptime parser .Tag .all ();
514- var createElements : [(tags .len ) * 2 ]Case = undefined ;
515- inline for (tags , 0.. ) | tag , i | {
516- const tag_name = @tagName (tag );
517- createElements [i * 2 ] = Case {
518- "var " ++ tag_name ++ "Elem = document.createElement('" ++ tag_name ++ "')" ,
519- "undefined" ,
520- };
521- createElements [(i * 2 ) + 1 ] = Case {
522- tag_name ++ "Elem.localName" ,
523- tag_name ,
524- };
525- }
526- try runner .testCases (& createElements , .{});
317+ test "Browser: DOM.Document" {
318+ try testing .htmlRunner ("dom/document.html" );
319+
320+ // const Case = testing.JsRunner.Case;
321+ // const tags = comptime parser.Tag.all();
322+ // var createElements: [(tags.len) * 2]Case = undefined;
323+ // inline for (tags, 0..) |tag, i| {
324+ // const tag_name = @tagName(tag);
325+ // createElements[i * 2] = Case{
326+ // "var " ++ tag_name ++ "Elem = document.createElement('" ++ tag_name ++ "')",
327+ // "undefined",
328+ // };
329+ // createElements[(i * 2) + 1] = Case{
330+ // tag_name ++ "Elem.localName",
331+ // tag_name,
332+ // };
333+ // }
334+ // try runner.testCases(&createElements, .{});
527335}
0 commit comments