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 <!-- Test Group Info -->
74 <xsl:for-each select="info">
75 <table style="border:none; font-size:16px;" width="80%" align="center">
76 <tr><td style="white-space:pre-line"><xsl:value-of select="current()"/></td></tr>
80 <table class="tab_fr" align="center">
81 <!-- Print out result header -->
83 <td class="caption" style="width:10%">Test Case</td>
84 <td class="caption">Details</td>
85 <td class="caption" style="width:12%">Status</td>
87 <!-- Print out results for all test cases -->
88 <xsl:apply-templates select="test_cases"/>
92 <!-- Write Summary -->
93 <xsl:apply-templates select="summary"/>
96 <xsl:template match="summary">
97 <!-- Write Summary -->
99 <div class="summary">Summary</div>
100 <table align="center" style="border:solid 1px;">
101 <tr class="caption" style="border:solid 1px;">
102 <td style="padding:4px; border:solid 1px;">Tests</td>
103 <td style="padding:4px; border:solid 1px;">Total</td>
104 <td style="padding:4px; border:solid 1px;">Passed</td>
105 <td style="padding:4px; border:solid 1px;">Failed</td>
107 <tr style="border:solid 1px">
108 <td style="padding:4px; border:solid 1px;">Count</td>
109 <td style="border:solid 1px; text-align:center"><xsl:value-of select="tcnt"/></td>
110 <td style="border:solid 1px; text-align:center"><xsl:value-of select="pass"/></td>
111 <td style="border:solid 1px; text-align:center"><xsl:value-of select="fail"/></td>
114 <td style="padding:4px; border:solid 1px;">Result</td>
116 <xsl:when test="fail = 0">
117 <td colspan="5" align="center"><a class="an_pass">Passed</a></td>
120 <td colspan="5" align="center"><a class="an_fail">Failed</a></td>
128 <xsl:template match="tc">
129 <!-- Create test case info row -->
131 <td class="td_tc"><xsl:value-of select="no"/></td>
132 <!-- <td class="td_tc"><xsl:number count="$TestOutput/test"/></td> -->
134 <table class="tab_inf">
139 <td class="td_fnval"><xsl:value-of select="func"/></td>
140 <xsl:if test="dbgi/detail != ''">
141 <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>
149 <table class="tab_det" id="DETAIL_TABLE_ID{(../../group)*1000+no}">
150 <!-- Print all debug output lines -->
151 <xsl:for-each select="dbgi/detail">
154 <xsl:value-of select="module"/>
155 <xsl:text> (</xsl:text>
156 <xsl:value-of select="line"/>
157 <xsl:text>)</xsl:text>
158 <xsl:if test="message != ''">
159 <xsl:text>: </xsl:text>
161 <xsl:value-of select="message"/>
172 <xsl:when test="res = 'PASSED' and contains(dbgi, '[WARNING]')">
173 <a class="an_pass2">Passed</a>
175 <xsl:when test="res = 'PASSED'">
176 <a class="an_pass">Passed</a>
178 <xsl:when test="res = 'NOT EXECUTED'">
179 <a class="an_noexec">Not executed</a>
182 <a class="an_fail">Failed</a>