1 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3 <!-- Load document into variables -->
4 <xsl:variable name="TestOutput" select="document('TestReport.xml')/*"/>
6 <xsl:template match="/">
10 <title>Test Report</title>
12 <!-- Script for More details <-> Less details -->
13 <script language="javascript" type="text/javascript">
14 function expand(elId, txtId) {
16 el = document.getElementById(elId);
17 disp = el.style.display;
18 disp = (disp == 'block') ? ('none') : ('block');
19 el.style.display = disp;
20 el = document.getElementById(txtId);
21 el.innerHTML = (disp == 'none') ? ('More details') : ('Less details');
25 <style type="text/css">
26 table, th, td { border-collapse: collapse; padding: 0px; }
28 .div_title{ text-align: center; font-size:24px; font-weight:bold; margin-top:20px; margin-bottom:20px; }
29 .div_sum { margin-top:30px; margin-bottom:100px; }
30 .summary { text-align: center; font-size:20px; font-weight:bold; margin-top:20px; margin-bottom:20px; }
31 .caption { border-bottom:solid 1px; font-size:18px; font-weight:bold; text-align: center; }
33 .td_dbg { padding-left:5px; padding-top:10px; }
34 .td_line { padding-bottom: 5px }
35 .td_res { text-align: center; vertical-align:top; border:solid 1px; }
36 .td_tc { font-size:16px; font-weight:bold; text-align: center; vertical-align:top;
37 border-bottom:solid 1px; border-right:solid 1px; }
38 .td_fn { padding-left:2px; width:100px; }
40 .td_more { text-align:center; width:100px; }
42 .link_ptr { cursor:pointer; }
44 .an_det { cursor:pointer; }
45 .an_noexec{ color: Blue; font-size:16; font-weight:bold; }
46 .an_pass { color: Green; font-size:16; font-weight:bold; }
47 .an_pass2 { color: DarkOrange; font-size:16; font-weight:bold; }
48 .an_fail { color: Red; font-size:16; font-weight:bold; }
50 .tab_inf { width:100%; border-bottom:solid 1px }
51 .tab_fr { width:80%; border-left:solid 1px; border-right:solid 1px; border-top:solid 1px; }
52 .tab_det { width:100%; font-family:Arial; font-size:12px; font-style:italic; display:none; }
57 <xsl:apply-templates select="$TestOutput/test"/>
62 <xsl:template match="test">
64 <!-- Print out title, date and time -->
66 <xsl:value-of select="title"/>
69 <xsl:value-of select="date"/>
70 <xsl:text> </xsl:text>
71 <xsl:value-of select="time"/>
73 <table class="tab_fr" align="center">
74 <!-- Print out result header -->
76 <td class="caption" style="width:10%">Test Case</td>
77 <td class="caption">Details</td>
78 <td class="caption" style="width:12%">Status</td>
80 <!-- Print out results for all test cases -->
81 <xsl:apply-templates select="test_cases"/>
85 <!-- Write Summary -->
86 <xsl:apply-templates select="summary"/>
89 <xsl:template match="summary">
90 <!-- Write Summary -->
92 <div class="summary">Summary</div>
93 <table align="center" style="border:solid 1px;">
94 <tr class="caption" style="border:solid 1px;">
95 <td style="padding:4px; border:solid 1px;">Tests</td>
96 <td style="padding:4px; border:solid 1px;">Total</td>
97 <td style="padding:4px; border:solid 1px;">Passed</td>
98 <td style="padding:4px; border:solid 1px;">Failed</td>
100 <tr style="border:solid 1px">
101 <td style="padding:4px; border:solid 1px;">Count</td>
102 <td style="border:solid 1px; text-align:center"><xsl:value-of select="tcnt"/></td>
103 <td style="border:solid 1px; text-align:center"><xsl:value-of select="pass"/></td>
104 <td style="border:solid 1px; text-align:center"><xsl:value-of select="fail"/></td>
107 <td style="padding:4px; border:solid 1px;">Result</td>
109 <xsl:when test="fail = 0">
110 <td colspan="5" align="center"><a class="an_pass">Passed</a></td>
113 <td colspan="5" align="center"><a class="an_fail">Failed</a></td>
121 <xsl:template match="tc">
122 <!-- Create test case info row -->
124 <td class="td_tc"><xsl:value-of select="no"/></td>
125 <!-- <td class="td_tc"><xsl:number count="$TestOutput/test"/></td> -->
127 <table class="tab_inf">
132 <td class="td_fnval"><xsl:value-of select="func"/></td>
133 <xsl:if test="dbgi/detail != ''">
134 <td class="td_more"><a class="link_ptr" id="LINK_ID{(../../group)*1000+no}" onclick="expand('DETAIL_TABLE_ID{(../../group)*1000+no}', 'LINK_ID{(../../group)*1000+no}')">More details</a></td>
142 <table class="tab_det" id="DETAIL_TABLE_ID{(../../group)*1000+no}">
143 <!-- Print all debug output lines -->
144 <xsl:for-each select="dbgi/detail">
147 <xsl:value-of select="module"/>
148 <xsl:text> (</xsl:text>
149 <xsl:value-of select="line"/>
150 <xsl:text>)</xsl:text>
151 <xsl:if test="message != ''">
152 <xsl:text>: </xsl:text>
154 <xsl:value-of select="message"/>
165 <xsl:when test="res = 'PASSED' and contains(dbgi, '[WARNING]')">
166 <a class="an_pass2">Passed</a>
168 <xsl:when test="res = 'PASSED'">
169 <a class="an_pass">Passed</a>
171 <xsl:when test="res = 'NOT EXECUTED'">
172 <a class="an_noexec">Not executed</a>
175 <a class="an_fail">Failed</a>