> htmlhint@1.0.0 test > mocha --recursive "./test/**/*.spec.js" CLI Formatter: checkstyle 1) should have stdout output with formatter checkstyle CLI Formatter: compact 2) should have stdout output with formatter compact CLI Formatter: default 3) should have stdout output with formatter default CLI Formatter: html 4) should have stdout output with formatter html CLI Formatter: json 5) should have stdout output with formatter json CLI Formatter: junit 6) should have stdout output with formatter junit CLI Formatter: markdown 7) should have stdout output with formatter markdown CLI Formatter: unix 8) should have stdout output with formatter unix Core ✔ Set false to rule no effected should result in an error ✔ Not load default ruleset when use undefined ruleset should result in an error (43ms) ✔ Not load default ruleset when use empty ruleset should result in an error ✔ Inline ruleset not worked should result in an error ✔ Show formatted result should not result in an error Executable 9) should close stream before exit 10) should have stdout output with formatter checkstyle 11) should have stdout output with formatter compact 12) should have stdout output with formatter default 13) should have stdout output with formatter html 14) should have stdout output with formatter json 15) should have stdout output with formatter junit 16) should have stdout output with formatter markdown 17) should have stdout output with formatter unix HTMLParser: Base parse ✔ should parse html code1 (90ms) HTMLParser: Object parse ✔ should parse doctype: HTML Strict DTD ✔ should parse doctype: HTML Transitional DTD ✔ should parse doctype: HTML Frameset DTD ✔ should parse doctype: XHTML 1.0 Strict ✔ should parse doctype: XHTML 1.0 Transitional ✔ should parse doctype: XHTML 1.0 Frameset ✔ should parse doctype: XHTML 1.1 ✔ should parse doctype: html5 ✔ should parse start tag:

✔ should not parse start tag:

✔ should not parse start tag:
✔ should not parse start tag:
✔ should not parse start tag:
✔ should not parse start tag:
✔ should parse tag attrs (53ms) ✔ should parse end tag ✔ should parse selfclose tag ✔ should parse text ✔ should parse text in last ✔ should parse comment ✔ should parse cdata: script ✔ should parse cdata: style HTMLParser: Case parse ✔ should parse special end tag ✔ should parse special no quotes tags ✔ should parse special tag inside script template ✔ should parse special empty attr Rules: alt-require ✔ Img tag have empty alt attribute should not result in an error ✔ Img tag have non empty alt attribute should not result in an error ✔ Img tag have not alt attribute should result in an error ✔ A tag have not alt attribute should not result in an error ✔ Area tag have not href and alt attributes should not result in an error ✔ Area[href] tag have not alt attribute should result in an error ✔ Area[href] tag have empty alt attribute should result in an error ✔ Area[href] tag have non empty alt attribute should not result in an error ✔ Input tag have not type and alt attributes should not result in an error ✔ Input[type="text"] tag have not alt attribute should not result in an error ✔ Input[type="image"] tag have not alt attribute should result in an error ✔ Input[type="image"] tag have empty alt attribute should result in an error ✔ Input[type="image"] tag have non empty alt attribute should not result in an error Rules: attr-lowercase ✔ Not all lowercase attr should result in an error (41ms) ✔ Lowercase attr should not result in an error ✔ Set is false should not result in an error ✔ Set to array list should not result in an error ✔ Set to array list with RegExp should not result in an error ✔ Set to array list with regex string should not result in an error Rules: attr-no-duplication ✔ Attribute name been duplication should result in an error ✔ Attribute name not been duplication should not result in an error Rules: attr-no-unnecessary-whitespace ✔ Attribute with spaces should result in an error (46ms) ✔ Attribute without spaces should not result in an error Rules: attr-sorted ✔ Attribute unsorted tags must result in an error ✔ Attribute unsorted tags that are unrecognizable should not throw error ✔ Attribute unsorted of tags of various types should throw error Rules: attr-unsafe-chars ✔ Attribute value have unsafe chars should result in an error ✔ Attribute value have no unsafe chars should not result in an error ✔ Attribute value have \r\n\t should not result in an error Rules: attr-value-double-quotes ✔ Attribute value closed by single quotes should result in an error ✔ Attribute value no closed should not result in an error Rules: attr-value-not-empty ✔ Attribute value have no value should result in an error ✔ Attribute value closed by quote but no value should not result in an error ✔ Attribute value closed by quote and have value should not result in an error Rules: attr-value-single-quotes ✔ Attribute value closed by double quotes should result in an error ✔ Attribute value no closed should not result in an error Rules: attr-whitespace ✔ Double spaces in attributes should result in an error ✔ Leading/trailing white space should result in an error ✔ Double spaces and leading/trailing white space should result in an error Rules: default ✔ should result 3 errors Rules: doctype-first ✔ Doctype not be first should result in an error ✔ Doctype be first should not result in an error Rules: doctype-html5 ✔ Doctype not html5 should result in an error ✔ Doctype html5 should not result in an error Rules: empty-tag-not-self-closed ✔ The empty tag no closed should not result in an error ✔ Closed empty tag should result in an error Rules: head-script-disabled ✔ External script in head should result in an error ✔ Internal Script in head should result in an error ✔ Script in body not result in an error ✔ Template script in head not result in an error ✔ No head not result in an error Rules: head-script-disabled ✔ External script in head should result in an error ✔ Internal Script in head should result in an error ✔ Script in body not result in an error ✔ Template script in head not result in an error ✔ No head not result in an error Rules: href-abs-or-rel ✔ Href value is not absolute with abs mode should result in an error ✔ Href value is absolute with abs mode should not result in an error ✔ Href value is not relative with rel mode should result in an error ✔ Href value is relative with rel mode should not result in an error Rules: html-lang-require ✔ All the rest(non HTML) tags should not result in an error ✔ HTML tag have no a lang attribute should result in an error ✔ HTML tag have an empty lang attribute should result in an error ✔ HTML tag have an invalid lang attribute should result in an error ✔ HTML tag have an non empty and valid(en-EN) lang attribute should not result in an error ✔ HTML tag have an non empty and valid(en) lang attribute should not result in an error Rules: id-class-ad-disabled ✔ Id use ad keyword should result in an error (97ms) ✔ Class use ad keyword should result in an error (86ms) ✔ Id and class no ad keyword used should not result in an error Rules: id-class-value ✔ Id and class value be not lower case and split by underline should result in an error ✔ Id and class value be lower case and split by underline should not result in an error ✔ Id and class value be not lower case and split by dash should result in an error ✔ Id and class value be lower case and split by dash should not result in an error ✔ Id and class value be not meet hump style should result in an error ✔ Id and class value be meet hump style should not result in an error ✔ Id and class value be not meet regexp should result in an error ✔ Id and class value be meet regexp should not result in an error Rules: id-unique ✔ Id redefine should result in an error ✔ Id no redefine should not result in an error Rules: inline-script-disabled ✔ Inline on event should result in an error ✔ onttt should not result in an error ✔ Javascript protocol [ javascript: ] should result in an error Rules: inline-style-disabled ✔ Inline style should result in an error Rules: input-requires-label Successful cases ✔ Input tag with a matching label before should result in no error ✔ Input tag with a matching label after should result in no error Error cases ✔ Input tag with no matching label should result in an error ✔ Input tag with label that doesn't match id should result in error ✔ Input tag with blank label:for should result in error ✔ Input tag with no id should result in error Rules: script-disabled ✔ Add external script file should result in an error ✔ Add inline script should result in an error Rules: space-tab-mixed-disabled ✔ Spaces and tabs mixed in front of line should result in an error (56ms) ✔ Only spaces in front of line should not result in an error ✔ Only tabs in front of line should not result in an error ✔ Not only space in front of line should result in an error ✔ Not only space and 4 length in front of line should result in an error ✔ Only space and 4 length in front of line should not result in an error ✔ Not only space and 5 length in front of line should result in an error ✔ Only space and 5 length in front of line should not result in an error ✔ Only space in front of line should not result in an error ✔ Not only tab in front of line should result in an error ✔ Only tab in front of line should not result in an error Rules: spec-char-escape ✔ Special characters: <> should result in an error ✔ Special characters: & should result in an error ✔ Normal text should not result in an error ✔ Properly formed HTML entities should not result in an error Rules: src-not-empty ✔ Src be empty should result in an error ✔ Src be non-empty should not result in an error ✔ Src be not set value should not result in an error Rules: style-disabled ✔ Style tag should result in an error ✔ Stylesheet link should not result in an error Rules: tag-pair ✔ No end tag should result in an error ✔ No start tag should result in an error ✔ Tag be paired should not result in an error Rules: tag-self-close ✔ The empty tag no closed should result in an error ✔ Closed empty tag should not result in an error Rules: tagname-lowercase ✔ The tag name not all lower case should result in an error (41ms) ✔ All lower case tag name should not result in an error Rules: tagname-specialchars ✔ Special character in tag name should result in an error ✔ Tag name without special character should not result in an error Rules: tags-check ✔ Tag should have required attrs [title, href] ✔ Tag should not be selfclosing ✔ Tag should be selfclosing ✔ Should check optional attributes ✔ Should check redundant attributes ✔ Should be extendable through config ✔ Should check required attributes with specified values Rules: title-require ✔ be present in <head> tag should not result in an error ✔ <title> not be present in <head> tag should result in an error ✔ No head should not result in an error ✔ <title> is empty should result in an error 164 passing (38s) 17 failing 1) CLI Formatter: checkstyle should have stdout output with formatter checkstyle: Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/build/htmlhint/src/HTMLHint/test/cli/formatters/checkstyle.spec.js) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7) 2) CLI Formatter: compact should have stdout output with formatter compact: Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/build/htmlhint/src/HTMLHint/test/cli/formatters/compact.spec.js) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7) 3) CLI Formatter: default should have stdout output with formatter default: Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/build/htmlhint/src/HTMLHint/test/cli/formatters/default.spec.js) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7) 4) CLI Formatter: html should have stdout output with formatter html: Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/build/htmlhint/src/HTMLHint/test/cli/formatters/html.spec.js) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7) 5) CLI Formatter: json should have stdout output with formatter json: Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/build/htmlhint/src/HTMLHint/test/cli/formatters/json.spec.js) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7) 6) CLI Formatter: junit should have stdout output with formatter junit: Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/build/htmlhint/src/HTMLHint/test/cli/formatters/junit.spec.js) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7) 7) CLI Formatter: markdown should have stdout output with formatter markdown: Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/build/htmlhint/src/HTMLHint/test/cli/formatters/markdown.spec.js) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7) 8) CLI Formatter: unix should have stdout output with formatter unix: Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/build/htmlhint/src/HTMLHint/test/cli/formatters/unix.spec.js) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7) 9) Executable should close stream before exit: Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/build/htmlhint/src/HTMLHint/test/executable.spec.js) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7) 10) Executable should have stdout output with formatter checkstyle: Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/build/htmlhint/src/HTMLHint/test/executable.spec.js) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7) 11) Executable should have stdout output with formatter compact: Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/build/htmlhint/src/HTMLHint/test/executable.spec.js) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7) 12) Executable should have stdout output with formatter default: Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/build/htmlhint/src/HTMLHint/test/executable.spec.js) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7) 13) Executable should have stdout output with formatter html: Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/build/htmlhint/src/HTMLHint/test/executable.spec.js) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7) 14) Executable should have stdout output with formatter json: Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/build/htmlhint/src/HTMLHint/test/executable.spec.js) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7) 15) Executable should have stdout output with formatter junit: Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/build/htmlhint/src/HTMLHint/test/executable.spec.js) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7) 16) Executable should have stdout output with formatter markdown: Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/build/htmlhint/src/HTMLHint/test/executable.spec.js) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7) 17) Executable should have stdout output with formatter unix: Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/build/htmlhint/src/HTMLHint/test/executable.spec.js) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7) ==> ERROR: A failure occurred in check().  Aborting...