{
sink.tableCell();
sinkLink( sink, testCase.getName(), "#" + testCase.getFullName() );
SinkEventAttributeSet atts = new SinkEventAttributeSet();
atts.addAttribute( SinkEventAttributes.CLASS, "detailToggle" );
atts.addAttribute( SinkEventAttributes.STYLE, "display:inline" );
sink.unknown( "div", new Object[]{ HtmlMarkup.TAG_TYPE_START }, atts );
sink.link( "javascript:toggleDisplay('" + toHtmlId( testCase.getFullName() ) + "');" );
atts = new SinkEventAttributeSet();
atts.addAttribute( SinkEventAttributes.STYLE, "display:inline;" );
atts.addAttribute( SinkEventAttributes.ID, toHtmlId( testCase.getFullName() ) + "off" );
sink.unknown( "span", new Object[]{ HtmlMarkup.TAG_TYPE_START }, atts );
sink.text( " + " );
sink.unknown( "span", new Object[]{ HtmlMarkup.TAG_TYPE_END }, null );
atts = new SinkEventAttributeSet();
atts.addAttribute( SinkEventAttributes.STYLE, "display:none;" );
atts.addAttribute( SinkEventAttributes.ID, toHtmlId( testCase.getFullName() ) + "on" );
sink.unknown( "span", new Object[]{ HtmlMarkup.TAG_TYPE_START }, atts );
sink.text( " - " );
sink.unknown( "span", new Object[]{ HtmlMarkup.TAG_TYPE_END }, null );
sink.text( "[ Detail ]" );
sink.link_();
sink.unknown( "div", new Object[]{ HtmlMarkup.TAG_TYPE_END }, null );
sink.tableCell_();
}
else
{
sinkCell( sink, testCase.getName() );
}
sinkCell( sink, numberFormat.format( testCase.getTime() ) );
sink.tableRow_();
if ( failure != null )
{
sink.tableRow();
sinkCell( sink, "" );
sinkCell( sink, (String) failure.get( "message" ) );
sinkCell( sink, "" );
sink.tableRow_();
List<String> detail = (List<String>) failure.get( "detail" );
if ( detail != null )
{
sink.tableRow();
sinkCell( sink, "" );
sink.tableCell();
SinkEventAttributeSet atts = new SinkEventAttributeSet();
atts.addAttribute( SinkEventAttributes.ID,
toHtmlId( testCase.getFullName() ) + "error" );
atts.addAttribute( SinkEventAttributes.STYLE, "display:none;" );
sink.unknown( "div", new Object[]{ HtmlMarkup.TAG_TYPE_START }, atts );
sink.verbatim( null );
for ( String line : detail )
{