mermaid
Version:
Markdownish syntax for generating flowcharts, sequence diagrams and gantt charts.
349 lines (296 loc) • 46.6 kB
HTML
<html>
<head>
<title>HtmlReporter.js</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" media="all" href="../../../../doc-style.css" />
<script src="../../../../doc-filelist.js"></script>
<script>
var relativeDir = "../../../../", thisFile = "Users/knut/Documents/source/mermaid/bower_components/jasmine/src/html/HtmlReporter.js", defaultSidebar = true;
</script>
<script src="../../../../doc-script.js"></script>
<script src="../../../../mermaid.js"></script>
<link rel="stylesheet" href="../../../../mermaid.css" />
</head>
<body>
<div id="sidebar_wrapper">
<div id="sidebar_switch">
<span class="tree">Files</span>
<span class="headings">Headings</span>
</div>
<div id="tree"></div>
<div id="headings">
<div class="heading h1">
<a href="#HtmlReporter.js">HtmlReporter.js</a>
</div>
</div>
</div>
<div id="sidebar-toggle"></div>
<div id="container"><div class="background highlight"></div>
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="docs">
<div class="pilwrap" id="HtmlReporter.js">
<h1>
<a href="#HtmlReporter.js" name="HtmlReporter.js" class="pilcrow">¶</a>HtmlReporter.js
</h1>
</div>
</td>
<td class="code highlight"></td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-1" id="section-1">¶</a>
</div>
</td>
<td class="code highlight"><div class="highlight"><pre><span class="nx">jasmineRequire</span><span class="p">.</span><span class="nx">HtmlReporter</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">j$</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">noopTimer</span> <span class="o">=</span> <span class="p">{</span>
<span class="nx">start</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{},</span>
<span class="nx">elapsed</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="mi">0</span><span class="p">;</span> <span class="p">}</span>
<span class="p">};</span>
<span class="kd">function</span> <span class="nx">HtmlReporter</span><span class="p">(</span><span class="nx">options</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">env</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">env</span> <span class="o">||</span> <span class="p">{},</span>
<span class="nx">getContainer</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">getContainer</span><span class="p">,</span>
<span class="nx">createElement</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">createElement</span><span class="p">,</span>
<span class="nx">createTextNode</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">createTextNode</span><span class="p">,</span>
<span class="nx">onRaiseExceptionsClick</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">onRaiseExceptionsClick</span> <span class="o">||</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{},</span>
<span class="nx">timer</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">timer</span> <span class="o">||</span> <span class="nx">noopTimer</span><span class="p">,</span>
<span class="nx">results</span> <span class="o">=</span> <span class="p">[],</span>
<span class="nx">specsExecuted</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
<span class="nx">failureCount</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
<span class="nx">pendingSpecCount</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
<span class="nx">htmlReporterMain</span><span class="p">,</span>
<span class="nx">symbols</span><span class="p">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">initialize</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">clearPrior</span><span class="p">();</span>
<span class="nx">htmlReporterMain</span> <span class="o">=</span> <span class="nx">createDom</span><span class="p">(</span><span class="s1">'div'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'jasmine_html-reporter'</span><span class="p">},</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'div'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'banner'</span><span class="p">},</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'title'</span><span class="p">,</span> <span class="nx">href</span><span class="o">:</span> <span class="s1">'http://jasmine.github.io/'</span><span class="p">,</span> <span class="nx">target</span><span class="o">:</span> <span class="s1">'_blank'</span><span class="p">}),</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'span'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'version'</span><span class="p">},</span> <span class="nx">j$</span><span class="p">.</span><span class="nx">version</span><span class="p">)</span>
<span class="p">),</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'ul'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'symbol-summary'</span><span class="p">}),</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'div'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'alert'</span><span class="p">}),</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'div'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'results'</span><span class="p">},</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'div'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'failures'</span><span class="p">})</span>
<span class="p">)</span>
<span class="p">);</span>
<span class="nx">getContainer</span><span class="p">().</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">htmlReporterMain</span><span class="p">);</span>
<span class="nx">symbols</span> <span class="o">=</span> <span class="nx">find</span><span class="p">(</span><span class="s1">'.symbol-summary'</span><span class="p">);</span>
<span class="p">};</span>
<span class="kd">var</span> <span class="nx">totalSpecsDefined</span><span class="p">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">jasmineStarted</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">options</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">totalSpecsDefined</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">totalSpecsDefined</span> <span class="o">||</span> <span class="mi">0</span><span class="p">;</span>
<span class="nx">timer</span><span class="p">.</span><span class="nx">start</span><span class="p">();</span>
<span class="p">};</span>
<span class="kd">var</span> <span class="nx">summary</span> <span class="o">=</span> <span class="nx">createDom</span><span class="p">(</span><span class="s1">'div'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'summary'</span><span class="p">});</span>
<span class="kd">var</span> <span class="nx">topResults</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">j$</span><span class="p">.</span><span class="nx">ResultsNode</span><span class="p">({},</span> <span class="s1">''</span><span class="p">,</span> <span class="kc">null</span><span class="p">),</span>
<span class="nx">currentParent</span> <span class="o">=</span> <span class="nx">topResults</span><span class="p">;</span>
<span class="k">this</span><span class="p">.</span><span class="nx">suiteStarted</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">result</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">currentParent</span><span class="p">.</span><span class="nx">addChild</span><span class="p">(</span><span class="nx">result</span><span class="p">,</span> <span class="s1">'suite'</span><span class="p">);</span>
<span class="nx">currentParent</span> <span class="o">=</span> <span class="nx">currentParent</span><span class="p">.</span><span class="nx">last</span><span class="p">();</span>
<span class="p">};</span>
<span class="k">this</span><span class="p">.</span><span class="nx">suiteDone</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">result</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">currentParent</span> <span class="o">==</span> <span class="nx">topResults</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span><span class="p">;</span>
<span class="p">}</span>
<span class="nx">currentParent</span> <span class="o">=</span> <span class="nx">currentParent</span><span class="p">.</span><span class="nx">parent</span><span class="p">;</span>
<span class="p">};</span>
<span class="k">this</span><span class="p">.</span><span class="nx">specStarted</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">result</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">currentParent</span><span class="p">.</span><span class="nx">addChild</span><span class="p">(</span><span class="nx">result</span><span class="p">,</span> <span class="s1">'spec'</span><span class="p">);</span>
<span class="p">};</span>
<span class="kd">var</span> <span class="nx">failures</span> <span class="o">=</span> <span class="p">[];</span>
<span class="k">this</span><span class="p">.</span><span class="nx">specDone</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">result</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span><span class="p">(</span><span class="nx">noExpectations</span><span class="p">(</span><span class="nx">result</span><span class="p">)</span> <span class="o">&&</span> <span class="nx">console</span> <span class="o">&&</span> <span class="nx">console</span><span class="p">.</span><span class="nx">error</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">error</span><span class="p">(</span><span class="s1">'Spec \''</span> <span class="o">+</span> <span class="nx">result</span><span class="p">.</span><span class="nx">fullName</span> <span class="o">+</span> <span class="s1">'\' has no expectations.'</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">result</span><span class="p">.</span><span class="nx">status</span> <span class="o">!=</span> <span class="s1">'disabled'</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">specsExecuted</span><span class="o">++</span><span class="p">;</span>
<span class="p">}</span>
<span class="nx">symbols</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">createDom</span><span class="p">(</span><span class="s1">'li'</span><span class="p">,</span> <span class="p">{</span>
<span class="nx">className</span><span class="o">:</span> <span class="nx">noExpectations</span><span class="p">(</span><span class="nx">result</span><span class="p">)</span> <span class="o">?</span> <span class="s1">'empty'</span> <span class="o">:</span> <span class="nx">result</span><span class="p">.</span><span class="nx">status</span><span class="p">,</span>
<span class="nx">id</span><span class="o">:</span> <span class="s1">'spec_'</span> <span class="o">+</span> <span class="nx">result</span><span class="p">.</span><span class="nx">id</span><span class="p">,</span>
<span class="nx">title</span><span class="o">:</span> <span class="nx">result</span><span class="p">.</span><span class="nx">fullName</span>
<span class="p">}</span>
<span class="p">));</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">result</span><span class="p">.</span><span class="nx">status</span> <span class="o">==</span> <span class="s1">'failed'</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">failureCount</span><span class="o">++</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">failure</span> <span class="o">=</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'div'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'spec-detail failed'</span><span class="p">},</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'div'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'description'</span><span class="p">},</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span> <span class="p">{</span><span class="nx">title</span><span class="o">:</span> <span class="nx">result</span><span class="p">.</span><span class="nx">fullName</span><span class="p">,</span> <span class="nx">href</span><span class="o">:</span> <span class="nx">specHref</span><span class="p">(</span><span class="nx">result</span><span class="p">)},</span> <span class="nx">result</span><span class="p">.</span><span class="nx">fullName</span><span class="p">)</span>
<span class="p">),</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'div'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'messages'</span><span class="p">})</span>
<span class="p">);</span>
<span class="kd">var</span> <span class="nx">messages</span> <span class="o">=</span> <span class="nx">failure</span><span class="p">.</span><span class="nx">childNodes</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">result</span><span class="p">.</span><span class="nx">failedExpectations</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">expectation</span> <span class="o">=</span> <span class="nx">result</span><span class="p">.</span><span class="nx">failedExpectations</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
<span class="nx">messages</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">createDom</span><span class="p">(</span><span class="s1">'div'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'result-message'</span><span class="p">},</span> <span class="nx">expectation</span><span class="p">.</span><span class="nx">message</span><span class="p">));</span>
<span class="nx">messages</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">createDom</span><span class="p">(</span><span class="s1">'div'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'stack-trace'</span><span class="p">},</span> <span class="nx">expectation</span><span class="p">.</span><span class="nx">stack</span><span class="p">));</span>
<span class="p">}</span>
<span class="nx">failures</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">failure</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">result</span><span class="p">.</span><span class="nx">status</span> <span class="o">==</span> <span class="s1">'pending'</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">pendingSpecCount</span><span class="o">++</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">};</span>
<span class="k">this</span><span class="p">.</span><span class="nx">jasmineDone</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">banner</span> <span class="o">=</span> <span class="nx">find</span><span class="p">(</span><span class="s1">'.banner'</span><span class="p">);</span>
<span class="nx">banner</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">createDom</span><span class="p">(</span><span class="s1">'span'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'duration'</span><span class="p">},</span> <span class="s1">'finished in '</span> <span class="o">+</span> <span class="nx">timer</span><span class="p">.</span><span class="nx">elapsed</span><span class="p">()</span> <span class="o">/</span> <span class="mi">1000</span> <span class="o">+</span> <span class="s1">'s'</span><span class="p">));</span>
<span class="kd">var</span> <span class="nx">alert</span> <span class="o">=</span> <span class="nx">find</span><span class="p">(</span><span class="s1">'.alert'</span><span class="p">);</span>
<span class="nx">alert</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">createDom</span><span class="p">(</span><span class="s1">'span'</span><span class="p">,</span> <span class="p">{</span> <span class="nx">className</span><span class="o">:</span> <span class="s1">'exceptions'</span> <span class="p">},</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'label'</span><span class="p">,</span> <span class="p">{</span> <span class="nx">className</span><span class="o">:</span> <span class="s1">'label'</span><span class="p">,</span> <span class="s1">'for'</span><span class="o">:</span> <span class="s1">'raise-exceptions'</span> <span class="p">},</span> <span class="s1">'raise exceptions'</span><span class="p">),</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'input'</span><span class="p">,</span> <span class="p">{</span>
<span class="nx">className</span><span class="o">:</span> <span class="s1">'raise'</span><span class="p">,</span>
<span class="nx">id</span><span class="o">:</span> <span class="s1">'raise-exceptions'</span><span class="p">,</span>
<span class="nx">type</span><span class="o">:</span> <span class="s1">'checkbox'</span>
<span class="p">})</span>
<span class="p">));</span>
<span class="kd">var</span> <span class="nx">checkbox</span> <span class="o">=</span> <span class="nx">find</span><span class="p">(</span><span class="s1">'#raise-exceptions'</span><span class="p">);</span>
<span class="nx">checkbox</span><span class="p">.</span><span class="nx">checked</span> <span class="o">=</span> <span class="o">!</span><span class="nx">env</span><span class="p">.</span><span class="nx">catchingExceptions</span><span class="p">();</span>
<span class="nx">checkbox</span><span class="p">.</span><span class="nx">onclick</span> <span class="o">=</span> <span class="nx">onRaiseExceptionsClick</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">specsExecuted</span> <span class="o"><</span> <span class="nx">totalSpecsDefined</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">skippedMessage</span> <span class="o">=</span> <span class="s1">'Ran '</span> <span class="o">+</span> <span class="nx">specsExecuted</span> <span class="o">+</span> <span class="s1">' of '</span> <span class="o">+</span> <span class="nx">totalSpecsDefined</span> <span class="o">+</span> <span class="s1">' specs - run all'</span><span class="p">;</span>
<span class="nx">alert</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'span'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'bar skipped'</span><span class="p">},</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span> <span class="p">{</span><span class="nx">href</span><span class="o">:</span> <span class="s1">'?'</span><span class="p">,</span> <span class="nx">title</span><span class="o">:</span> <span class="s1">'Run all specs'</span><span class="p">},</span> <span class="nx">skippedMessage</span><span class="p">)</span>
<span class="p">)</span>
<span class="p">);</span>
<span class="p">}</span>
<span class="kd">var</span> <span class="nx">statusBarMessage</span> <span class="o">=</span> <span class="s1">''</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">statusBarClassName</span> <span class="o">=</span> <span class="s1">'bar '</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">totalSpecsDefined</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">statusBarMessage</span> <span class="o">+=</span> <span class="nx">pluralize</span><span class="p">(</span><span class="s1">'spec'</span><span class="p">,</span> <span class="nx">specsExecuted</span><span class="p">)</span> <span class="o">+</span> <span class="s1">', '</span> <span class="o">+</span> <span class="nx">pluralize</span><span class="p">(</span><span class="s1">'failure'</span><span class="p">,</span> <span class="nx">failureCount</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">pendingSpecCount</span><span class="p">)</span> <span class="p">{</span> <span class="nx">statusBarMessage</span> <span class="o">+=</span> <span class="s1">', '</span> <span class="o">+</span> <span class="nx">pluralize</span><span class="p">(</span><span class="s1">'pending spec'</span><span class="p">,</span> <span class="nx">pendingSpecCount</span><span class="p">);</span> <span class="p">}</span>
<span class="nx">statusBarClassName</span> <span class="o">+=</span> <span class="p">(</span><span class="nx">failureCount</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="o">?</span> <span class="s1">'failed'</span> <span class="o">:</span> <span class="s1">'passed'</span><span class="p">;</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="nx">statusBarClassName</span> <span class="o">+=</span> <span class="s1">'skipped'</span><span class="p">;</span>
<span class="nx">statusBarMessage</span> <span class="o">+=</span> <span class="s1">'No specs found'</span><span class="p">;</span>
<span class="p">}</span>
<span class="nx">alert</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">createDom</span><span class="p">(</span><span class="s1">'span'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="nx">statusBarClassName</span><span class="p">},</span> <span class="nx">statusBarMessage</span><span class="p">));</span>
<span class="kd">var</span> <span class="nx">results</span> <span class="o">=</span> <span class="nx">find</span><span class="p">(</span><span class="s1">'.results'</span><span class="p">);</span>
<span class="nx">results</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">summary</span><span class="p">);</span>
<span class="nx">summaryList</span><span class="p">(</span><span class="nx">topResults</span><span class="p">,</span> <span class="nx">summary</span><span class="p">);</span>
<span class="kd">function</span> <span class="nx">summaryList</span><span class="p">(</span><span class="nx">resultsTree</span><span class="p">,</span> <span class="nx">domParent</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">specListNode</span><span class="p">;</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">resultsTree</span><span class="p">.</span><span class="nx">children</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">resultNode</span> <span class="o">=</span> <span class="nx">resultsTree</span><span class="p">.</span><span class="nx">children</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">resultNode</span><span class="p">.</span><span class="nx">type</span> <span class="o">==</span> <span class="s1">'suite'</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">suiteListNode</span> <span class="o">=</span> <span class="nx">createDom</span><span class="p">(</span><span class="s1">'ul'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'suite'</span><span class="p">,</span> <span class="nx">id</span><span class="o">:</span> <span class="s1">'suite-'</span> <span class="o">+</span> <span class="nx">resultNode</span><span class="p">.</span><span class="nx">result</span><span class="p">.</span><span class="nx">id</span><span class="p">},</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'li'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'suite-detail'</span><span class="p">},</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span> <span class="p">{</span><span class="nx">href</span><span class="o">:</span> <span class="nx">specHref</span><span class="p">(</span><span class="nx">resultNode</span><span class="p">.</span><span class="nx">result</span><span class="p">)},</span> <span class="nx">resultNode</span><span class="p">.</span><span class="nx">result</span><span class="p">.</span><span class="nx">description</span><span class="p">)</span>
<span class="p">)</span>
<span class="p">);</span>
<span class="nx">summaryList</span><span class="p">(</span><span class="nx">resultNode</span><span class="p">,</span> <span class="nx">suiteListNode</span><span class="p">);</span>
<span class="nx">domParent</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">suiteListNode</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">resultNode</span><span class="p">.</span><span class="nx">type</span> <span class="o">==</span> <span class="s1">'spec'</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">domParent</span><span class="p">.</span><span class="nx">getAttribute</span><span class="p">(</span><span class="s1">'class'</span><span class="p">)</span> <span class="o">!=</span> <span class="s1">'specs'</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">specListNode</span> <span class="o">=</span> <span class="nx">createDom</span><span class="p">(</span><span class="s1">'ul'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'specs'</span><span class="p">});</span>
<span class="nx">domParent</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">specListNode</span><span class="p">);</span>
<span class="p">}</span>
<span class="kd">var</span> <span class="nx">specDescription</span> <span class="o">=</span> <span class="nx">resultNode</span><span class="p">.</span><span class="nx">result</span><span class="p">.</span><span class="nx">description</span><span class="p">;</span>
<span class="k">if</span><span class="p">(</span><span class="nx">noExpectations</span><span class="p">(</span><span class="nx">resultNode</span><span class="p">.</span><span class="nx">result</span><span class="p">))</span> <span class="p">{</span>
<span class="nx">specDescription</span> <span class="o">=</span> <span class="s1">'SPEC HAS NO EXPECTATIONS '</span> <span class="o">+</span> <span class="nx">specDescription</span><span class="p">;</span>
<span class="p">}</span>
<span class="nx">specListNode</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'li'</span><span class="p">,</span> <span class="p">{</span>
<span class="nx">className</span><span class="o">:</span> <span class="nx">resultNode</span><span class="p">.</span><span class="nx">result</span><span class="p">.</span><span class="nx">status</span><span class="p">,</span>
<span class="nx">id</span><span class="o">:</span> <span class="s1">'spec-'</span> <span class="o">+</span> <span class="nx">resultNode</span><span class="p">.</span><span class="nx">result</span><span class="p">.</span><span class="nx">id</span>
<span class="p">},</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span> <span class="p">{</span><span class="nx">href</span><span class="o">:</span> <span class="nx">specHref</span><span class="p">(</span><span class="nx">resultNode</span><span class="p">.</span><span class="nx">result</span><span class="p">)},</span> <span class="nx">specDescription</span><span class="p">)</span>
<span class="p">)</span>
<span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">failures</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">alert</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'span'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'menu bar spec-list'</span><span class="p">},</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'span'</span><span class="p">,</span> <span class="p">{},</span> <span class="s1">'Spec List | '</span><span class="p">),</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'failures-menu'</span><span class="p">,</span> <span class="nx">href</span><span class="o">:</span> <span class="s1">'#'</span><span class="p">},</span> <span class="s1">'Failures'</span><span class="p">)));</span>
<span class="nx">alert</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'span'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'menu bar failure-list'</span><span class="p">},</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span> <span class="p">{</span><span class="nx">className</span><span class="o">:</span> <span class="s1">'spec-list-menu'</span><span class="p">,</span> <span class="nx">href</span><span class="o">:</span> <span class="s1">'#'</span><span class="p">},</span> <span class="s1">'Spec List'</span><span class="p">),</span>
<span class="nx">createDom</span><span class="p">(</span><span class="s1">'span'</span><span class="p">,</span> <span class="p">{},</span> <span class="s1">' | Failures '</span><span class="p">)));</span>
<span class="nx">find</span><span class="p">(</span><span class="s1">'.failures-menu'</span><span class="p">).</span><span class="nx">onclick</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">setMenuModeTo</span><span class="p">(</span><span class="s1">'failure-list'</span><span class="p">);</span>
<span class="p">};</span>
<span class="nx">find</span><span class="p">(</span><span class="s1">'.spec-list-menu'</span><span class="p">).</span><span class="nx">onclick</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">setMenuModeTo</span><span class="p">(</span><span class="s1">'spec-list'</span><span class="p">);</span>
<span class="p">};</span>
<span class="nx">setMenuModeTo</span><span class="p">(</span><span class="s1">'failure-list'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">failureNode</span> <span class="o">=</span> <span class="nx">find</span><span class="p">(</span><span class="s1">'.failures'</span><span class="p">);</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">failures</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">failureNode</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">failures</span><span class="p">[</span><span class="nx">i</span><span class="p">]);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">};</span>
<span class="k">return</span> <span class="k">this</span><span class="p">;</span>
<span class="kd">function</span> <span class="nx">find</span><span class="p">(</span><span class="nx">selector</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="nx">getContainer</span><span class="p">().</span><span class="nx">querySelector</span><span class="p">(</span><span class="s1">'.jasmine_html-reporter '</span> <span class="o">+</span> <span class="nx">selector</span><span class="p">);</span>
<span class="p">}</span>
<span class="kd">function</span> <span class="nx">clearPrior</span><span class="p">()</span> <span class="p">{</span>
</pre></div>
</td>
</tr>
<tr>
<td class="docs">
<div class="pilwrap">
<a class="pilcrow" href="#section-2" id="section-2">¶</a>
</div>
<p>return the reporter</p>
</td>
<td class="code highlight"><div class="highlight"><pre>
<span class="kd">var</span> <span class="nx">oldReporter</span> <span class="o">=</span> <span class="nx">find</span><span class="p">(</span><span class="s1">''</span><span class="p">);</span>
<span class="k">if</span><span class="p">(</span><span class="nx">oldReporter</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">getContainer</span><span class="p">().</span><span class="nx">removeChild</span><span class="p">(</span><span class="nx">oldReporter</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="kd">function</span> <span class="nx">createDom</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">attrs</span><span class="p">,</span> <span class="nx">childrenVarArgs</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">el</span> <span class="o">=</span> <span class="nx">createElement</span><span class="p">(</span><span class="nx">type</span><span class="p">);</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">child</span> <span class="o">=</span> <span class="nx">arguments</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
<span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">child</span> <span class="o">===</span> <span class="s1">'string'</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">el</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">createTextNode</span><span class="p">(</span><span class="nx">child</span><span class="p">));</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">child</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">el</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">child</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">attr</span> <span class="k">in</span> <span class="nx">attrs</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">attr</span> <span class="o">==</span> <span class="s1">'className'</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">el</span><span class="p">[</span><span class="nx">attr</span><span class="p">]</span> <span class="o">=</span> <span class="nx">attrs</span><span class="p">[</span><span class="nx">attr</span><span class="p">];</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="nx">el</span><span class="p">.</span><span class="nx">setAttribute</span><span class="p">(</span><span class="nx">attr</span><span class="p">,</span> <span class="nx">attrs</span><span class="p">[</span><span class="nx">attr</span><span class="p">]);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">return</span> <span class="nx">el</span><span class="p">;</span>
<span class="p">}</span>
<span class="kd">function</span> <span class="nx">pluralize</span><span class="p">(</span><span class="nx">singular</span><span class="p">,</span> <span class="nx">count</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">word</span> <span class="o">=</span> <span class="p">(</span><span class="nx">count</span> <span class="o">==</span> <span class="mi">1</span> <span class="o">?</span> <span class="nx">singular</span> <span class="o">:</span> <span class="nx">singular</span> <span class="o">+</span> <span class="s1">'s'</span><span class="p">);</span>
<span class="k">return</span> <span class="s1">''</span> <span class="o">+</span> <span class="nx">count</span> <span class="o">+</span> <span class="s1">' '</span> <span class="o">+</span> <span class="nx">word</span><span class="p">;</span>
<span class="p">}</span>
<span class="kd">function</span> <span class="nx">specHref</span><span class="p">(</span><span class="nx">result</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="s1">'?spec='</span> <span class="o">+</span> <span class="nb">encodeURIComponent</span><span class="p">(</span><span class="nx">result</span><span class="p">.</span><span class="nx">fullName</span><span class="p">);</span>
<span class="p">}</span>
<span class="kd">function</span> <span class="nx">setMenuModeTo</span><span class="p">(</span><span class="nx">mode</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">htmlReporterMain</span><span class="p">.</span><span class="nx">setAttribute</span><span class="p">(</span><span class="s1">'class'</span><span class="p">,</span> <span class="s1">'jasmine_html-reporter '</span> <span class="o">+</span> <span class="nx">mode</span><span class="p">);</span>
<span class="p">}</span>
<span class="kd">function</span> <span class="nx">noExpectations</span><span class="p">(</span><span class="nx">result</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="p">(</span><span class="nx">result</span><span class="p">.</span><span class="nx">failedExpectations</span><span class="p">.</span><span class="nx">length</span> <span class="o">+</span> <span class="nx">result</span><span class="p">.</span><span class="nx">passedExpectations</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="o">===</span> <span class="mi">0</span> <span class="o">&&</span>
<span class="nx">result</span><span class="p">.</span><span class="nx">status</span> <span class="o">===</span> <span class="s1">'passed'</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="k">return</span> <span class="nx">HtmlReporter</span><span class="p">;</span>
<span class="p">};</span>
</pre></div>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>