runtests.min.html 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5. <title>Node.js HTML Parser</title>
  6. <style type="text/css">
  7. .good {
  8. color: #363;
  9. }
  10. .bad {
  11. color: #633;
  12. font-style: italic;
  13. }
  14. </style>
  15. <script language="JavaScript">
  16. if ((typeof JSON) != "object") {
  17. var head = document.getElementsByTagName("head")[0];
  18. var script = document.createElement('script');
  19. script.type = "text/javascript";
  20. script.src = "json2.js";
  21. head.insertBefore(script, head.firstChild)
  22. }
  23. </script>
  24. <script language="JavaScript" src="lib/node-htmlparser.min.js"></script>
  25. <script language="JavaScript" src="tests/01-basic.js"></script>
  26. <script language="JavaScript" src="tests/02-single_tag_1.js"></script>
  27. <script language="JavaScript" src="tests/03-single_tag_2.js"></script>
  28. <script language="JavaScript" src="tests/04-unescaped_in_script.js"></script>
  29. <script language="JavaScript" src="tests/05-tags_in_comment.js"></script>
  30. <script language="JavaScript" src="tests/06-comment_in_script.js"></script>
  31. <script language="JavaScript" src="tests/07-unescaped_in_style.js"></script>
  32. <script language="JavaScript" src="tests/08-extra_spaces_in_tag.js"></script>
  33. <script language="JavaScript" src="tests/09-unquoted_attrib.js"></script>
  34. <script language="JavaScript" src="tests/10-singular_attribute.js"></script>
  35. <script language="JavaScript" src="tests/11-text_outside_tags.js"></script>
  36. <script language="JavaScript" src="tests/12-text_only.js"></script>
  37. <script language="JavaScript" src="tests/13-comment_in_text.js"></script>
  38. <script language="JavaScript" src="tests/14-comment_in_text_in_script.js"></script>
  39. <script language="JavaScript" src="tests/15-non-verbose.js"></script>
  40. <script language="JavaScript" src="tests/16-ignore_whitespace.js"></script>
  41. <script language="JavaScript" src="tests/17-xml_namespace.js"></script>
  42. <script language="JavaScript" src="tests/18-enforce_empty_tags.js"></script>
  43. <script language="JavaScript" src="tests/19-ignore_empty_tags.js"></script>
  44. <script language="JavaScript" src="tests/20-rss.js"></script>
  45. <script language="JavaScript" src="tests/21-atom.js"></script>
  46. <!-- //TODO: dynamic loading of test files -->
  47. </head>
  48. <body style="font-size: small; font-family:Arial, Helvetica, sans-serif;">
  49. <script language="JavaScript">
  50. var chunkSize = 5;
  51. var testCount = 0;
  52. var failedCount = 0;
  53. while (Tautologistics.NodeHtmlParser.Tests.length) {
  54. testCount++;
  55. var test = Tautologistics.NodeHtmlParser.Tests.shift();
  56. try {
  57. var handlerCallback = function handlerCallback (error) {
  58. if (error)
  59. document.write("<hr>Handler error: " + error + "<hr>");
  60. }
  61. var handler = (test.type == "rss") ?
  62. new Tautologistics.NodeHtmlParser.RssHandler(handlerCallback, test.options)
  63. :
  64. new Tautologistics.NodeHtmlParser.DefaultHandler(handlerCallback, test.options)
  65. ;
  66. var parser = new Tautologistics.NodeHtmlParser.Parser(handler);
  67. document.write("<b>" + test.name + "</b>: ");
  68. parser.parseComplete(test.html);
  69. var resultComplete = handler.dom;
  70. var chunkPos = 0;
  71. parser.reset();
  72. while (chunkPos < test.html.length) {
  73. parser.parseChunk(test.html.substring(chunkPos, chunkPos + chunkSize));
  74. chunkPos += chunkSize;
  75. }
  76. parser.done();
  77. var resultChunk = handler.dom;
  78. var testResult =
  79. JSON.stringify(resultComplete).toString() === JSON.stringify(test.expected).toString()
  80. &&
  81. JSON.stringify(resultChunk).toString() === JSON.stringify(test.expected).toString()
  82. ;
  83. document.write(testResult ? "<font class='good'>passed</font>" : "<font class='bad'>FAILED</font>");
  84. if (!testResult) {
  85. failedCount++;
  86. document.write("<pre>");
  87. document.write("<b>Complete</b>\n");
  88. document.write(JSON.stringify(resultComplete, null, 2));
  89. document.write("<b>Chunked</b>\n");
  90. document.write(JSON.stringify(resultChunk, null, 2));
  91. document.write("<h2>Expected</h2>\n");
  92. document.write(JSON.stringify(test.expected, null, 2));
  93. document.write("</pre>");
  94. }
  95. } catch (ex) {
  96. document.write("<h1>Exception occured during test: " + ex + "</h1>")
  97. }
  98. document.write("<br>");
  99. }
  100. document.write("<hr>");
  101. document.write("Total tests: " + testCount + "<br>");
  102. document.write("Failed tests: " + failedCount + "<br>");
  103. </script>
  104. </body>
  105. </html>