8d72d9acc0922023778d2635f9cf4cdac2cd3fd4
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / http / tests / w3c / resources / testharnessreport.js
1 /*
2  * THIS FILE INTENTIONALLY LEFT BLANK
3  *
4  * More specifically, this file is intended for vendors to implement
5  * code needed to integrate testharness.js tests with their own test systems.
6  *
7  * Typically such integration will attach callbacks when each test is
8  * has run, using add_result_callback(callback(test)), or when the whole test file has
9  * completed, using add_completion_callback(callback(tests, harness_status)).
10  *
11  * For more documentation about the callback functions and the
12  * parameters they are called with see testharness.js
13  */
14
15 // Setup for WebKit JavaScript tests
16 if (self.testRunner) {
17     testRunner.dumpAsText();
18     testRunner.waitUntilDone();
19 }
20
21 // Function used to convert the test status code into
22 // the corresponding string
23 function convertResult(resultStatus){
24     if(resultStatus == 0)
25         return("PASS");
26     else if(resultStatus == 1)
27         return("FAIL");
28     else if(resultStatus == 2)
29         return("TIMEOUT");
30     else
31         return("NOTRUN");
32 }
33
34 /* Disable the default output of testharness.js.  The default output formats
35 *  test results into an HTML table.  When that table is dumped as text, no
36 *  spacing between cells is preserved, and it is therefore not readable. By
37 *  setting output to false, the HTML table will not be created
38 */
39 setup({"output":false});
40
41 /*  Using a callback function, test results will be added to the page in a
42 *   manner that allows dumpAsText to produce readable test results
43 */
44 add_completion_callback(function (tests, harness_status){
45
46     // Create element to hold results
47     var results = document.createElement("pre");
48
49     // Declare result string
50     var resultStr = "\n";
51
52     // Check harness_status.  If it is not 0, tests did not
53     // execute correctly, output the error code and message
54     if(harness_status.status != 0){
55         resultStr += "Harness Error. harness_status.status = " +
56                      harness_status.status +
57                      " , harness_status.message = " +
58                      harness_status.message;
59     }
60     else {
61         // Iterate through tests array and build string that contains
62         // results for all tests
63         for(var i=0; i<tests.length; i++){
64             resultStr += convertResult(tests[i].status) + " " +
65                         ( (tests[i].name!=null) ? tests[i].name : "" ) + " " +
66                         ( (tests[i].message!=null) ? tests[i].message : "" ) +
67                         "\n";
68         }
69     }
70
71     // Set results element's innerHTML to the results string
72     results.innerHTML = resultStr;
73
74     // Add results element to document
75     document.body.appendChild(results);
76
77     if (self.testRunner)
78         testRunner.notifyDone();
79 });