Guest User

Untitled

a guest
Oct 7th, 2011
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 2.61 KB | None | 0 0
  1. diff --git a/tests/resources/testharness.js b/tests/resources/testharness.js
  2. --- a/tests/resources/testharness.js
  3. +++ b/tests/resources/testharness.js
  4. @@ -1348,33 +1348,36 @@ policies and contribution forms [3].
  5.                                       style_element.innerHTML = "table#results > tbody > tr."+result_class+"{display:none}";
  6.                                       output_document.body.appendChild(style_element);
  7.                                   } else if (style_element && input_element.checked) {
  8.                                       style_element.parentNode.removeChild(style_element);
  9.                                   }
  10.                               });
  11.                  });
  12.  
  13. +        // This use of innerHTML plus manual escaping is not recommended in
  14. +        // general, but is necessary here for performance.  Using textContent
  15. +        // on each individual <td> adds tens of seconds of execution time for
  16. +        // large test suites (tens of thousands of tests).
  17.          log.appendChild(document.createElement("section"));
  18.          var html = "<h2>Details</h2><table id=results>"
  19.              + "<thead><tr><th>Result</th><th>Test Name</th><th>Message</th></tr></thead>"
  20.              + "<tbody>";
  21.          for (var i = 0; i < tests.length; i++) {
  22. -            html += "<tr><td></td><td></td><td></td></tr>";
  23. +            html += '<tr class="'
  24. +                + status_class(status_text[tests[i].status])
  25. +                + '"><td>'
  26. +                + status_text[tests[i].status]
  27. +                + "</td><td>"
  28. +                + tests[i].name.replace(/\&/g, "&amp;").replace(/</g, "&lt;")
  29. +                + "</td><td>"
  30. +                + (tests[i].message ? tests[i].message.replace(/\&/g, "&amp;").replace(/</g, "&lt;") : " ")
  31. +                + "</td></tr>";
  32.          }
  33.          log.lastChild.innerHTML = html + "</tbody></table>";
  34. -        var tbody = log.querySelector("tbody");
  35. -        for (var i = 0; i < tests.length; i++)
  36. -        {
  37. -            var tr = tbody.childNodes[i];
  38. -            tr.className = status_class(status_text[tests[i].status]);
  39. -            tr.childNodes[0].textContent = status_text[tests[i].status];
  40. -            tr.childNodes[1].textContent = tests[i].name;
  41. -            tr.childNodes[2].textContent = tests[i].message ? tests[i].message : " ";
  42. -        }
  43.      };
  44.  
  45.      var output = new Output();
  46.      add_start_callback(function (properties) {output.setup(properties);});
  47.      add_result_callback(function (test) {output.show_status(tests);});
  48.      add_completion_callback(function (tests, harness_status) {output.show_results(tests, harness_status);});
  49.  
  50.      /*
  51.  
Advertisement
Add Comment
Please, Sign In to add comment