run.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. var browser = require("../../lib/jsdom/browser");
  2. var dom = browser.browserAugmentation(require("../../lib/jsdom/level2/core").dom.level2.core);
  3. var sys = require("sys");
  4. var doc = new dom.Document("html");
  5. var implementation = new dom.DOMImplementation(doc, {
  6. "HTML" : "1.0",
  7. "DisableLiveLists" : "1.0"
  8. });
  9. var notations = new dom.NotationNodeMap(
  10. doc,
  11. doc.createNotationNode("notation1","notation1File", null),
  12. doc.createNotationNode("notation2",null, "notation2File")
  13. );
  14. // TODO: consider importing the master list of entities
  15. // http://www.w3schools.com/tags/ref_symbols.asp
  16. var entities = new dom.EntityNodeMap(
  17. doc,
  18. doc.createEntityNode("alpha", "α"),
  19. doc.createEntityNode("beta", "β"),
  20. doc.createEntityNode("gamma", "γ"),
  21. doc.createEntityNode("delta", "δ"),
  22. doc.createEntityNode("epsilon", "ε")
  23. );
  24. // <!ATTLIST acronym dir CDATA "ltr">
  25. var defaultAttributes = new dom.NamedNodeMap(doc);
  26. var acronym = doc.createElement("acronym");
  27. acronym.setAttribute("dir", "ltr");
  28. defaultAttributes.setNamedItem(acronym);
  29. var doctype = new dom.DocumentType(doc, "html", entities, notations, defaultAttributes);
  30. doc.doctype = doctype;
  31. doc.implementation = implementation;
  32. doc.appendChild(doc.createComment(" This is comment number 1."));
  33. var html = doc.createElement("html");
  34. var html = doc.appendChild(html);
  35. var head = doc.createElement("head");
  36. var head = html.appendChild(head);
  37. var meta = doc.createElement("meta");
  38. meta.setAttribute("http-equiv", "Content-Type");
  39. meta.setAttribute("content", "text/html; charset=UTF-8");
  40. head.appendChild(meta);
  41. var title = doc.createElement("title")
  42. title.appendChild(doc.createTextNode("hc_staff"));
  43. var title = head.appendChild(title);
  44. // make the tests work....
  45. head.appendChild(doc.createElement("script"));
  46. head.appendChild(doc.createElement("script"));
  47. head.appendChild(doc.createElement("script"));
  48. var body = doc.createElement("body");
  49. var staff = html.appendChild(body);
  50. var employees = [];
  51. var addresses = [];
  52. var names = [];
  53. var positions = [];
  54. var genders = [];
  55. var ids = [];
  56. var salaries = [];
  57. // create 5 employees
  58. for (var i=0; i<5; i++)
  59. {
  60. var employee = doc.createElement("p");
  61. var address = doc.createElement("acronym");
  62. var name = doc.createElement("strong");
  63. var position = doc.createElement("code");
  64. var gender = doc.createElement("var");
  65. var id = doc.createElement("em");
  66. var salary = doc.createElement("sup");
  67. employee.appendChild(doc.createTextNode("\n"));
  68. employee.appendChild(id);
  69. employee.appendChild(doc.createTextNode("\n"));
  70. employee.appendChild(name);
  71. employee.appendChild(doc.createTextNode("\n"));
  72. employee.appendChild(position);
  73. employee.appendChild(doc.createTextNode("\n"));
  74. employee.appendChild(salary);
  75. employee.appendChild(doc.createTextNode("\n"));
  76. employee.appendChild(gender);
  77. employee.appendChild(doc.createTextNode("\n"));
  78. employee.appendChild(address);
  79. employee.appendChild(doc.createTextNode("\n"));
  80. staff.appendChild(employee);
  81. names.push(name);
  82. employees.push(employee);
  83. addresses.push(address);
  84. genders.push(gender);
  85. positions.push(position);
  86. ids.push(id);
  87. salaries.push(salary);
  88. }
  89. ids[0].appendChild(doc.createTextNode("EMP0001"));
  90. salaries[0].appendChild(doc.createTextNode("56,000"));
  91. addresses[0].setAttribute("title", "Yes");
  92. addresses[0].appendChild(doc.createTextNode('1230 North Ave. Dallas, Texas 98551'));
  93. names[0].appendChild(doc.createTextNode("Margaret Martin"));
  94. genders[0].appendChild(doc.createTextNode("Female"));
  95. positions[0].appendChild(doc.createTextNode("Accountant"));
  96. ids[1].appendChild(doc.createTextNode("EMP0002"));
  97. salaries[1].appendChild(doc.createTextNode("35,000"));
  98. addresses[1].setAttribute("title", "Yes");
  99. addresses[1].setAttribute("class", "Yes");
  100. addresses[1].appendChild(doc.createTextNode("β Dallas, γ\n 98554"));
  101. names[1].appendChild(doc.createTextNode("Martha Raynolds"));
  102. //names[1].appendChild(doc.createCDATASection("This is a CDATASection with EntityReference number 2 &amp;ent2;"));
  103. //names[1].appendChild(doc.createCDATASection("This is an adjacent CDATASection with a reference to a tab &amp;tab;"));
  104. genders[1].appendChild(doc.createTextNode("Female"));
  105. positions[1].appendChild(doc.createTextNode("Secretary"));
  106. ids[2].appendChild(doc.createTextNode("EMP0003"));
  107. salaries[2].appendChild(doc.createTextNode("100,000"));
  108. addresses[2].setAttribute("title", "Yes");
  109. addresses[2].setAttribute("class", "No");
  110. addresses[2].appendChild(doc.createTextNode("PO Box 27 Irving, texas 98553"));
  111. names[2].appendChild(doc.createTextNode("Roger\n Jones")) ;
  112. // genders[2].appendChild(doc.createEntityReference("&delta;"));//Text("&delta;"));
  113. positions[2].appendChild(doc.createTextNode("Department Manager"));
  114. ids[3].appendChild(doc.createTextNode("EMP0004"));
  115. ids[3].className = "classy";
  116. salaries[3].appendChild(doc.createTextNode("95,000"));
  117. addresses[3].setAttribute("title", "Yes");
  118. addresses[3].setAttribute("class", "Yα");
  119. addresses[3].appendChild(doc.createTextNode("27 South Road. Dallas, Texas 98556"));
  120. names[3].appendChild(doc.createTextNode("Jeny Oconnor"));
  121. genders[3].appendChild(doc.createTextNode("Female"));
  122. positions[3].appendChild(doc.createTextNode("Personal Director"));
  123. ids[4].appendChild(doc.createTextNode("EMP0005"));
  124. salaries[4].appendChild(doc.createTextNode("90,000"));
  125. addresses[4].setAttribute("title", "No");
  126. addresses[4].id = "theid";
  127. addresses[4].appendChild(doc.createTextNode("1821 Nordic. Road, Irving Texas 98558"));
  128. names[4].appendChild(doc.createTextNode("Robert Myers"));
  129. genders[4].appendChild(doc.createTextNode("male"));
  130. positions[4].appendChild(doc.createTextNode("Computer Specialist"));
  131. //doc.appendChild(doc.createProcessingInstruction("TEST-STYLE", "PIDATA"));
  132. doc.normalize();
  133. var sizzleSandbox = {};
  134. var sizzle = require("./sizzle").sizzleInit(sizzleSandbox, doc);
  135. sys.puts(sys.inspect(sizzle('.classy,p acronym#theid').length));