Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2011
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 3.31 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. @@ -1341,39 +1341,41 @@ 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. -        var template = ["section", {},
  14. -                        ["h2", {}, "Details"],
  15. -                        ["table", {"id":"results"},
  16. -                        ["tr", {},
  17. -                         ["th", {}, "Result"],
  18. -                         ["th", {}, "Test Name"],
  19. -                         ["th", {}, "Message"]
  20. -                        ],
  21. -                        ["tbody", {},
  22. -                        function(vars) {
  23. -                            var rv = map(vars.tests, function(test) {
  24. -                                             var status = status_text[test.status];
  25. -                                             return  ["tr", {"class":status_class(status)},
  26. -                                                      ["td", {}, status],
  27. -                                                      ["td", {}, test.name],
  28. -                                                      ["td", {}, test.message ? test.message : " "]
  29. -                                                     ];
  30. -                                         });
  31. -                            return rv;
  32. -                        }]
  33. -                       ]];
  34. +        var section = document.createElement("section");
  35. +        log.appendChild(section);
  36. +        // The table might have tens of thousands of rows.  Build it using
  37. +        // string concatenation and append all at once for performance's sake.
  38. +        var html = "<h2>Details</h2><table id=results><tr><th>Result<th>Test Name<th>Message<tbody>";
  39.  
  40. -        log.appendChild(render(template, {tests:tests}, output_document));
  41. +        var escape_html = function(input) {
  42. +                // Warning: only use in attributes if they're double-quoted.
  43. +                return input
  44. +                    .replace(/\&/g, "&amp;")
  45. +                    .replace(/</g, "&lt;")
  46. +                    .replace(/"/g, "&quot;");
  47. +            };
  48. +
  49. +        for (var i = 0; i < tests.length; i++)
  50. +        {
  51. +            html += '<tr class="'
  52. +                + escape_html(status_class(status_text[tests[i].status]))
  53. +                + '">'
  54. +                + '<td>' + escape_html(status_text[tests[i].status])
  55. +                + '<td>' + escape_html(tests[i].name)
  56. +                + '<td>' + escape_html(tests[i].message ? tests[i].message : " ");
  57. +        }
  58. +
  59. +        section.innerHTML = html;
  60.      };
  61.  
  62.      var output = new Output();
  63.      add_start_callback(function (properties) {output.setup(properties);});
  64.      add_result_callback(function (test) {output.show_status(tests);});
  65.      add_completion_callback(function (tests, harness_status) {output.show_results(tests, harness_status);});
  66.  
  67.      /*
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement