<?xml version="1.0" encoding="utf-8"?>
<!--
#
# Copyright (C) 2006 Daniel Berrange
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                version="1.0">

  <xsl:output method="html"/>

  <xsl:template match="coverage">
    <html>
      <head>
        <title>Coverage report</title>
        <style type="text/css">
          tbody tr.odd td.label {
            border-top: 1px solid rgb(128,128,128);
            border-bottom: 1px solid rgb(128,128,128);
          }
          tbody tr.odd td.label {
            background: rgb(200,200,200);
          }
          
          thead, tfoot {
            background: rgb(60,60,60);
            color: white;
            font-weight: bold;
          }

          tr td.perfect {
            background: rgb(0,255,0);
            color: black;
          }
          tr td.excellant {
            background: rgb(140,255,140);
            color: black;
          }
          tr td.good {
            background: rgb(160,255,0);
            color: black;
          }
          tr td.poor {
            background: rgb(255,160,0);
            color: black;
          }
          tr td.bad {
            background: rgb(255,140,140);
            color: black;
          }
          tr td.terrible {
            background: rgb(255,0,0);
            color: black;
          }
        </style>
      </head>
      <body>
        <h1>Coverage report</h1>
        <xsl:apply-templates/>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="functions">
    <h2>Function coverage</h2>
    <xsl:call-template name="content">
      <xsl:with-param name="type" select="'function'"/>
    </xsl:call-template>
  </xsl:template>
  

  <xsl:template match="files">
    <h2>File coverage</h2>
    <xsl:call-template name="content">
      <xsl:with-param name="type" select="'file'"/>
    </xsl:call-template>
  </xsl:template>

  <xsl:template name="content">
    <xsl:param name="type"/>
    <table>
      <thead>
        <tr>
          <th>Name</th>
          <th>Lines</th>
          <th>Branches</th>
          <th>Conditions</th>
          <th>Calls</th>
        </tr>
      </thead>
      <tbody>
        <xsl:for-each select="entry">
          <xsl:call-template name="entry">
            <xsl:with-param name="type" select="$type"/>
            <xsl:with-param name="class">
              <xsl:choose>
                <xsl:when test="position() mod 2">
                  <xsl:text>odd</xsl:text>
                </xsl:when>
                <xsl:otherwise>
                  <xsl:text>even</xsl:text>
                </xsl:otherwise>
              </xsl:choose>
            </xsl:with-param>
          </xsl:call-template>
        </xsl:for-each>
      </tbody>
      <tfoot>
        <xsl:for-each select="summary">
          <xsl:call-template name="entry">
            <xsl:with-param name="type" select="'summary'"/>
            <xsl:with-param name="class">
              <xsl:choose>
                <xsl:when test="position() mod 2">
                  <xsl:text>odd</xsl:text>
                </xsl:when>
                <xsl:otherwise>
                  <xsl:text>even</xsl:text>
                </xsl:otherwise>
              </xsl:choose>
            </xsl:with-param>
          </xsl:call-template>
        </xsl:for-each>
      </tfoot>
    </table>
  </xsl:template>
  
  <xsl:template name="entry">
    <xsl:param name="type"/>
    <xsl:param name="class"/>
    <tr class="{$class}">
      <xsl:choose>
        <xsl:when test="$type = 'function'">
          <td class="label"><a href="{@details}.html#{@name}"><xsl:value-of select="@name"/></a></td>
        </xsl:when>
        <xsl:when test="$type = 'file'">
          <td class="label"><a href="{@details}.html"><xsl:value-of select="@name"/></a></td>
        </xsl:when>
        <xsl:otherwise>
          <td class="label">Summary</td>
        </xsl:otherwise>
      </xsl:choose>

      <xsl:if test="count(lines)">
        <xsl:apply-templates select="lines"/>
      </xsl:if>
      <xsl:if test="not(count(lines))">
        <xsl:call-template name="missing"/>
      </xsl:if>

      <xsl:if test="count(branches)">
        <xsl:apply-templates select="branches"/>
      </xsl:if>
      <xsl:if test="not(count(branches))">
        <xsl:call-template name="missing"/>
      </xsl:if>

      <xsl:if test="count(conditions)">
        <xsl:apply-templates select="conditions"/>
      </xsl:if>
      <xsl:if test="not(count(conditions))">
        <xsl:call-template name="missing"/>
      </xsl:if>

      <xsl:if test="count(calls)">
        <xsl:apply-templates select="calls"/>
      </xsl:if>
      <xsl:if test="not(count(calls))">
        <xsl:call-template name="missing"/>
      </xsl:if>

    </tr>
  </xsl:template>
  
  <xsl:template match="lines">
    <xsl:call-template name="row"/>
  </xsl:template>

  <xsl:template match="branches">
    <xsl:call-template name="row"/>
  </xsl:template>

  <xsl:template match="conditions">
    <xsl:call-template name="row"/>
  </xsl:template>

  <xsl:template match="calls">
    <xsl:call-template name="row"/>
  </xsl:template>

  <xsl:template name="missing">
    <td></td>
  </xsl:template>

  <xsl:template name="row">
    <xsl:variable name="quality">
      <xsl:choose>
        <xsl:when test="@coverage = 100">
          <xsl:text>perfect</xsl:text>
        </xsl:when>
        <xsl:when test="@coverage >= 80.0">
          <xsl:text>excellant</xsl:text>
        </xsl:when>
        <xsl:when test="@coverage >= 60.0">
          <xsl:text>good</xsl:text>
        </xsl:when>
        <xsl:when test="@coverage >= 40.0">
          <xsl:text>poor</xsl:text>
        </xsl:when>
        <xsl:when test="@coverage >= 20.0">
          <xsl:text>bad</xsl:text>
        </xsl:when>
        <xsl:otherwise>
          <xsl:text>terrible</xsl:text>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    
    <td class="{$quality}"><xsl:value-of select="@coverage"/>% of <xsl:value-of select="@count"/></td>
  </xsl:template>

</xsl:stylesheet>
