src/cm/media/js/lib/yui/yui3.0.0/api/TestRunner.js.html
changeset 0 40c8f766c9b8
equal deleted inserted replaced
-1:000000000000 0:40c8f766c9b8
       
     1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
       
     2 <html xmlns:yui="http://yuilibrary.com/rdf/1.0/yui.rdf#">
       
     3 <head>
       
     4     <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
       
     5 	<title>API: test   TestRunner.js  (YUI Library)</title>
       
     6 
       
     7 	<link rel="stylesheet" type="text/css" href="assets/reset-fonts-grids-min.css" />
       
     8 	<link rel="stylesheet" type="text/css" href="assets/api.css" />
       
     9 
       
    10     <script type="text/javascript" src="assets/api-js"></script>
       
    11     <script type="text/javascript" src="assets/ac-js"></script>
       
    12 </head>
       
    13 
       
    14 <body id="yahoo-com">
       
    15 
       
    16 <div id="doc3" class="yui-t2">
       
    17 	<div id="hd">
       
    18         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
       
    19         <h3>test&nbsp; <span class="subtitle">3.0.0</span></h3>
       
    20         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
       
    21             &gt; <a href="./module_test.html" title="test">test</a>
       
    22                 
       
    23                  &gt; TestRunner.js (source view) 
       
    24         <form onsubmit="return false">
       
    25             <div id="propertysearch">
       
    26                 Search: <input autocomplete="off" id="searchinput" />
       
    27                 <div id="searchresults">
       
    28                     &nbsp;
       
    29                 </div>
       
    30             </div>
       
    31         </form>
       
    32 	</div>
       
    33 
       
    34 	<div id="bd">
       
    35 		<div id="yui-main">
       
    36 			<div class="yui-b">
       
    37             <form action="#" name="yui-classopts-form" method="get" id="yui-classopts-form">
       
    38                 <fieldset>
       
    39                     <legend>Filters</legend>
       
    40                 <span class="classopts"><input type="checkbox" name="show_private" id="show_private" /> <label for="show_private">Show Private</label></span>
       
    41                 <span class="classopts"><input type="checkbox" name="show_protected" id="show_protected" /> <label for="show_protected">Show Protected</label></span>
       
    42                 <span class="classopts"><input type="checkbox" name="show_deprecated" id="show_deprecated" /> <label for="show_deprecated">Show Deprecated</label></span>
       
    43                 </fieldset>
       
    44             </form>
       
    45 
       
    46                     <div id="srcout">
       
    47                         <style>
       
    48                             #doc3 .classopts { display:none; }
       
    49                         </style>
       
    50                         <div class="highlight" ><pre>    
       
    51     <span class="c">/*</span>
       
    52 <span class="c">     * Runs test suites and test cases, providing events to allowing for the</span>
       
    53 <span class="c">     * interpretation of test results.</span>
       
    54 <span class="c">     * @namespace Test</span>
       
    55 <span class="c">     * @class Runner</span>
       
    56 <span class="c">     * @static</span>
       
    57 <span class="c">     */</span>
       
    58     <span class="nx">Y</span><span class="o">.</span><span class="nx">Test</span><span class="o">.</span><span class="nx">Runner</span> <span class="o">=</span> <span class="o">(</span><span class="k">function</span><span class="o">(){</span>
       
    59     
       
    60         <span class="c">/**</span>
       
    61 <span class="c">         * A node in the test tree structure. May represent a TestSuite, TestCase, or</span>
       
    62 <span class="c">         * test function.</span>
       
    63 <span class="c">         * @param {Variant} testObject A TestSuite, TestCase, or the name of a test function.</span>
       
    64 <span class="c">         * @class TestNode</span>
       
    65 <span class="c">         * @constructor</span>
       
    66 <span class="c">         * @private</span>
       
    67 <span class="c">         */</span>
       
    68         <span class="k">function</span> <span class="nx">TestNode</span><span class="o">(</span><span class="nx">testObject</span><span class="o">){</span>
       
    69         
       
    70             <span class="c">/**</span>
       
    71 <span class="c">             * The TestSuite, TestCase, or test function represented by this node.</span>
       
    72 <span class="c">             * @type Variant</span>
       
    73 <span class="c">             * @property testObject</span>
       
    74 <span class="c">             */</span>
       
    75             <span class="k">this</span><span class="o">.</span><span class="nx">testObject</span> <span class="o">=</span> <span class="nx">testObject</span><span class="o">;</span>
       
    76             
       
    77             <span class="c">/**</span>
       
    78 <span class="c">             * Pointer to this node&#39;s first child.</span>
       
    79 <span class="c">             * @type TestNode</span>
       
    80 <span class="c">             * @property firstChild</span>
       
    81 <span class="c">             */</span>        
       
    82             <span class="k">this</span><span class="o">.</span><span class="nx">firstChild</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
       
    83             
       
    84             <span class="c">/**</span>
       
    85 <span class="c">             * Pointer to this node&#39;s last child.</span>
       
    86 <span class="c">             * @type TestNode</span>
       
    87 <span class="c">             * @property lastChild</span>
       
    88 <span class="c">             */</span>        
       
    89             <span class="k">this</span><span class="o">.</span><span class="nx">lastChild</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
       
    90             
       
    91             <span class="c">/**</span>
       
    92 <span class="c">             * Pointer to this node&#39;s parent.</span>
       
    93 <span class="c">             * @type TestNode</span>
       
    94 <span class="c">             * @property parent</span>
       
    95 <span class="c">             */</span>        
       
    96             <span class="k">this</span><span class="o">.</span><span class="nx">parent</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span> 
       
    97        
       
    98             <span class="c">/**</span>
       
    99 <span class="c">             * Pointer to this node&#39;s next sibling.</span>
       
   100 <span class="c">             * @type TestNode</span>
       
   101 <span class="c">             * @property next</span>
       
   102 <span class="c">             */</span>        
       
   103             <span class="k">this</span><span class="o">.</span><span class="nx">next</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
       
   104             
       
   105             <span class="c">/**</span>
       
   106 <span class="c">             * Test results for this test object.</span>
       
   107 <span class="c">             * @type object</span>
       
   108 <span class="c">             * @property results</span>
       
   109 <span class="c">             */</span>                
       
   110             <span class="k">this</span><span class="o">.</span><span class="nx">results</span> <span class="o">=</span> <span class="o">{</span>
       
   111                 <span class="nx">passed</span> <span class="o">:</span> <span class="m">0</span><span class="o">,</span>
       
   112                 <span class="nx">failed</span> <span class="o">:</span> <span class="m">0</span><span class="o">,</span>
       
   113                 <span class="nx">total</span> <span class="o">:</span> <span class="m">0</span><span class="o">,</span>
       
   114                 <span class="nx">ignored</span> <span class="o">:</span> <span class="m">0</span>
       
   115             <span class="o">};</span>
       
   116             
       
   117             <span class="c">//initialize results</span>
       
   118 <span class="c"></span>            <span class="k">if</span> <span class="o">(</span><span class="nx">testObject</span> <span class="k">instanceof</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Test</span><span class="o">.</span><span class="nx">Suite</span><span class="o">){</span>
       
   119                 <span class="k">this</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s2">&quot;testsuite&quot;</span><span class="o">;</span>
       
   120                 <span class="k">this</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">name</span> <span class="o">=</span> <span class="nx">testObject</span><span class="o">.</span><span class="nx">name</span><span class="o">;</span>
       
   121             <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">testObject</span> <span class="k">instanceof</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Test</span><span class="o">.</span><span class="nx">Case</span><span class="o">){</span>
       
   122                 <span class="k">this</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s2">&quot;testcase&quot;</span><span class="o">;</span>
       
   123                 <span class="k">this</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">name</span> <span class="o">=</span> <span class="nx">testObject</span><span class="o">.</span><span class="nx">name</span><span class="o">;</span>
       
   124             <span class="o">}</span>
       
   125            
       
   126         <span class="o">}</span>
       
   127         
       
   128         <span class="nx">TestNode</span><span class="o">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="o">{</span>
       
   129         
       
   130             <span class="c">/**</span>
       
   131 <span class="c">             * Appends a new test object (TestSuite, TestCase, or test function name) as a child</span>
       
   132 <span class="c">             * of this node.</span>
       
   133 <span class="c">             * @param {Variant} testObject A TestSuite, TestCase, or the name of a test function.</span>
       
   134 <span class="c">             * @return {Void}</span>
       
   135 <span class="c">             */</span>
       
   136             <span class="nx">appendChild</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">testObject</span><span class="o">){</span>
       
   137                 <span class="k">var</span> <span class="nx">node</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">TestNode</span><span class="o">(</span><span class="nx">testObject</span><span class="o">);</span>
       
   138                 <span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">firstChild</span> <span class="o">===</span> <span class="kc">null</span><span class="o">){</span>
       
   139                     <span class="k">this</span><span class="o">.</span><span class="nx">firstChild</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">lastChild</span> <span class="o">=</span> <span class="nx">node</span><span class="o">;</span>
       
   140                 <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   141                     <span class="k">this</span><span class="o">.</span><span class="nx">lastChild</span><span class="o">.</span><span class="nx">next</span> <span class="o">=</span> <span class="nx">node</span><span class="o">;</span>
       
   142                     <span class="k">this</span><span class="o">.</span><span class="nx">lastChild</span> <span class="o">=</span> <span class="nx">node</span><span class="o">;</span>
       
   143                 <span class="o">}</span>
       
   144                 <span class="nx">node</span><span class="o">.</span><span class="nx">parent</span> <span class="o">=</span> <span class="k">this</span><span class="o">;</span>
       
   145                 <span class="k">return</span> <span class="nx">node</span><span class="o">;</span>
       
   146             <span class="o">}</span>       
       
   147         <span class="o">};</span>
       
   148     
       
   149         <span class="c">/**</span>
       
   150 <span class="c">         * Runs test suites and test cases, providing events to allowing for the</span>
       
   151 <span class="c">         * interpretation of test results.</span>
       
   152 <span class="c">         * @namespace Test</span>
       
   153 <span class="c">         * @class Runner</span>
       
   154 <span class="c">         * @static</span>
       
   155 <span class="c">         */</span>
       
   156         <span class="k">function</span> <span class="nx">TestRunner</span><span class="o">(){</span>
       
   157         
       
   158             <span class="c">//inherit from EventProvider</span>
       
   159 <span class="c"></span>            <span class="nx">TestRunner</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">constructor</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span><span class="nx">arguments</span><span class="o">);</span>
       
   160             
       
   161             <span class="c">/**</span>
       
   162 <span class="c">             * Suite on which to attach all TestSuites and TestCases to be run.</span>
       
   163 <span class="c">             * @type Y.Test.Suite</span>
       
   164 <span class="c">             * @property masterSuite</span>
       
   165 <span class="c">             * @static</span>
       
   166 <span class="c">             * @private</span>
       
   167 <span class="c">             */</span>
       
   168             <span class="k">this</span><span class="o">.</span><span class="nx">masterSuite</span> <span class="c">/*:Y.Test.Suite*/</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Test</span><span class="o">.</span><span class="nx">Suite</span><span class="o">(</span><span class="s2">&quot;YUI Test Results&quot;</span><span class="o">);</span>        
       
   169     
       
   170             <span class="c">/**</span>
       
   171 <span class="c">             * Pointer to the current node in the test tree.</span>
       
   172 <span class="c">             * @type TestNode</span>
       
   173 <span class="c">             * @private</span>
       
   174 <span class="c">             * @property _cur</span>
       
   175 <span class="c">             * @static</span>
       
   176 <span class="c">             */</span>
       
   177             <span class="k">this</span><span class="o">.</span><span class="nx">_cur</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
       
   178             
       
   179             <span class="c">/**</span>
       
   180 <span class="c">             * Pointer to the root node in the test tree.</span>
       
   181 <span class="c">             * @type TestNode</span>
       
   182 <span class="c">             * @private</span>
       
   183 <span class="c">             * @property _root</span>
       
   184 <span class="c">             * @static</span>
       
   185 <span class="c">             */</span>
       
   186             <span class="k">this</span><span class="o">.</span><span class="nx">_root</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
       
   187             
       
   188             <span class="c">/**</span>
       
   189 <span class="c">             * Indicates if the TestRunner will log events or not.</span>
       
   190 <span class="c">             * @type Boolean</span>
       
   191 <span class="c">             * @property _log</span>
       
   192 <span class="c">             * @private</span>
       
   193 <span class="c">             * @static</span>
       
   194 <span class="c">             */</span>
       
   195             <span class="k">this</span><span class="o">.</span><span class="nx">_log</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
       
   196             
       
   197             <span class="c">/**</span>
       
   198 <span class="c">             * Indicates if the TestRunner is waiting as a result of</span>
       
   199 <span class="c">             * wait() being called.</span>
       
   200 <span class="c">             * @type Boolean</span>
       
   201 <span class="c">             * @property _waiting</span>
       
   202 <span class="c">             * @private</span>
       
   203 <span class="c">             * @static</span>
       
   204 <span class="c">             */</span>
       
   205             <span class="k">this</span><span class="o">.</span><span class="nx">_waiting</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
       
   206             
       
   207             <span class="c">//create events</span>
       
   208 <span class="c"></span>            <span class="k">var</span> <span class="nx">events</span> <span class="o">=</span> <span class="o">[</span>
       
   209                 <span class="k">this</span><span class="o">.</span><span class="nx">TEST_CASE_BEGIN_EVENT</span><span class="o">,</span>
       
   210                 <span class="k">this</span><span class="o">.</span><span class="nx">TEST_CASE_COMPLETE_EVENT</span><span class="o">,</span>
       
   211                 <span class="k">this</span><span class="o">.</span><span class="nx">TEST_SUITE_BEGIN_EVENT</span><span class="o">,</span>
       
   212                 <span class="k">this</span><span class="o">.</span><span class="nx">TEST_SUITE_COMPLETE_EVENT</span><span class="o">,</span>
       
   213                 <span class="k">this</span><span class="o">.</span><span class="nx">TEST_PASS_EVENT</span><span class="o">,</span>
       
   214                 <span class="k">this</span><span class="o">.</span><span class="nx">TEST_FAIL_EVENT</span><span class="o">,</span>
       
   215                 <span class="k">this</span><span class="o">.</span><span class="nx">TEST_IGNORE_EVENT</span><span class="o">,</span>
       
   216                 <span class="k">this</span><span class="o">.</span><span class="nx">COMPLETE_EVENT</span><span class="o">,</span>
       
   217                 <span class="k">this</span><span class="o">.</span><span class="nx">BEGIN_EVENT</span>
       
   218             <span class="o">];</span>
       
   219             <span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">i</span><span class="o">=</span><span class="m">0</span><span class="o">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">events</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span> <span class="nx">i</span><span class="o">++){</span>
       
   220                 <span class="k">this</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="nx">events</span><span class="o">[</span><span class="nx">i</span><span class="o">],</span> <span class="k">this</span><span class="o">.</span><span class="nx">_logEvent</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
       
   221             <span class="o">}</span>      
       
   222        
       
   223         <span class="o">}</span>
       
   224         
       
   225         <span class="nx">Y</span><span class="o">.</span><span class="nx">extend</span><span class="o">(</span><span class="nx">TestRunner</span><span class="o">,</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">Target</span><span class="o">,</span> <span class="o">{</span>
       
   226         
       
   227             <span class="c">//-------------------------------------------------------------------------</span>
       
   228 <span class="c"></span>            <span class="c">// Constants</span>
       
   229 <span class="c"></span>            <span class="c">//-------------------------------------------------------------------------</span>
       
   230 <span class="c"></span>             
       
   231             <span class="c">/**</span>
       
   232 <span class="c">             * Fires when a test case is opened but before the first </span>
       
   233 <span class="c">             * test is executed.</span>
       
   234 <span class="c">             * @event testcasebegin</span>
       
   235 <span class="c">             * @static</span>
       
   236 <span class="c">             */</span>         
       
   237             <span class="nx">TEST_CASE_BEGIN_EVENT</span> <span class="o">:</span> <span class="s2">&quot;testcasebegin&quot;</span><span class="o">,</span>
       
   238             
       
   239             <span class="c">/**</span>
       
   240 <span class="c">             * Fires when all tests in a test case have been executed.</span>
       
   241 <span class="c">             * @event testcasecomplete</span>
       
   242 <span class="c">             * @static</span>
       
   243 <span class="c">             */</span>        
       
   244             <span class="nx">TEST_CASE_COMPLETE_EVENT</span> <span class="o">:</span> <span class="s2">&quot;testcasecomplete&quot;</span><span class="o">,</span>
       
   245             
       
   246             <span class="c">/**</span>
       
   247 <span class="c">             * Fires when a test suite is opened but before the first </span>
       
   248 <span class="c">             * test is executed.</span>
       
   249 <span class="c">             * @event testsuitebegin</span>
       
   250 <span class="c">             * @static</span>
       
   251 <span class="c">             */</span>        
       
   252             <span class="nx">TEST_SUITE_BEGIN_EVENT</span> <span class="o">:</span> <span class="s2">&quot;testsuitebegin&quot;</span><span class="o">,</span>
       
   253             
       
   254             <span class="c">/**</span>
       
   255 <span class="c">             * Fires when all test cases in a test suite have been</span>
       
   256 <span class="c">             * completed.</span>
       
   257 <span class="c">             * @event testsuitecomplete</span>
       
   258 <span class="c">             * @static</span>
       
   259 <span class="c">             */</span>        
       
   260             <span class="nx">TEST_SUITE_COMPLETE_EVENT</span> <span class="o">:</span> <span class="s2">&quot;testsuitecomplete&quot;</span><span class="o">,</span>
       
   261             
       
   262             <span class="c">/**</span>
       
   263 <span class="c">             * Fires when a test has passed.</span>
       
   264 <span class="c">             * @event pass</span>
       
   265 <span class="c">             * @static</span>
       
   266 <span class="c">             */</span>        
       
   267             <span class="nx">TEST_PASS_EVENT</span> <span class="o">:</span> <span class="s2">&quot;pass&quot;</span><span class="o">,</span>
       
   268             
       
   269             <span class="c">/**</span>
       
   270 <span class="c">             * Fires when a test has failed.</span>
       
   271 <span class="c">             * @event fail</span>
       
   272 <span class="c">             * @static</span>
       
   273 <span class="c">             */</span>        
       
   274             <span class="nx">TEST_FAIL_EVENT</span> <span class="o">:</span> <span class="s2">&quot;fail&quot;</span><span class="o">,</span>
       
   275             
       
   276             <span class="c">/**</span>
       
   277 <span class="c">             * Fires when a test has been ignored.</span>
       
   278 <span class="c">             * @event ignore</span>
       
   279 <span class="c">             * @static</span>
       
   280 <span class="c">             */</span>        
       
   281             <span class="nx">TEST_IGNORE_EVENT</span> <span class="o">:</span> <span class="s2">&quot;ignore&quot;</span><span class="o">,</span>
       
   282             
       
   283             <span class="c">/**</span>
       
   284 <span class="c">             * Fires when all test suites and test cases have been completed.</span>
       
   285 <span class="c">             * @event complete</span>
       
   286 <span class="c">             * @static</span>
       
   287 <span class="c">             */</span>        
       
   288             <span class="nx">COMPLETE_EVENT</span> <span class="o">:</span> <span class="s2">&quot;complete&quot;</span><span class="o">,</span>
       
   289             
       
   290             <span class="c">/**</span>
       
   291 <span class="c">             * Fires when the run() method is called.</span>
       
   292 <span class="c">             * @event begin</span>
       
   293 <span class="c">             * @static</span>
       
   294 <span class="c">             */</span>        
       
   295             <span class="nx">BEGIN_EVENT</span> <span class="o">:</span> <span class="s2">&quot;begin&quot;</span><span class="o">,</span>    
       
   296             
       
   297             <span class="c">//-------------------------------------------------------------------------</span>
       
   298 <span class="c"></span>            <span class="c">// Logging-Related Methods</span>
       
   299 <span class="c"></span>            <span class="c">//-------------------------------------------------------------------------</span>
       
   300 <span class="c"></span>    
       
   301             
       
   302             <span class="c">/**</span>
       
   303 <span class="c">             * Disable logging via Y.log(). Test output will not be visible unless</span>
       
   304 <span class="c">             * TestRunner events are subscribed to.</span>
       
   305 <span class="c">             * @return {Void}</span>
       
   306 <span class="c">             * @method disableLogging</span>
       
   307 <span class="c">             * @static</span>
       
   308 <span class="c">             */</span>
       
   309             <span class="nx">disableLogging</span><span class="o">:</span> <span class="k">function</span><span class="o">(){</span>
       
   310                 <span class="k">this</span><span class="o">.</span><span class="nx">_log</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
       
   311             <span class="o">},</span>    
       
   312             
       
   313             <span class="c">/**</span>
       
   314 <span class="c">             * Enable logging via Y.log(). Test output is published and can be read via</span>
       
   315 <span class="c">             * logreader.</span>
       
   316 <span class="c">             * @return {Void}</span>
       
   317 <span class="c">             * @method enableLogging</span>
       
   318 <span class="c">             * @static</span>
       
   319 <span class="c">             */</span>
       
   320             <span class="nx">enableLogging</span><span class="o">:</span> <span class="k">function</span><span class="o">(){</span>
       
   321                 <span class="k">this</span><span class="o">.</span><span class="nx">_log</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
       
   322             <span class="o">},</span>
       
   323             
       
   324             <span class="c">/**</span>
       
   325 <span class="c">             * Logs TestRunner events using Y.log().</span>
       
   326 <span class="c">             * @param {Object} event The event object for the event.</span>
       
   327 <span class="c">             * @return {Void}</span>
       
   328 <span class="c">             * @method _logEvent</span>
       
   329 <span class="c">             * @private</span>
       
   330 <span class="c">             * @static</span>
       
   331 <span class="c">             */</span>
       
   332             <span class="nx">_logEvent</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">event</span><span class="o">){</span>
       
   333                 
       
   334                 <span class="c">//data variables</span>
       
   335 <span class="c"></span>                <span class="k">var</span> <span class="nx">message</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="o">;</span>
       
   336                 <span class="k">var</span> <span class="nx">messageType</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="o">;</span>
       
   337                 
       
   338                 <span class="nx">switch</span><span class="o">(</span><span class="nx">event</span><span class="o">.</span><span class="nx">type</span><span class="o">){</span>
       
   339                     <span class="nx">case</span> <span class="k">this</span><span class="o">.</span><span class="nx">BEGIN_EVENT</span><span class="o">:</span>
       
   340                         <span class="nx">message</span> <span class="o">=</span> <span class="s2">&quot;Testing began at &quot;</span> <span class="o">+</span> <span class="o">(</span><span class="k">new</span> <span class="nb">Date</span><span class="o">()).</span><span class="nx">toString</span><span class="o">()</span> <span class="o">+</span> <span class="s2">&quot;.&quot;</span><span class="o">;</span>
       
   341                         <span class="nx">messageType</span> <span class="o">=</span> <span class="s2">&quot;info&quot;</span><span class="o">;</span>
       
   342                         <span class="k">break</span><span class="o">;</span>
       
   343                         
       
   344                     <span class="nx">case</span> <span class="k">this</span><span class="o">.</span><span class="nx">COMPLETE_EVENT</span><span class="o">:</span>
       
   345                         <span class="nx">message</span> <span class="o">=</span> <span class="s2">&quot;Testing completed at &quot;</span> <span class="o">+</span> <span class="o">(</span><span class="k">new</span> <span class="nb">Date</span><span class="o">()).</span><span class="nx">toString</span><span class="o">()</span> <span class="o">+</span> <span class="s2">&quot;.\nPassed:&quot;</span> <span class="o">+</span> 
       
   346                             <span class="nx">event</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">passed</span> <span class="o">+</span> <span class="s2">&quot; Failed:&quot;</span> <span class="o">+</span> <span class="nx">event</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">failed</span> <span class="o">+</span> <span class="s2">&quot; Total:&quot;</span> <span class="o">+</span> <span class="nx">event</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">total</span><span class="o">;</span>
       
   347                         <span class="nx">messageType</span> <span class="o">=</span> <span class="s2">&quot;info&quot;</span><span class="o">;</span>
       
   348                         <span class="k">break</span><span class="o">;</span>
       
   349                         
       
   350                     <span class="nx">case</span> <span class="k">this</span><span class="o">.</span><span class="nx">TEST_FAIL_EVENT</span><span class="o">:</span>
       
   351                         <span class="nx">message</span> <span class="o">=</span> <span class="nx">event</span><span class="o">.</span><span class="nx">testName</span> <span class="o">+</span> <span class="s2">&quot;: failed.\n&quot;</span> <span class="o">+</span> <span class="nx">event</span><span class="o">.</span><span class="nx">error</span><span class="o">.</span><span class="nx">getMessage</span><span class="o">();</span>
       
   352                         <span class="nx">messageType</span> <span class="o">=</span> <span class="s2">&quot;fail&quot;</span><span class="o">;</span>
       
   353                         <span class="k">break</span><span class="o">;</span>
       
   354                         
       
   355                     <span class="nx">case</span> <span class="k">this</span><span class="o">.</span><span class="nx">TEST_IGNORE_EVENT</span><span class="o">:</span>
       
   356                         <span class="nx">message</span> <span class="o">=</span> <span class="nx">event</span><span class="o">.</span><span class="nx">testName</span> <span class="o">+</span> <span class="s2">&quot;: ignored.&quot;</span><span class="o">;</span>
       
   357                         <span class="nx">messageType</span> <span class="o">=</span> <span class="s2">&quot;ignore&quot;</span><span class="o">;</span>
       
   358                         <span class="k">break</span><span class="o">;</span>
       
   359                         
       
   360                     <span class="nx">case</span> <span class="k">this</span><span class="o">.</span><span class="nx">TEST_PASS_EVENT</span><span class="o">:</span>
       
   361                         <span class="nx">message</span> <span class="o">=</span> <span class="nx">event</span><span class="o">.</span><span class="nx">testName</span> <span class="o">+</span> <span class="s2">&quot;: passed.&quot;</span><span class="o">;</span>
       
   362                         <span class="nx">messageType</span> <span class="o">=</span> <span class="s2">&quot;pass&quot;</span><span class="o">;</span>
       
   363                         <span class="k">break</span><span class="o">;</span>
       
   364                         
       
   365                     <span class="nx">case</span> <span class="k">this</span><span class="o">.</span><span class="nx">TEST_SUITE_BEGIN_EVENT</span><span class="o">:</span>
       
   366                         <span class="nx">message</span> <span class="o">=</span> <span class="s2">&quot;Test suite \&quot;&quot;</span> <span class="o">+</span> <span class="nx">event</span><span class="o">.</span><span class="nx">testSuite</span><span class="o">.</span><span class="nx">name</span> <span class="o">+</span> <span class="s2">&quot;\&quot; started.&quot;</span><span class="o">;</span>
       
   367                         <span class="nx">messageType</span> <span class="o">=</span> <span class="s2">&quot;info&quot;</span><span class="o">;</span>
       
   368                         <span class="k">break</span><span class="o">;</span>
       
   369                         
       
   370                     <span class="nx">case</span> <span class="k">this</span><span class="o">.</span><span class="nx">TEST_SUITE_COMPLETE_EVENT</span><span class="o">:</span>
       
   371                         <span class="nx">message</span> <span class="o">=</span> <span class="s2">&quot;Test suite \&quot;&quot;</span> <span class="o">+</span> <span class="nx">event</span><span class="o">.</span><span class="nx">testSuite</span><span class="o">.</span><span class="nx">name</span> <span class="o">+</span> <span class="s2">&quot;\&quot; completed.\nPassed:&quot;</span> <span class="o">+</span> 
       
   372                             <span class="nx">event</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">passed</span> <span class="o">+</span> <span class="s2">&quot; Failed:&quot;</span> <span class="o">+</span> <span class="nx">event</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">failed</span> <span class="o">+</span> <span class="s2">&quot; Total:&quot;</span> <span class="o">+</span> <span class="nx">event</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">total</span><span class="o">;</span>
       
   373                         <span class="nx">messageType</span> <span class="o">=</span> <span class="s2">&quot;info&quot;</span><span class="o">;</span>
       
   374                         <span class="k">break</span><span class="o">;</span>
       
   375                         
       
   376                     <span class="nx">case</span> <span class="k">this</span><span class="o">.</span><span class="nx">TEST_CASE_BEGIN_EVENT</span><span class="o">:</span>
       
   377                         <span class="nx">message</span> <span class="o">=</span> <span class="s2">&quot;Test case \&quot;&quot;</span> <span class="o">+</span> <span class="nx">event</span><span class="o">.</span><span class="nx">testCase</span><span class="o">.</span><span class="nx">name</span> <span class="o">+</span> <span class="s2">&quot;\&quot; started.&quot;</span><span class="o">;</span>
       
   378                         <span class="nx">messageType</span> <span class="o">=</span> <span class="s2">&quot;info&quot;</span><span class="o">;</span>
       
   379                         <span class="k">break</span><span class="o">;</span>
       
   380                         
       
   381                     <span class="nx">case</span> <span class="k">this</span><span class="o">.</span><span class="nx">TEST_CASE_COMPLETE_EVENT</span><span class="o">:</span>
       
   382                         <span class="nx">message</span> <span class="o">=</span> <span class="s2">&quot;Test case \&quot;&quot;</span> <span class="o">+</span> <span class="nx">event</span><span class="o">.</span><span class="nx">testCase</span><span class="o">.</span><span class="nx">name</span> <span class="o">+</span> <span class="s2">&quot;\&quot; completed.\nPassed:&quot;</span> <span class="o">+</span> 
       
   383                             <span class="nx">event</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">passed</span> <span class="o">+</span> <span class="s2">&quot; Failed:&quot;</span> <span class="o">+</span> <span class="nx">event</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">failed</span> <span class="o">+</span> <span class="s2">&quot; Total:&quot;</span> <span class="o">+</span> <span class="nx">event</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">total</span><span class="o">;</span>
       
   384                         <span class="nx">messageType</span> <span class="o">=</span> <span class="s2">&quot;info&quot;</span><span class="o">;</span>
       
   385                         <span class="k">break</span><span class="o">;</span>
       
   386                     <span class="nx">default</span><span class="o">:</span>
       
   387                         <span class="nx">message</span> <span class="o">=</span> <span class="s2">&quot;Unexpected event &quot;</span> <span class="o">+</span> <span class="nx">event</span><span class="o">.</span><span class="nx">type</span><span class="o">;</span>
       
   388                         <span class="nx">message</span> <span class="o">=</span> <span class="s2">&quot;info&quot;</span><span class="o">;</span>
       
   389                 <span class="o">}</span>
       
   390             
       
   391                 <span class="c">//only log if required</span>
       
   392 <span class="c"></span>                <span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_log</span><span class="o">){</span>
       
   393                     <span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="nx">message</span><span class="o">,</span> <span class="nx">messageType</span><span class="o">,</span> <span class="s2">&quot;TestRunner&quot;</span><span class="o">);</span>
       
   394                 <span class="o">}</span>
       
   395             <span class="o">},</span>
       
   396 
       
   397             <span class="c">//-------------------------------------------------------------------------</span>
       
   398 <span class="c"></span>            <span class="c">// Test Tree-Related Methods</span>
       
   399 <span class="c"></span>            <span class="c">//-------------------------------------------------------------------------</span>
       
   400 <span class="c"></span>    
       
   401             <span class="c">/**</span>
       
   402 <span class="c">             * Adds a test case to the test tree as a child of the specified node.</span>
       
   403 <span class="c">             * @param {TestNode} parentNode The node to add the test case to as a child.</span>
       
   404 <span class="c">             * @param {Y.Test.Case} testCase The test case to add.</span>
       
   405 <span class="c">             * @return {Void}</span>
       
   406 <span class="c">             * @static</span>
       
   407 <span class="c">             * @private</span>
       
   408 <span class="c">             * @method _addTestCaseToTestTree</span>
       
   409 <span class="c">             */</span>
       
   410            <span class="nx">_addTestCaseToTestTree</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">parentNode</span><span class="o">,</span> <span class="nx">testCase</span> <span class="c">/*:Y.Test.Case*/</span><span class="o">){</span>
       
   411                 
       
   412                 <span class="c">//add the test suite</span>
       
   413 <span class="c"></span>                <span class="k">var</span> <span class="nx">node</span> <span class="o">=</span> <span class="nx">parentNode</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">testCase</span><span class="o">),</span>
       
   414                     <span class="nx">prop</span><span class="o">,</span>
       
   415                     <span class="nx">testName</span><span class="o">;</span>
       
   416                 
       
   417                 <span class="c">//iterate over the items in the test case</span>
       
   418 <span class="c"></span>                <span class="k">for</span> <span class="o">(</span><span class="nx">prop</span> <span class="k">in</span> <span class="nx">testCase</span><span class="o">){</span>
       
   419                     <span class="k">if</span> <span class="o">((</span><span class="nx">prop</span><span class="o">.</span><span class="nx">indexOf</span><span class="o">(</span><span class="s2">&quot;test&quot;</span><span class="o">)</span> <span class="o">===</span> <span class="m">0</span> <span class="o">||</span> <span class="o">(</span><span class="nx">prop</span><span class="o">.</span><span class="nx">toLowerCase</span><span class="o">().</span><span class="nx">indexOf</span><span class="o">(</span><span class="s2">&quot;should&quot;</span><span class="o">)</span> <span class="o">&gt;</span> <span class="o">-</span><span class="m">1</span> <span class="o">&amp;&amp;</span> <span class="nx">prop</span><span class="o">.</span><span class="nx">indexOf</span><span class="o">(</span><span class="s2">&quot; &quot;</span><span class="o">)</span> <span class="o">&gt;</span> <span class="o">-</span><span class="m">1</span> <span class="o">))&amp;&amp;</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isFunction</span><span class="o">(</span><span class="nx">testCase</span><span class="o">[</span><span class="nx">prop</span><span class="o">])){</span>
       
   420                         <span class="nx">node</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">prop</span><span class="o">);</span>
       
   421                     <span class="o">}</span>
       
   422                 <span class="o">}</span>
       
   423              
       
   424             <span class="o">},</span>
       
   425             
       
   426             <span class="c">/**</span>
       
   427 <span class="c">             * Adds a test suite to the test tree as a child of the specified node.</span>
       
   428 <span class="c">             * @param {TestNode} parentNode The node to add the test suite to as a child.</span>
       
   429 <span class="c">             * @param {Y.Test.Suite} testSuite The test suite to add.</span>
       
   430 <span class="c">             * @return {Void}</span>
       
   431 <span class="c">             * @static</span>
       
   432 <span class="c">             * @private</span>
       
   433 <span class="c">             * @method _addTestSuiteToTestTree</span>
       
   434 <span class="c">             */</span>
       
   435             <span class="nx">_addTestSuiteToTestTree</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">parentNode</span><span class="o">,</span> <span class="nx">testSuite</span> <span class="c">/*:Y.Test.Suite*/</span><span class="o">)</span> <span class="o">{</span>
       
   436                 
       
   437                 <span class="c">//add the test suite</span>
       
   438 <span class="c"></span>                <span class="k">var</span> <span class="nx">node</span> <span class="o">=</span> <span class="nx">parentNode</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">testSuite</span><span class="o">);</span>
       
   439                 
       
   440                 <span class="c">//iterate over the items in the master suite</span>
       
   441 <span class="c"></span>                <span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">i</span><span class="o">=</span><span class="m">0</span><span class="o">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">testSuite</span><span class="o">.</span><span class="nx">items</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span> <span class="nx">i</span><span class="o">++){</span>
       
   442                     <span class="k">if</span> <span class="o">(</span><span class="nx">testSuite</span><span class="o">.</span><span class="nx">items</span><span class="o">[</span><span class="nx">i</span><span class="o">]</span> <span class="k">instanceof</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Test</span><span class="o">.</span><span class="nx">Suite</span><span class="o">)</span> <span class="o">{</span>
       
   443                         <span class="k">this</span><span class="o">.</span><span class="nx">_addTestSuiteToTestTree</span><span class="o">(</span><span class="nx">node</span><span class="o">,</span> <span class="nx">testSuite</span><span class="o">.</span><span class="nx">items</span><span class="o">[</span><span class="nx">i</span><span class="o">]);</span>
       
   444                     <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">testSuite</span><span class="o">.</span><span class="nx">items</span><span class="o">[</span><span class="nx">i</span><span class="o">]</span> <span class="k">instanceof</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Test</span><span class="o">.</span><span class="nx">Case</span><span class="o">)</span> <span class="o">{</span>
       
   445                         <span class="k">this</span><span class="o">.</span><span class="nx">_addTestCaseToTestTree</span><span class="o">(</span><span class="nx">node</span><span class="o">,</span> <span class="nx">testSuite</span><span class="o">.</span><span class="nx">items</span><span class="o">[</span><span class="nx">i</span><span class="o">]);</span>
       
   446                     <span class="o">}</span>                   
       
   447                 <span class="o">}</span>            
       
   448             <span class="o">},</span>
       
   449             
       
   450             <span class="c">/**</span>
       
   451 <span class="c">             * Builds the test tree based on items in the master suite. The tree is a hierarchical</span>
       
   452 <span class="c">             * representation of the test suites, test cases, and test functions. The resulting tree</span>
       
   453 <span class="c">             * is stored in _root and the pointer _cur is set to the root initially.</span>
       
   454 <span class="c">             * @return {Void}</span>
       
   455 <span class="c">             * @static</span>
       
   456 <span class="c">             * @private</span>
       
   457 <span class="c">             * @method _buildTestTree</span>
       
   458 <span class="c">             */</span>
       
   459             <span class="nx">_buildTestTree</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
   460             
       
   461                 <span class="k">this</span><span class="o">.</span><span class="nx">_root</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">TestNode</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">masterSuite</span><span class="o">);</span>
       
   462                 <span class="k">this</span><span class="o">.</span><span class="nx">_cur</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_root</span><span class="o">;</span>
       
   463                 
       
   464                 <span class="c">//iterate over the items in the master suite</span>
       
   465 <span class="c"></span>                <span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">i</span><span class="o">=</span><span class="m">0</span><span class="o">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="k">this</span><span class="o">.</span><span class="nx">masterSuite</span><span class="o">.</span><span class="nx">items</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span> <span class="nx">i</span><span class="o">++){</span>
       
   466                     <span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">masterSuite</span><span class="o">.</span><span class="nx">items</span><span class="o">[</span><span class="nx">i</span><span class="o">]</span> <span class="k">instanceof</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Test</span><span class="o">.</span><span class="nx">Suite</span><span class="o">)</span> <span class="o">{</span>
       
   467                         <span class="k">this</span><span class="o">.</span><span class="nx">_addTestSuiteToTestTree</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_root</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">masterSuite</span><span class="o">.</span><span class="nx">items</span><span class="o">[</span><span class="nx">i</span><span class="o">]);</span>
       
   468                     <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">masterSuite</span><span class="o">.</span><span class="nx">items</span><span class="o">[</span><span class="nx">i</span><span class="o">]</span> <span class="k">instanceof</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Test</span><span class="o">.</span><span class="nx">Case</span><span class="o">)</span> <span class="o">{</span>
       
   469                         <span class="k">this</span><span class="o">.</span><span class="nx">_addTestCaseToTestTree</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_root</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">masterSuite</span><span class="o">.</span><span class="nx">items</span><span class="o">[</span><span class="nx">i</span><span class="o">]);</span>
       
   470                     <span class="o">}</span>                   
       
   471                 <span class="o">}</span>            
       
   472             
       
   473             <span class="o">},</span> 
       
   474         
       
   475             <span class="c">//-------------------------------------------------------------------------</span>
       
   476 <span class="c"></span>            <span class="c">// Private Methods</span>
       
   477 <span class="c"></span>            <span class="c">//-------------------------------------------------------------------------</span>
       
   478 <span class="c"></span>            
       
   479             <span class="c">/**</span>
       
   480 <span class="c">             * Handles the completion of a test object&#39;s tests. Tallies test results </span>
       
   481 <span class="c">             * from one level up to the next.</span>
       
   482 <span class="c">             * @param {TestNode} node The TestNode representing the test object.</span>
       
   483 <span class="c">             * @return {Void}</span>
       
   484 <span class="c">             * @method _handleTestObjectComplete</span>
       
   485 <span class="c">             * @private</span>
       
   486 <span class="c">             */</span>
       
   487             <span class="nx">_handleTestObjectComplete</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">node</span><span class="o">)</span> <span class="o">{</span>
       
   488                 <span class="k">if</span> <span class="o">(</span><span class="nx">Y</span><span class="o">.</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isObject</span><span class="o">(</span><span class="nx">node</span><span class="o">.</span><span class="nx">testObject</span><span class="o">)){</span>
       
   489                     <span class="nx">node</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">passed</span> <span class="o">+=</span> <span class="nx">node</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">passed</span><span class="o">;</span>
       
   490                     <span class="nx">node</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">failed</span> <span class="o">+=</span> <span class="nx">node</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">failed</span><span class="o">;</span>
       
   491                     <span class="nx">node</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">total</span> <span class="o">+=</span> <span class="nx">node</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">total</span><span class="o">;</span>                
       
   492                     <span class="nx">node</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">ignored</span> <span class="o">+=</span> <span class="nx">node</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">ignored</span><span class="o">;</span>                
       
   493                     <span class="nx">node</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">results</span><span class="o">[</span><span class="nx">node</span><span class="o">.</span><span class="nx">testObject</span><span class="o">.</span><span class="nx">name</span><span class="o">]</span> <span class="o">=</span> <span class="nx">node</span><span class="o">.</span><span class="nx">results</span><span class="o">;</span>
       
   494                 
       
   495                     <span class="k">if</span> <span class="o">(</span><span class="nx">node</span><span class="o">.</span><span class="nx">testObject</span> <span class="k">instanceof</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Test</span><span class="o">.</span><span class="nx">Suite</span><span class="o">){</span>
       
   496                         <span class="nx">node</span><span class="o">.</span><span class="nx">testObject</span><span class="o">.</span><span class="nx">tearDown</span><span class="o">();</span>
       
   497                         <span class="k">this</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">TEST_SUITE_COMPLETE_EVENT</span><span class="o">,</span> <span class="o">{</span> <span class="nx">testSuite</span><span class="o">:</span> <span class="nx">node</span><span class="o">.</span><span class="nx">testObject</span><span class="o">,</span> <span class="nx">results</span><span class="o">:</span> <span class="nx">node</span><span class="o">.</span><span class="nx">results</span><span class="o">});</span>
       
   498                     <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">node</span><span class="o">.</span><span class="nx">testObject</span> <span class="k">instanceof</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Test</span><span class="o">.</span><span class="nx">Case</span><span class="o">){</span>
       
   499                         <span class="k">this</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">TEST_CASE_COMPLETE_EVENT</span><span class="o">,</span> <span class="o">{</span> <span class="nx">testCase</span><span class="o">:</span> <span class="nx">node</span><span class="o">.</span><span class="nx">testObject</span><span class="o">,</span> <span class="nx">results</span><span class="o">:</span> <span class="nx">node</span><span class="o">.</span><span class="nx">results</span><span class="o">});</span>
       
   500                     <span class="o">}</span>      
       
   501                 <span class="o">}</span> 
       
   502             <span class="o">},</span>                
       
   503             
       
   504             <span class="c">//-------------------------------------------------------------------------</span>
       
   505 <span class="c"></span>            <span class="c">// Navigation Methods</span>
       
   506 <span class="c"></span>            <span class="c">//-------------------------------------------------------------------------</span>
       
   507 <span class="c"></span>            
       
   508             <span class="c">/**</span>
       
   509 <span class="c">             * Retrieves the next node in the test tree.</span>
       
   510 <span class="c">             * @return {TestNode} The next node in the test tree or null if the end is reached.</span>
       
   511 <span class="c">             * @private</span>
       
   512 <span class="c">             * @static</span>
       
   513 <span class="c">             * @method _next</span>
       
   514 <span class="c">             */</span>
       
   515             <span class="nx">_next</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
   516             
       
   517                 <span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_cur</span><span class="o">.</span><span class="nx">firstChild</span><span class="o">)</span> <span class="o">{</span>
       
   518                     <span class="k">this</span><span class="o">.</span><span class="nx">_cur</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_cur</span><span class="o">.</span><span class="nx">firstChild</span><span class="o">;</span>
       
   519                 <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_cur</span><span class="o">.</span><span class="nx">next</span><span class="o">)</span> <span class="o">{</span>
       
   520                     <span class="k">this</span><span class="o">.</span><span class="nx">_cur</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_cur</span><span class="o">.</span><span class="nx">next</span><span class="o">;</span>            
       
   521                 <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   522                     <span class="k">while</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_cur</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="k">this</span><span class="o">.</span><span class="nx">_cur</span><span class="o">.</span><span class="nx">next</span> <span class="o">&amp;&amp;</span> <span class="k">this</span><span class="o">.</span><span class="nx">_cur</span> <span class="o">!==</span> <span class="k">this</span><span class="o">.</span><span class="nx">_root</span><span class="o">){</span>
       
   523                         <span class="k">this</span><span class="o">.</span><span class="nx">_handleTestObjectComplete</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_cur</span><span class="o">);</span>
       
   524                         <span class="k">this</span><span class="o">.</span><span class="nx">_cur</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_cur</span><span class="o">.</span><span class="nx">parent</span><span class="o">;</span>
       
   525                     <span class="o">}</span>
       
   526                     
       
   527                     <span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_cur</span> <span class="o">==</span> <span class="k">this</span><span class="o">.</span><span class="nx">_root</span><span class="o">){</span>
       
   528                         <span class="k">this</span><span class="o">.</span><span class="nx">_cur</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s2">&quot;report&quot;</span><span class="o">;</span>
       
   529                         <span class="k">this</span><span class="o">.</span><span class="nx">_cur</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">timestamp</span> <span class="o">=</span> <span class="o">(</span><span class="k">new</span> <span class="nb">Date</span><span class="o">()).</span><span class="nx">toLocaleString</span><span class="o">();</span>
       
   530                         <span class="k">this</span><span class="o">.</span><span class="nx">_cur</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">duration</span> <span class="o">=</span> <span class="o">(</span><span class="k">new</span> <span class="nb">Date</span><span class="o">())</span> <span class="o">-</span> <span class="k">this</span><span class="o">.</span><span class="nx">_cur</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">duration</span><span class="o">;</span>                            
       
   531                         <span class="k">this</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">COMPLETE_EVENT</span><span class="o">,</span> <span class="o">{</span> <span class="nx">results</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_cur</span><span class="o">.</span><span class="nx">results</span><span class="o">});</span>
       
   532                         <span class="k">this</span><span class="o">.</span><span class="nx">_cur</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
       
   533                     <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   534                         <span class="k">this</span><span class="o">.</span><span class="nx">_handleTestObjectComplete</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_cur</span><span class="o">);</span>               
       
   535                         <span class="k">this</span><span class="o">.</span><span class="nx">_cur</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_cur</span><span class="o">.</span><span class="nx">next</span><span class="o">;</span>                
       
   536                     <span class="o">}</span>
       
   537                 <span class="o">}</span>
       
   538             
       
   539                 <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_cur</span><span class="o">;</span>
       
   540             <span class="o">},</span>
       
   541             
       
   542             <span class="c">/**</span>
       
   543 <span class="c">             * Runs a test case or test suite, returning the results.</span>
       
   544 <span class="c">             * @param {Y.Test.Case|Y.Test.Suite} testObject The test case or test suite to run.</span>
       
   545 <span class="c">             * @return {Object} Results of the execution with properties passed, failed, and total.</span>
       
   546 <span class="c">             * @private</span>
       
   547 <span class="c">             * @method _run</span>
       
   548 <span class="c">             * @static</span>
       
   549 <span class="c">             */</span>
       
   550             <span class="nx">_run</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
   551             
       
   552                 <span class="c">//flag to indicate if the TestRunner should wait before continuing</span>
       
   553 <span class="c"></span>                <span class="k">var</span> <span class="nx">shouldWait</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
       
   554                 
       
   555                 <span class="c">//get the next test node</span>
       
   556 <span class="c"></span>                <span class="k">var</span> <span class="nx">node</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_next</span><span class="o">();</span>
       
   557                 
       
   558                 <span class="k">if</span> <span class="o">(</span><span class="nx">node</span> <span class="o">!==</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
       
   559                     <span class="k">var</span> <span class="nx">testObject</span> <span class="o">=</span> <span class="nx">node</span><span class="o">.</span><span class="nx">testObject</span><span class="o">;</span>
       
   560                     
       
   561                     <span class="c">//figure out what to do</span>
       
   562 <span class="c"></span>                    <span class="k">if</span> <span class="o">(</span><span class="nx">Y</span><span class="o">.</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isObject</span><span class="o">(</span><span class="nx">testObject</span><span class="o">)){</span>
       
   563                         <span class="k">if</span> <span class="o">(</span><span class="nx">testObject</span> <span class="k">instanceof</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Test</span><span class="o">.</span><span class="nx">Suite</span><span class="o">){</span>
       
   564                             <span class="k">this</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">TEST_SUITE_BEGIN_EVENT</span><span class="o">,</span> <span class="o">{</span> <span class="nx">testSuite</span><span class="o">:</span> <span class="nx">testObject</span> <span class="o">});</span>
       
   565                             <span class="nx">testObject</span><span class="o">.</span><span class="nx">setUp</span><span class="o">();</span>
       
   566                         <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">testObject</span> <span class="k">instanceof</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Test</span><span class="o">.</span><span class="nx">Case</span><span class="o">){</span>
       
   567                             <span class="k">this</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">TEST_CASE_BEGIN_EVENT</span><span class="o">,</span> <span class="o">{</span> <span class="nx">testCase</span><span class="o">:</span> <span class="nx">testObject</span> <span class="o">});</span>
       
   568                         <span class="o">}</span>
       
   569                         
       
   570                         <span class="c">//some environments don&#39;t support setTimeout</span>
       
   571 <span class="c"></span>                        <span class="k">if</span> <span class="o">(</span><span class="k">typeof</span> <span class="nx">setTimeout</span> <span class="o">!=</span> <span class="s2">&quot;undefined&quot;</span><span class="o">){</span>                    
       
   572                             <span class="nx">setTimeout</span><span class="o">(</span><span class="k">function</span><span class="o">(){</span>
       
   573                                 <span class="nx">Y</span><span class="o">.</span><span class="nx">Test</span><span class="o">.</span><span class="nx">Runner</span><span class="o">.</span><span class="nx">_run</span><span class="o">();</span>
       
   574                             <span class="o">},</span> <span class="m">0</span><span class="o">);</span>
       
   575                         <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   576                             <span class="k">this</span><span class="o">.</span><span class="nx">_run</span><span class="o">();</span>
       
   577                         <span class="o">}</span>
       
   578                     <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   579                         <span class="k">this</span><span class="o">.</span><span class="nx">_runTest</span><span class="o">(</span><span class="nx">node</span><span class="o">);</span>
       
   580                     <span class="o">}</span>
       
   581     
       
   582                 <span class="o">}</span>
       
   583             <span class="o">},</span>
       
   584             
       
   585             <span class="nx">_resumeTest</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">segment</span><span class="o">)</span> <span class="o">{</span>
       
   586             
       
   587                 <span class="c">//get relevant information</span>
       
   588 <span class="c"></span>                <span class="k">var</span> <span class="nx">node</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_cur</span><span class="o">;</span>                
       
   589                 
       
   590                 <span class="c">//we know there&#39;s no more waiting now</span>
       
   591 <span class="c"></span>                <span class="k">this</span><span class="o">.</span><span class="nx">_waiting</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
       
   592                 
       
   593                 <span class="c">//if there&#39;s no node, it probably means a wait() was called after resume()</span>
       
   594 <span class="c"></span>                <span class="k">if</span> <span class="o">(!</span><span class="nx">node</span><span class="o">){</span>
       
   595                     <span class="c">//TODO: Handle in some way?</span>
       
   596 <span class="c"></span>                    <span class="c">//console.log(&quot;wait() called after resume()&quot;);</span>
       
   597 <span class="c"></span>                    <span class="c">//this.fire(&quot;error&quot;, { testCase: &quot;(unknown)&quot;, test: &quot;(unknown)&quot;, error: new Error(&quot;wait() called after resume()&quot;)} );</span>
       
   598 <span class="c"></span>                    <span class="k">return</span><span class="o">;</span>
       
   599                 <span class="o">}</span>
       
   600                 
       
   601                 <span class="k">var</span> <span class="nx">testName</span> <span class="o">=</span> <span class="nx">node</span><span class="o">.</span><span class="nx">testObject</span><span class="o">;</span>
       
   602                 <span class="k">var</span> <span class="nx">testCase</span> <span class="c">/*:Y.Test.Case*/</span> <span class="o">=</span> <span class="nx">node</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">testObject</span><span class="o">;</span>
       
   603             
       
   604                 <span class="c">//cancel other waits if available</span>
       
   605 <span class="c"></span>                <span class="k">if</span> <span class="o">(</span><span class="nx">testCase</span><span class="o">.</span><span class="nx">__yui_wait</span><span class="o">){</span>
       
   606                     <span class="nx">clearTimeout</span><span class="o">(</span><span class="nx">testCase</span><span class="o">.</span><span class="nx">__yui_wait</span><span class="o">);</span>
       
   607                     <span class="nx">delete</span> <span class="nx">testCase</span><span class="o">.</span><span class="nx">__yui_wait</span><span class="o">;</span>
       
   608                 <span class="o">}</span>
       
   609 
       
   610                 <span class="c">//get the &quot;should&quot; test cases</span>
       
   611 <span class="c"></span>                <span class="k">var</span> <span class="nx">shouldFail</span> <span class="o">=</span> <span class="o">(</span><span class="nx">testCase</span><span class="o">.</span><span class="nx">_should</span><span class="o">.</span><span class="nx">fail</span> <span class="o">||</span> <span class="o">{})[</span><span class="nx">testName</span><span class="o">];</span>
       
   612                 <span class="k">var</span> <span class="nx">shouldError</span> <span class="o">=</span> <span class="o">(</span><span class="nx">testCase</span><span class="o">.</span><span class="nx">_should</span><span class="o">.</span><span class="nx">error</span> <span class="o">||</span> <span class="o">{})[</span><span class="nx">testName</span><span class="o">];</span>
       
   613                 
       
   614                 <span class="c">//variable to hold whether or not the test failed</span>
       
   615 <span class="c"></span>                <span class="k">var</span> <span class="nx">failed</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
       
   616                 <span class="k">var</span> <span class="nx">error</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
       
   617                     
       
   618                 <span class="c">//try the test</span>
       
   619 <span class="c"></span>                <span class="k">try</span> <span class="o">{</span>
       
   620                 
       
   621                     <span class="c">//run the test</span>
       
   622 <span class="c"></span>                    <span class="nx">segment</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="nx">testCase</span><span class="o">);</span>
       
   623                     
       
   624                     <span class="c">//if it should fail, and it got here, then it&#39;s a fail because it didn&#39;t</span>
       
   625 <span class="c"></span>                    <span class="k">if</span> <span class="o">(</span><span class="nx">shouldFail</span><span class="o">){</span>
       
   626                         <span class="nx">error</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Assert</span><span class="o">.</span><span class="nx">ShouldFail</span><span class="o">();</span>
       
   627                         <span class="nx">failed</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
       
   628                     <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">shouldError</span><span class="o">){</span>
       
   629                         <span class="nx">error</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Assert</span><span class="o">.</span><span class="nx">ShouldError</span><span class="o">();</span>
       
   630                         <span class="nx">failed</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
       
   631                     <span class="o">}</span>
       
   632                                
       
   633                 <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="nx">thrown</span><span class="o">){</span>
       
   634 
       
   635                     <span class="c">//cancel any pending waits, the test already failed</span>
       
   636 <span class="c"></span>                    <span class="k">if</span> <span class="o">(</span><span class="nx">testCase</span><span class="o">.</span><span class="nx">__yui_wait</span><span class="o">){</span>
       
   637                         <span class="nx">clearTimeout</span><span class="o">(</span><span class="nx">testCase</span><span class="o">.</span><span class="nx">__yui_wait</span><span class="o">);</span>
       
   638                         <span class="nx">delete</span> <span class="nx">testCase</span><span class="o">.</span><span class="nx">__yui_wait</span><span class="o">;</span>
       
   639                     <span class="o">}</span>                    
       
   640                 
       
   641                     <span class="c">//figure out what type of error it was</span>
       
   642 <span class="c"></span>                    <span class="k">if</span> <span class="o">(</span><span class="nx">thrown</span> <span class="k">instanceof</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Assert</span><span class="o">.</span><span class="nb">Error</span><span class="o">)</span> <span class="o">{</span>
       
   643                         <span class="k">if</span> <span class="o">(!</span><span class="nx">shouldFail</span><span class="o">){</span>
       
   644                             <span class="nx">error</span> <span class="o">=</span> <span class="nx">thrown</span><span class="o">;</span>
       
   645                             <span class="nx">failed</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
       
   646                         <span class="o">}</span>
       
   647                     <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">thrown</span> <span class="k">instanceof</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Test</span><span class="o">.</span><span class="nx">Wait</span><span class="o">){</span>
       
   648                     
       
   649                         <span class="k">if</span> <span class="o">(</span><span class="nx">Y</span><span class="o">.</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isFunction</span><span class="o">(</span><span class="nx">thrown</span><span class="o">.</span><span class="nx">segment</span><span class="o">)){</span>
       
   650                             <span class="k">if</span> <span class="o">(</span><span class="nx">Y</span><span class="o">.</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isNumber</span><span class="o">(</span><span class="nx">thrown</span><span class="o">.</span><span class="nx">delay</span><span class="o">)){</span>
       
   651                             
       
   652                                 <span class="c">//some environments don&#39;t support setTimeout</span>
       
   653 <span class="c"></span>                                <span class="k">if</span> <span class="o">(</span><span class="k">typeof</span> <span class="nx">setTimeout</span> <span class="o">!=</span> <span class="s2">&quot;undefined&quot;</span><span class="o">){</span>
       
   654                                     <span class="nx">testCase</span><span class="o">.</span><span class="nx">__yui_wait</span> <span class="o">=</span> <span class="nx">setTimeout</span><span class="o">(</span><span class="k">function</span><span class="o">(){</span>
       
   655                                         <span class="nx">Y</span><span class="o">.</span><span class="nx">Test</span><span class="o">.</span><span class="nx">Runner</span><span class="o">.</span><span class="nx">_resumeTest</span><span class="o">(</span><span class="nx">thrown</span><span class="o">.</span><span class="nx">segment</span><span class="o">);</span>
       
   656                                     <span class="o">},</span> <span class="nx">thrown</span><span class="o">.</span><span class="nx">delay</span><span class="o">);</span>
       
   657                                     <span class="k">this</span><span class="o">.</span><span class="nx">_waiting</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
       
   658                                 <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   659                                     <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="o">(</span><span class="s2">&quot;Asynchronous tests not supported in this environment.&quot;</span><span class="o">);</span>
       
   660                                 <span class="o">}</span>
       
   661                             <span class="o">}</span>
       
   662                         <span class="o">}</span>
       
   663                         
       
   664                         <span class="k">return</span><span class="o">;</span>
       
   665                     
       
   666                     <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   667                         <span class="c">//first check to see if it should error</span>
       
   668 <span class="c"></span>                        <span class="k">if</span> <span class="o">(!</span><span class="nx">shouldError</span><span class="o">)</span> <span class="o">{</span>                        
       
   669                             <span class="nx">error</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Assert</span><span class="o">.</span><span class="nx">UnexpectedError</span><span class="o">(</span><span class="nx">thrown</span><span class="o">);</span>
       
   670                             <span class="nx">failed</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
       
   671                         <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   672                             <span class="c">//check to see what type of data we have</span>
       
   673 <span class="c"></span>                            <span class="k">if</span> <span class="o">(</span><span class="nx">Y</span><span class="o">.</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">(</span><span class="nx">shouldError</span><span class="o">)){</span>
       
   674                                 
       
   675                                 <span class="c">//if it&#39;s a string, check the error message</span>
       
   676 <span class="c"></span>                                <span class="k">if</span> <span class="o">(</span><span class="nx">thrown</span><span class="o">.</span><span class="nx">message</span> <span class="o">!=</span> <span class="nx">shouldError</span><span class="o">){</span>
       
   677                                     <span class="nx">error</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Assert</span><span class="o">.</span><span class="nx">UnexpectedError</span><span class="o">(</span><span class="nx">thrown</span><span class="o">);</span>
       
   678                                     <span class="nx">failed</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>                                    
       
   679                                 <span class="o">}</span>
       
   680                             <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">Y</span><span class="o">.</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isFunction</span><span class="o">(</span><span class="nx">shouldError</span><span class="o">)){</span>
       
   681                             
       
   682                                 <span class="c">//if it&#39;s a function, see if the error is an instance of it</span>
       
   683 <span class="c"></span>                                <span class="k">if</span> <span class="o">(!(</span><span class="nx">thrown</span> <span class="k">instanceof</span> <span class="nx">shouldError</span><span class="o">)){</span>
       
   684                                     <span class="nx">error</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Assert</span><span class="o">.</span><span class="nx">UnexpectedError</span><span class="o">(</span><span class="nx">thrown</span><span class="o">);</span>
       
   685                                     <span class="nx">failed</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
       
   686                                 <span class="o">}</span>
       
   687                             
       
   688                             <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">Y</span><span class="o">.</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isObject</span><span class="o">(</span><span class="nx">shouldError</span><span class="o">)){</span>
       
   689                             
       
   690                                 <span class="c">//if it&#39;s an object, check the instance and message</span>
       
   691 <span class="c"></span>                                <span class="k">if</span> <span class="o">(!(</span><span class="nx">thrown</span> <span class="k">instanceof</span> <span class="nx">shouldError</span><span class="o">.</span><span class="nx">constructor</span><span class="o">)</span> <span class="o">||</span> 
       
   692                                         <span class="nx">thrown</span><span class="o">.</span><span class="nx">message</span> <span class="o">!=</span> <span class="nx">shouldError</span><span class="o">.</span><span class="nx">message</span><span class="o">){</span>
       
   693                                     <span class="nx">error</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Assert</span><span class="o">.</span><span class="nx">UnexpectedError</span><span class="o">(</span><span class="nx">thrown</span><span class="o">);</span>
       
   694                                     <span class="nx">failed</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>                                    
       
   695                                 <span class="o">}</span>
       
   696                             
       
   697                             <span class="o">}</span>
       
   698                         
       
   699                         <span class="o">}</span>
       
   700                     <span class="o">}</span>
       
   701                     
       
   702                 <span class="o">}</span>
       
   703                 
       
   704                 <span class="c">//fire appropriate event</span>
       
   705 <span class="c"></span>                <span class="k">if</span> <span class="o">(</span><span class="nx">failed</span><span class="o">)</span> <span class="o">{</span>
       
   706                     <span class="k">this</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">TEST_FAIL_EVENT</span><span class="o">,</span> <span class="o">{</span> <span class="nx">testCase</span><span class="o">:</span> <span class="nx">testCase</span><span class="o">,</span> <span class="nx">testName</span><span class="o">:</span> <span class="nx">testName</span><span class="o">,</span> <span class="nx">error</span><span class="o">:</span> <span class="nx">error</span> <span class="o">});</span>
       
   707                 <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   708                     <span class="k">this</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">TEST_PASS_EVENT</span><span class="o">,</span> <span class="o">{</span> <span class="nx">testCase</span><span class="o">:</span> <span class="nx">testCase</span><span class="o">,</span> <span class="nx">testName</span><span class="o">:</span> <span class="nx">testName</span> <span class="o">});</span>
       
   709                 <span class="o">}</span>
       
   710                 
       
   711                 <span class="c">//run the tear down</span>
       
   712 <span class="c"></span>                <span class="nx">testCase</span><span class="o">.</span><span class="nx">tearDown</span><span class="o">();</span>
       
   713                 
       
   714                 <span class="c">//update results</span>
       
   715 <span class="c"></span>                <span class="nx">node</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">results</span><span class="o">[</span><span class="nx">testName</span><span class="o">]</span> <span class="o">=</span> <span class="o">{</span> 
       
   716                     <span class="nx">result</span><span class="o">:</span> <span class="nx">failed</span> <span class="o">?</span> <span class="s2">&quot;fail&quot;</span> <span class="o">:</span> <span class="s2">&quot;pass&quot;</span><span class="o">,</span>
       
   717                     <span class="nx">message</span><span class="o">:</span> <span class="nx">error</span> <span class="o">?</span> <span class="nx">error</span><span class="o">.</span><span class="nx">getMessage</span><span class="o">()</span> <span class="o">:</span> <span class="s2">&quot;Test passed&quot;</span><span class="o">,</span>
       
   718                     <span class="nx">type</span><span class="o">:</span> <span class="s2">&quot;test&quot;</span><span class="o">,</span>
       
   719                     <span class="nx">name</span><span class="o">:</span> <span class="nx">testName</span>
       
   720                 <span class="o">};</span>
       
   721                 
       
   722                 <span class="k">if</span> <span class="o">(</span><span class="nx">failed</span><span class="o">){</span>
       
   723                     <span class="nx">node</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">failed</span><span class="o">++;</span>
       
   724                 <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   725                     <span class="nx">node</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">passed</span><span class="o">++;</span>
       
   726                 <span class="o">}</span>
       
   727                 <span class="nx">node</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">total</span><span class="o">++;</span>
       
   728     
       
   729                 <span class="c">//set timeout not supported in all environments</span>
       
   730 <span class="c"></span>                <span class="k">if</span> <span class="o">(</span><span class="k">typeof</span> <span class="nx">setTimeout</span> <span class="o">!=</span> <span class="s2">&quot;undefined&quot;</span><span class="o">){</span>
       
   731                     <span class="nx">setTimeout</span><span class="o">(</span><span class="k">function</span><span class="o">(){</span>
       
   732                         <span class="nx">Y</span><span class="o">.</span><span class="nx">Test</span><span class="o">.</span><span class="nx">Runner</span><span class="o">.</span><span class="nx">_run</span><span class="o">();</span>
       
   733                     <span class="o">},</span> <span class="m">0</span><span class="o">);</span>
       
   734                 <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   735                     <span class="k">this</span><span class="o">.</span><span class="nx">_run</span><span class="o">();</span>
       
   736                 <span class="o">}</span>
       
   737             
       
   738             <span class="o">},</span>
       
   739             
       
   740             <span class="c">/**</span>
       
   741 <span class="c">             * Handles an error as if it occurred within the currently executing</span>
       
   742 <span class="c">             * test. This is for mock methods that may be called asynchronously</span>
       
   743 <span class="c">             * and therefore out of the scope of the TestRunner. Previously, this</span>
       
   744 <span class="c">             * error would bubble up to the browser. Now, this method is used</span>
       
   745 <span class="c">             * to tell TestRunner about the error. This should never be called</span>
       
   746 <span class="c">             * by anyplace other than the Mock object.</span>
       
   747 <span class="c">             * @param {Error} error The error object.</span>
       
   748 <span class="c">             * @return {Void}</span>
       
   749 <span class="c">             * @method _handleError</span>
       
   750 <span class="c">             * @private</span>
       
   751 <span class="c">             * @static</span>
       
   752 <span class="c">             */</span>
       
   753             <span class="nx">_handleError</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">error</span><span class="o">){</span>
       
   754             
       
   755                 <span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_waiting</span><span class="o">){</span>
       
   756                     <span class="k">this</span><span class="o">.</span><span class="nx">_resumeTest</span><span class="o">(</span><span class="k">function</span><span class="o">(){</span>
       
   757                         <span class="k">throw</span> <span class="nx">error</span><span class="o">;</span>
       
   758                     <span class="o">});</span>
       
   759                 <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   760                     <span class="k">throw</span> <span class="nx">error</span><span class="o">;</span>
       
   761                 <span class="o">}</span>           
       
   762             
       
   763             <span class="o">},</span>
       
   764                     
       
   765             <span class="c">/**</span>
       
   766 <span class="c">             * Runs a single test based on the data provided in the node.</span>
       
   767 <span class="c">             * @param {TestNode} node The TestNode representing the test to run.</span>
       
   768 <span class="c">             * @return {Void}</span>
       
   769 <span class="c">             * @static</span>
       
   770 <span class="c">             * @private</span>
       
   771 <span class="c">             * @name _runTest</span>
       
   772 <span class="c">             */</span>
       
   773             <span class="nx">_runTest</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">node</span><span class="o">)</span> <span class="o">{</span>
       
   774             
       
   775                 <span class="c">//get relevant information</span>
       
   776 <span class="c"></span>                <span class="k">var</span> <span class="nx">testName</span> <span class="o">=</span> <span class="nx">node</span><span class="o">.</span><span class="nx">testObject</span><span class="o">;</span>
       
   777                 <span class="k">var</span> <span class="nx">testCase</span> <span class="c">/*:Y.Test.Case*/</span> <span class="o">=</span> <span class="nx">node</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">testObject</span><span class="o">;</span>
       
   778                 <span class="k">var</span> <span class="nx">test</span> <span class="o">=</span> <span class="nx">testCase</span><span class="o">[</span><span class="nx">testName</span><span class="o">];</span>
       
   779                 
       
   780                 <span class="c">//get the &quot;should&quot; test cases</span>
       
   781 <span class="c"></span>                <span class="k">var</span> <span class="nx">shouldIgnore</span> <span class="o">=</span> <span class="o">(</span><span class="nx">testCase</span><span class="o">.</span><span class="nx">_should</span><span class="o">.</span><span class="nx">ignore</span> <span class="o">||</span> <span class="o">{})[</span><span class="nx">testName</span><span class="o">];</span>
       
   782                 
       
   783                 <span class="c">//figure out if the test should be ignored or not</span>
       
   784 <span class="c"></span>                <span class="k">if</span> <span class="o">(</span><span class="nx">shouldIgnore</span><span class="o">){</span>
       
   785                 
       
   786                     <span class="c">//update results</span>
       
   787 <span class="c"></span>                    <span class="nx">node</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">results</span><span class="o">[</span><span class="nx">testName</span><span class="o">]</span> <span class="o">=</span> <span class="o">{</span> 
       
   788                         <span class="nx">result</span><span class="o">:</span> <span class="s2">&quot;ignore&quot;</span><span class="o">,</span>
       
   789                         <span class="nx">message</span><span class="o">:</span> <span class="s2">&quot;Test ignored&quot;</span><span class="o">,</span>
       
   790                         <span class="nx">type</span><span class="o">:</span> <span class="s2">&quot;test&quot;</span><span class="o">,</span>
       
   791                         <span class="nx">name</span><span class="o">:</span> <span class="nx">testName</span>
       
   792                     <span class="o">};</span>
       
   793                     
       
   794                     <span class="nx">node</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">ignored</span><span class="o">++;</span>
       
   795                     <span class="nx">node</span><span class="o">.</span><span class="nx">parent</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">total</span><span class="o">++;</span>
       
   796                 
       
   797                     <span class="k">this</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">TEST_IGNORE_EVENT</span><span class="o">,</span> <span class="o">{</span> <span class="nx">testCase</span><span class="o">:</span> <span class="nx">testCase</span><span class="o">,</span> <span class="nx">testName</span><span class="o">:</span> <span class="nx">testName</span> <span class="o">});</span>
       
   798                     
       
   799                     <span class="c">//some environments don&#39;t support setTimeout</span>
       
   800 <span class="c"></span>                    <span class="k">if</span> <span class="o">(</span><span class="k">typeof</span> <span class="nx">setTimeout</span> <span class="o">!=</span> <span class="s2">&quot;undefined&quot;</span><span class="o">){</span>                    
       
   801                         <span class="nx">setTimeout</span><span class="o">(</span><span class="k">function</span><span class="o">(){</span>
       
   802                             <span class="nx">Y</span><span class="o">.</span><span class="nx">Test</span><span class="o">.</span><span class="nx">Runner</span><span class="o">.</span><span class="nx">_run</span><span class="o">();</span>
       
   803                         <span class="o">},</span> <span class="m">0</span><span class="o">);</span>              
       
   804                     <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   805                         <span class="k">this</span><span class="o">.</span><span class="nx">_run</span><span class="o">();</span>
       
   806                     <span class="o">}</span>
       
   807     
       
   808                 <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
       
   809                 
       
   810                     <span class="c">//run the setup</span>
       
   811 <span class="c"></span>                    <span class="nx">testCase</span><span class="o">.</span><span class="nx">setUp</span><span class="o">();</span>
       
   812                     
       
   813                     <span class="c">//now call the body of the test</span>
       
   814 <span class="c"></span>                    <span class="k">this</span><span class="o">.</span><span class="nx">_resumeTest</span><span class="o">(</span><span class="nx">test</span><span class="o">);</span>                
       
   815                 <span class="o">}</span>
       
   816     
       
   817             <span class="o">},</span>        
       
   818             
       
   819             <span class="c">//-------------------------------------------------------------------------</span>
       
   820 <span class="c"></span>            <span class="c">// Protected Methods</span>
       
   821 <span class="c"></span>            <span class="c">//-------------------------------------------------------------------------   </span>
       
   822 <span class="c"></span>        
       
   823             <span class="c">/*</span>
       
   824 <span class="c">             * Fires events for the TestRunner. This overrides the default fire()</span>
       
   825 <span class="c">             * method from EventProvider to add the type property to the data that is</span>
       
   826 <span class="c">             * passed through on each event call.</span>
       
   827 <span class="c">             * @param {String} type The type of event to fire.</span>
       
   828 <span class="c">             * @param {Object} data (Optional) Data for the event.</span>
       
   829 <span class="c">             * @method fire</span>
       
   830 <span class="c">             * @static</span>
       
   831 <span class="c">             * @protected</span>
       
   832 <span class="c">             */</span>
       
   833             <span class="nx">fire</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">data</span><span class="o">)</span> <span class="o">{</span>
       
   834                 <span class="nx">data</span> <span class="o">=</span> <span class="nx">data</span> <span class="o">||</span> <span class="o">{};</span>
       
   835                 <span class="nx">data</span><span class="o">.</span><span class="nx">type</span> <span class="o">=</span> <span class="nx">type</span><span class="o">;</span>
       
   836                 <span class="nx">TestRunner</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">fire</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">type</span><span class="o">,</span> <span class="nx">data</span><span class="o">);</span>
       
   837             <span class="o">},</span>
       
   838             
       
   839             <span class="c">//-------------------------------------------------------------------------</span>
       
   840 <span class="c"></span>            <span class="c">// Public Methods</span>
       
   841 <span class="c"></span>            <span class="c">//-------------------------------------------------------------------------   </span>
       
   842 <span class="c"></span>        
       
   843             <span class="c">/**</span>
       
   844 <span class="c">             * Adds a test suite or test case to the list of test objects to run.</span>
       
   845 <span class="c">             * @param testObject Either a TestCase or a TestSuite that should be run.</span>
       
   846 <span class="c">             * @return {Void}</span>
       
   847 <span class="c">             * @method add</span>
       
   848 <span class="c">             * @static</span>
       
   849 <span class="c">             */</span>
       
   850             <span class="nx">add</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">testObject</span><span class="o">)</span> <span class="o">{</span>
       
   851                 <span class="k">this</span><span class="o">.</span><span class="nx">masterSuite</span><span class="o">.</span><span class="nx">add</span><span class="o">(</span><span class="nx">testObject</span><span class="o">);</span>
       
   852                 <span class="k">return</span> <span class="k">this</span><span class="o">;</span>
       
   853             <span class="o">},</span>
       
   854             
       
   855             <span class="c">/**</span>
       
   856 <span class="c">             * Removes all test objects from the runner.</span>
       
   857 <span class="c">             * @return {Void}</span>
       
   858 <span class="c">             * @method clear</span>
       
   859 <span class="c">             * @static</span>
       
   860 <span class="c">             */</span>
       
   861             <span class="nx">clear</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
       
   862                 <span class="k">this</span><span class="o">.</span><span class="nx">masterSuite</span><span class="o">.</span><span class="nx">items</span> <span class="o">=</span> <span class="o">[];</span>
       
   863             <span class="o">},</span>
       
   864             
       
   865             <span class="c">/**</span>
       
   866 <span class="c">             * Indicates if the TestRunner is waiting for a test to resume</span>
       
   867 <span class="c">             * @return {Boolean} True if the TestRunner is waiting, false if not.</span>
       
   868 <span class="c">             * @method isWaiting</span>
       
   869 <span class="c">             * @static</span>
       
   870 <span class="c">             */</span>
       
   871             <span class="nx">isWaiting</span><span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
       
   872                 <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_waiting</span><span class="o">;</span>
       
   873             <span class="o">},</span>
       
   874             
       
   875             <span class="c">/**</span>
       
   876 <span class="c">             * Resumes the TestRunner after wait() was called.</span>
       
   877 <span class="c">             * @param {Function} segment The function to run as the rest</span>
       
   878 <span class="c">             *      of the haulted test.</span>
       
   879 <span class="c">             * @return {Void}</span>
       
   880 <span class="c">             * @method resume</span>
       
   881 <span class="c">             * @static</span>
       
   882 <span class="c">             */</span>
       
   883             <span class="nx">resume</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">segment</span><span class="o">)</span> <span class="o">{</span>
       
   884                 <span class="k">this</span><span class="o">.</span><span class="nx">_resumeTest</span><span class="o">(</span><span class="nx">segment</span> <span class="o">||</span> <span class="k">function</span><span class="o">(){});</span>
       
   885             <span class="o">},</span>
       
   886         
       
   887             <span class="c">/**</span>
       
   888 <span class="c">             * Runs the test suite.</span>
       
   889 <span class="c">             * @return {Void}</span>
       
   890 <span class="c">             * @method run</span>
       
   891 <span class="c">             * @static</span>
       
   892 <span class="c">             */</span>
       
   893             <span class="nx">run</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">testObject</span><span class="o">)</span> <span class="o">{</span>
       
   894                 
       
   895                 <span class="c">//pointer to runner to avoid scope issues </span>
       
   896 <span class="c"></span>                <span class="k">var</span> <span class="nx">runner</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Test</span><span class="o">.</span><span class="nx">Runner</span><span class="o">;</span>
       
   897     
       
   898                 <span class="c">//build the test tree</span>
       
   899 <span class="c"></span>                <span class="nx">runner</span><span class="o">.</span><span class="nx">_buildTestTree</span><span class="o">();</span>
       
   900                             
       
   901                 <span class="c">//set when the test started</span>
       
   902 <span class="c"></span>                <span class="nx">runner</span><span class="o">.</span><span class="nx">_root</span><span class="o">.</span><span class="nx">results</span><span class="o">.</span><span class="nx">duration</span> <span class="o">=</span> <span class="o">(</span><span class="k">new</span> <span class="nb">Date</span><span class="o">()).</span><span class="nx">valueOf</span><span class="o">();</span>
       
   903                 
       
   904                 <span class="c">//fire the begin event</span>
       
   905 <span class="c"></span>                <span class="nx">runner</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">runner</span><span class="o">.</span><span class="nx">BEGIN_EVENT</span><span class="o">);</span>
       
   906            
       
   907                 <span class="c">//begin the testing</span>
       
   908 <span class="c"></span>                <span class="nx">runner</span><span class="o">.</span><span class="nx">_run</span><span class="o">();</span>
       
   909             <span class="o">}</span>    
       
   910         <span class="o">});</span>
       
   911         
       
   912         <span class="k">return</span> <span class="k">new</span> <span class="nx">TestRunner</span><span class="o">();</span>
       
   913         
       
   914     <span class="o">})();</span>
       
   915 </pre></div>
       
   916 
       
   917                     </div>
       
   918 			</div>
       
   919 		</div>
       
   920 		<div class="yui-b">
       
   921             <div class="nav">
       
   922 
       
   923                     <div id="moduleList" class="module">
       
   924                         <h4>Modules</h4>
       
   925                         <ul class="content">
       
   926                                 <li class=""><a href="module_anim.html" title="anim">anim</a></li>
       
   927                                 <li class=""><a href="module_async-queue.html" title="async-queue">async-queue</a></li>
       
   928                                 <li class=""><a href="module_attribute.html" title="attribute">attribute</a></li>
       
   929                                 <li class=""><a href="module_base.html" title="base">base</a></li>
       
   930                                 <li class=""><a href="module_cache.html" title="cache">cache</a></li>
       
   931                                 <li class=""><a href="module_classnamemanager.html" title="classnamemanager">classnamemanager</a></li>
       
   932                                 <li class=""><a href="module_collection.html" title="collection">collection</a></li>
       
   933                                 <li class=""><a href="module_console.html" title="console">console</a></li>
       
   934                                 <li class=""><a href="module_console-filters.html" title="console-filters">console-filters</a></li>
       
   935                                 <li class=""><a href="module_cookie.html" title="cookie">cookie</a></li>
       
   936                                 <li class=""><a href="module_dataschema.html" title="dataschema">dataschema</a></li>
       
   937                                 <li class=""><a href="module_datasource.html" title="datasource">datasource</a></li>
       
   938                                 <li class=""><a href="module_datatype.html" title="datatype">datatype</a></li>
       
   939                                 <li class=""><a href="module_dd.html" title="dd">dd</a></li>
       
   940                                 <li class=""><a href="module_dom.html" title="dom">dom</a></li>
       
   941                                 <li class=""><a href="module_dump.html" title="dump">dump</a></li>
       
   942                                 <li class=""><a href="module_event.html" title="event">event</a></li>
       
   943                                 <li class=""><a href="module_event-custom.html" title="event-custom">event-custom</a></li>
       
   944                                 <li class=""><a href="module_event-simulate.html" title="event-simulate">event-simulate</a></li>
       
   945                                 <li class=""><a href="module_history.html" title="history">history</a></li>
       
   946                                 <li class=""><a href="module_imageloader.html" title="imageloader">imageloader</a></li>
       
   947                                 <li class=""><a href="module_io.html" title="io">io</a></li>
       
   948                                 <li class=""><a href="module_json.html" title="json">json</a></li>
       
   949                                 <li class=""><a href="module_node.html" title="node">node</a></li>
       
   950                                 <li class=""><a href="module_node-focusmanager.html" title="node-focusmanager">node-focusmanager</a></li>
       
   951                                 <li class=""><a href="module_node-menunav.html" title="node-menunav">node-menunav</a></li>
       
   952                                 <li class=""><a href="module_oop.html" title="oop">oop</a></li>
       
   953                                 <li class=""><a href="module_overlay.html" title="overlay">overlay</a></li>
       
   954                                 <li class=""><a href="module_plugin.html" title="plugin">plugin</a></li>
       
   955                                 <li class=""><a href="module_profiler.html" title="profiler">profiler</a></li>
       
   956                                 <li class=""><a href="module_queue-promote.html" title="queue-promote">queue-promote</a></li>
       
   957                                 <li class=""><a href="module_slider.html" title="slider">slider</a></li>
       
   958                                 <li class=""><a href="module_stylesheet.html" title="stylesheet">stylesheet</a></li>
       
   959                                 <li class=""><a href="module_substitute.html" title="substitute">substitute</a></li>
       
   960                                 <li class="selected"><a href="module_test.html" title="test">test</a></li>
       
   961                                 <li class=""><a href="module_widget.html" title="widget">widget</a></li>
       
   962                                 <li class=""><a href="module_widget-position.html" title="widget-position">widget-position</a></li>
       
   963                                 <li class=""><a href="module_widget-position-ext.html" title="widget-position-ext">widget-position-ext</a></li>
       
   964                                 <li class=""><a href="module_widget-stack.html" title="widget-stack">widget-stack</a></li>
       
   965                                 <li class=""><a href="module_widget-stdmod.html" title="widget-stdmod">widget-stdmod</a></li>
       
   966                                 <li class=""><a href="module_yui.html" title="yui">yui</a></li>
       
   967                         </ul>
       
   968                     </div>
       
   969 
       
   970                     <div id="classList" class="module">
       
   971                         <h4>Classes</h4>
       
   972                         <ul class="content">
       
   973                                 <li class=""><a href="Assert.html" title="Assert">Assert</a></li>
       
   974                                 <li class=""><a href="Assert.ComparisonFailure.html" title="Assert.ComparisonFailure">Assert.ComparisonFailure</a></li>
       
   975                                 <li class=""><a href="Assert.Error.html" title="Assert.Error">Assert.Error</a></li>
       
   976                                 <li class=""><a href="Assert.ObjectAssert.html" title="Assert.ObjectAssert">Assert.ObjectAssert</a></li>
       
   977                                 <li class=""><a href="Assert.ShouldError.html" title="Assert.ShouldError">Assert.ShouldError</a></li>
       
   978                                 <li class=""><a href="Assert.ShouldFail.html" title="Assert.ShouldFail">Assert.ShouldFail</a></li>
       
   979                                 <li class=""><a href="Assert.UnexpectedError.html" title="Assert.UnexpectedError">Assert.UnexpectedError</a></li>
       
   980                                 <li class=""><a href="Assert.UnexpectedValue.html" title="Assert.UnexpectedValue">Assert.UnexpectedValue</a></li>
       
   981                                 <li class=""><a href="Test.ArrayAssert.html" title="Test.ArrayAssert">Test.ArrayAssert</a></li>
       
   982                                 <li class=""><a href="Test.Case.html" title="Test.Case">Test.Case</a></li>
       
   983                                 <li class=""><a href="Test.DateAssert.html" title="Test.DateAssert">Test.DateAssert</a></li>
       
   984                                 <li class=""><a href="Test.Format.Mock.html" title="Test.Format.Mock">Test.Format.Mock</a></li>
       
   985                                 <li class=""><a href="Test.Manager.html" title="Test.Manager">Test.Manager</a></li>
       
   986                                 <li class=""><a href="Test.Reporter.html" title="Test.Reporter">Test.Reporter</a></li>
       
   987                                 <li class=""><a href="Test.Runner.html" title="Test.Runner">Test.Runner</a></li>
       
   988                                 <li class=""><a href="Test.Suite.html" title="Test.Suite">Test.Suite</a></li>
       
   989                                 <li class=""><a href="Test.TestNode.html" title="Test.TestNode">Test.TestNode</a></li>
       
   990                                 <li class=""><a href="Test.Wait.html" title="Test.Wait">Test.Wait</a></li>
       
   991                         </ul>
       
   992                     </div>
       
   993 
       
   994                     <div id="fileList" class="module">
       
   995                         <h4>Files</h4>
       
   996                         <ul class="content">        
       
   997                                 <li class=""><a href="ArrayAssert.js.html" title="ArrayAssert.js">ArrayAssert.js</a></li>
       
   998                                 <li class=""><a href="Assert.js.html" title="Assert.js">Assert.js</a></li>
       
   999                                 <li class=""><a href="DateAssert.js.html" title="DateAssert.js">DateAssert.js</a></li>
       
  1000                                 <li class=""><a href="Mock.js.html" title="Mock.js">Mock.js</a></li>
       
  1001                                 <li class=""><a href="ObjectAssert.js.html" title="ObjectAssert.js">ObjectAssert.js</a></li>
       
  1002                                 <li class=""><a href="TestCase.js.html" title="TestCase.js">TestCase.js</a></li>
       
  1003                                 <li class=""><a href="TestFormat.js.html" title="TestFormat.js">TestFormat.js</a></li>
       
  1004                                 <li class=""><a href="TestManager.js.html" title="TestManager.js">TestManager.js</a></li>
       
  1005                                 <li class=""><a href="TestReporter.js.html" title="TestReporter.js">TestReporter.js</a></li>
       
  1006                                 <li class="selected"><a href="TestRunner.js.html" title="TestRunner.js">TestRunner.js</a></li>
       
  1007                                 <li class=""><a href="TestSuite.js.html" title="TestSuite.js">TestSuite.js</a></li>
       
  1008                         </ul>
       
  1009                     </div>
       
  1010 
       
  1011 
       
  1012 
       
  1013 
       
  1014 
       
  1015             </div>
       
  1016 		</div>
       
  1017 	</div>
       
  1018 	<div id="ft">
       
  1019         <hr />
       
  1020         Copyright &copy; 2009 Yahoo! Inc. All rights reserved.
       
  1021 	</div>
       
  1022 </div>
       
  1023 <script type="text/javascript">
       
  1024     ALL_YUI_PROPS = [{"access": "", "host": "Assert.ComparisonFailure", "name": "actual", "url": "Assert.ComparisonFailure.html#property_actual", "type": "property"}, {"access": "", "host": "Test.Suite", "name": "add", "url": "Test.Suite.html#method_add", "type": "method"}, {"access": "", "host": "Test.Runner", "name": "add", "url": "Test.Runner.html#method_add", "type": "method"}, {"access": "", "host": "Test.Reporter", "name": "addField", "url": "Test.Reporter.html#method_addField", "type": "method"}, {"access": "private", "host": "Test.Runner", "name": "_addTestCaseToTestTree", "url": "Test.Runner.html#method__addTestCaseToTestTree", "type": "method"}, {"access": "private", "host": "Test.Runner", "name": "_addTestSuiteToTestTree", "url": "Test.Runner.html#method__addTestSuiteToTestTree", "type": "method"}, {"access": "", "host": "Test.TestNode", "name": "appendChild", "url": "Test.TestNode.html#method_appendChild", "type": "method"}, {"access": "", "host": "Assert", "name": "areEqual", "url": "Assert.html#method_areEqual", "type": "method"}, {"access": "", "host": "Assert", "name": "areNotEqual", "url": "Assert.html#method_areNotEqual", "type": "method"}, {"access": "", "host": "Assert", "name": "areNotSame", "url": "Assert.html#method_areNotSame", "type": "method"}, {"access": "", "host": "Assert", "name": "areSame", "url": "Assert.html#method_areSame", "type": "method"}, {"access": "private", "host": "Assert", "name": "_asserts", "url": "Assert.html#property__asserts", "type": "property"}, {"access": "", "host": "Test.Runner", "name": "begin", "url": "Test.Runner.html#event_begin", "type": "event"}, {"access": "private", "host": "Test.Runner", "name": "_buildTestTree", "url": "Test.Runner.html#method__buildTestTree", "type": "method"}, {"access": "", "host": "Assert.UnexpectedError", "name": "cause", "url": "Assert.UnexpectedError.html#property_cause", "type": "property"}, {"access": "", "host": "Test.Runner", "name": "clear", "url": "Test.Runner.html#method_clear", "type": "method"}, {"access": "", "host": "Test.Runner", "name": "complete", "url": "Test.Runner.html#event_complete", "type": "event"}, {"access": "", "host": "Test.ArrayAssert", "name": "contains", "url": "Test.ArrayAssert.html#method_contains", "type": "method"}, {"access": "", "host": "Test.ArrayAssert", "name": "containsItems", "url": "Test.ArrayAssert.html#method_containsItems", "type": "method"}, {"access": "", "host": "Test.ArrayAssert", "name": "containsMatch", "url": "Test.ArrayAssert.html#method_containsMatch", "type": "method"}, {"access": "private", "host": "Test.Runner", "name": "_cur", "url": "Test.Runner.html#property__cur", "type": "property"}, {"access": "private", "host": "Test.Manager", "name": "_curPage", "url": "Test.Manager.html#property__curPage", "type": "property"}, {"access": "", "host": "Test.DateAssert", "name": "datesAreEqual", "url": "Test.DateAssert.html#method_datesAreEqual", "type": "method"}, {"access": "", "host": "Test.Wait", "name": "delay", "url": "Test.Wait.html#property_delay", "type": "property"}, {"access": "", "host": "Test.Reporter", "name": "destroy", "url": "Test.Reporter.html#method_destroy", "type": "method"}, {"access": "", "host": "Test.Runner", "name": "disableLogging", "url": "Test.Runner.html#method_disableLogging", "type": "method"}, {"access": "", "host": "Test.ArrayAssert", "name": "doesNotContain", "url": "Test.ArrayAssert.html#method_doesNotContain", "type": "method"}, {"access": "", "host": "Test.ArrayAssert", "name": "doesNotContainItems", "url": "Test.ArrayAssert.html#method_doesNotContainItems", "type": "method"}, {"access": "", "host": "Test.ArrayAssert", "name": "doesNotContainMatch", "url": "Test.ArrayAssert.html#method_doesNotContainMatch", "type": "method"}, {"access": "", "host": "Test.Runner", "name": "enableLogging", "url": "Test.Runner.html#method_enableLogging", "type": "method"}, {"access": "", "host": "Test.Format.Mock", "name": "expect", "url": "Test.Format.Mock.html#method_expect", "type": "method"}, {"access": "", "host": "Assert.ComparisonFailure", "name": "expected", "url": "Assert.ComparisonFailure.html#property_expected", "type": "property"}, {"access": "", "host": "Assert", "name": "fail", "url": "Assert.html#method_fail", "type": "method"}, {"access": "", "host": "Test.Runner", "name": "fail", "url": "Test.Runner.html#event_fail", "type": "event"}, {"access": "private", "host": "Test.Reporter", "name": "_fields", "url": "Test.Reporter.html#property__fields", "type": "property"}, {"access": "", "host": "Test.TestNode", "name": "firstChild", "url": "Test.TestNode.html#property_firstChild", "type": "property"}, {"access": "private", "host": "Test.Reporter", "name": "_form", "url": "Test.Reporter.html#property__form", "type": "property"}, {"access": "", "host": "Test.Reporter", "name": "format", "url": "Test.Reporter.html#property_format", "type": "property"}, {"access": "protected", "host": "Assert", "name": "_formatMessage", "url": "Assert.html#method__formatMessage", "type": "method"}, {"access": "private", "host": "Test.Manager", "name": "_frame", "url": "Test.Manager.html#property__frame", "type": "property"}, {"access": "protected", "host": "Assert", "name": "_getCount", "url": "Assert.html#method__getCount", "type": "method"}, {"access": "", "host": "Assert.Error", "name": "getMessage", "url": "Assert.Error.html#method_getMessage", "type": "method"}, {"access": "", "host": "Assert.UnexpectedValue", "name": "getMessage", "url": "Assert.UnexpectedValue.html#method_getMessage", "type": "method"}, {"access": "private", "host": "Test.Runner", "name": "_handleError", "url": "Test.Runner.html#method__handleError", "type": "method"}, {"access": "private", "host": "Test.Runner", "name": "_handleTestObjectComplete", "url": "Test.Runner.html#method__handleTestObjectComplete", "type": "method"}, {"access": "private", "host": "Test.Manager", "name": "_handleTestRunnerComplete", "url": "Test.Manager.html#method__handleTestRunnerComplete", "type": "method"}, {"access": "", "host": "Assert.ObjectAssert", "name": "hasKey", "url": "Assert.ObjectAssert.html#method_hasKey", "type": "method"}, {"access": "", "host": "Assert.ObjectAssert", "name": "hasKeys", "url": "Assert.ObjectAssert.html#method_hasKeys", "type": "method"}, {"access": "private", "host": "Test.Reporter", "name": "_iframe", "url": "Test.Reporter.html#property__iframe", "type": "property"}, {"access": "", "host": "Test.Runner", "name": "ignore", "url": "Test.Runner.html#event_ignore", "type": "event"}, {"access": "protected", "host": "Assert", "name": "_increment", "url": "Assert.html#method__increment", "type": "method"}, {"access": "", "host": "Test.ArrayAssert", "name": "indexOf", "url": "Test.ArrayAssert.html#method_indexOf", "type": "method"}, {"access": "", "host": "Assert", "name": "isArray", "url": "Assert.html#method_isArray", "type": "method"}, {"access": "", "host": "Assert", "name": "isBoolean", "url": "Assert.html#method_isBoolean", "type": "method"}, {"access": "", "host": "Test.ArrayAssert", "name": "isEmpty", "url": "Test.ArrayAssert.html#method_isEmpty", "type": "method"}, {"access": "", "host": "Assert", "name": "isFalse", "url": "Assert.html#method_isFalse", "type": "method"}, {"access": "", "host": "Assert", "name": "isFunction", "url": "Assert.html#method_isFunction", "type": "method"}, {"access": "", "host": "Assert", "name": "isInstanceOf", "url": "Assert.html#method_isInstanceOf", "type": "method"}, {"access": "", "host": "Assert", "name": "isNaN", "url": "Assert.html#method_isNaN", "type": "method"}, {"access": "", "host": "Test.ArrayAssert", "name": "isNotEmpty", "url": "Test.ArrayAssert.html#method_isNotEmpty", "type": "method"}, {"access": "", "host": "Assert", "name": "isNotNaN", "url": "Assert.html#method_isNotNaN", "type": "method"}, {"access": "", "host": "Assert", "name": "isNotNull", "url": "Assert.html#method_isNotNull", "type": "method"}, {"access": "", "host": "Assert", "name": "isNotUndefined", "url": "Assert.html#method_isNotUndefined", "type": "method"}, {"access": "", "host": "Assert", "name": "isNull", "url": "Assert.html#method_isNull", "type": "method"}, {"access": "", "host": "Assert", "name": "isNumber", "url": "Assert.html#method_isNumber", "type": "method"}, {"access": "", "host": "Assert", "name": "isObject", "url": "Assert.html#method_isObject", "type": "method"}, {"access": "", "host": "Assert", "name": "isString", "url": "Assert.html#method_isString", "type": "method"}, {"access": "", "host": "Assert", "name": "isTrue", "url": "Assert.html#method_isTrue", "type": "method"}, {"access": "", "host": "Assert", "name": "isTypeOf", "url": "Assert.html#method_isTypeOf", "type": "method"}, {"access": "", "host": "Assert", "name": "isUndefined", "url": "Assert.html#method_isUndefined", "type": "method"}, {"access": "", "host": "Test.Runner", "name": "isWaiting", "url": "Test.Runner.html#method_isWaiting", "type": "method"}, {"access": "private", "host": "Test.Suite", "name": "items", "url": "Test.Suite.html#property_items", "type": "property"}, {"access": "", "host": "Test.ArrayAssert", "name": "itemsAreEqual", "url": "Test.ArrayAssert.html#method_itemsAreEqual", "type": "method"}, {"access": "", "host": "Test.ArrayAssert", "name": "itemsAreEquivalent", "url": "Test.ArrayAssert.html#method_itemsAreEquivalent", "type": "method"}, {"access": "", "host": "Test.ArrayAssert", "name": "itemsAreSame", "url": "Test.ArrayAssert.html#method_itemsAreSame", "type": "method"}, {"access": "", "host": "Test.Suite", "name": "JSON", "url": "Test.Suite.html#method_JSON", "type": "method"}, {"access": "", "host": "Test.Suite", "name": "JUnitXML", "url": "Test.Suite.html#method_JUnitXML", "type": "method"}, {"access": "", "host": "Test.TestNode", "name": "lastChild", "url": "Test.TestNode.html#property_lastChild", "type": "property"}, {"access": "", "host": "Test.ArrayAssert", "name": "lastIndexOf", "url": "Test.ArrayAssert.html#method_lastIndexOf", "type": "method"}, {"access": "", "host": "Test.Manager", "name": "load", "url": "Test.Manager.html#method_load", "type": "method"}, {"access": "private", "host": "Test.Runner", "name": "_log", "url": "Test.Runner.html#property__log", "type": "property"}, {"access": "private", "host": "Test.Runner", "name": "_logEvent", "url": "Test.Runner.html#method__logEvent", "type": "method"}, {"access": "private", "host": "Test.Manager", "name": "_logger", "url": "Test.Manager.html#property__logger", "type": "property"}, {"access": "private", "host": "Test.Runner", "name": "masterSuite", "url": "Test.Runner.html#property_masterSuite", "type": "property"}, {"access": "", "host": "Assert.Error", "name": "name", "url": "Assert.Error.html#property_name", "type": "property"}, {"access": "", "host": "Assert.ComparisonFailure", "name": "name", "url": "Assert.ComparisonFailure.html#property_name", "type": "property"}, {"access": "", "host": "Assert.UnexpectedValue", "name": "name", "url": "Assert.UnexpectedValue.html#property_name", "type": "property"}, {"access": "", "host": "Assert.ShouldFail", "name": "name", "url": "Assert.ShouldFail.html#property_name", "type": "property"}, {"access": "", "host": "Assert.ShouldError", "name": "name", "url": "Assert.ShouldError.html#property_name", "type": "property"}, {"access": "", "host": "Assert.UnexpectedError", "name": "name", "url": "Assert.UnexpectedError.html#property_name", "type": "property"}, {"access": "", "host": "Test.Suite", "name": "name", "url": "Test.Suite.html#property_name", "type": "property"}, {"access": "", "host": "Test.Case", "name": "name", "url": "Test.Case.html#property_name", "type": "property"}, {"access": "", "host": "Test.TestNode", "name": "next", "url": "Test.TestNode.html#property_next", "type": "property"}, {"access": "private", "host": "Test.Runner", "name": "_next", "url": "Test.Runner.html#method__next", "type": "method"}, {"access": "", "host": "Assert.ObjectAssert", "name": "ownsKey", "url": "Assert.ObjectAssert.html#method_ownsKey", "type": "method"}, {"access": "", "host": "Assert.ObjectAssert", "name": "ownsKeys", "url": "Assert.ObjectAssert.html#method_ownsKeys", "type": "method"}, {"access": "", "host": "Assert.ObjectAssert", "name": "ownsNoKeys", "url": "Assert.ObjectAssert.html#method_ownsNoKeys", "type": "method"}, {"access": "private", "host": "Test.Manager", "name": "_pages", "url": "Test.Manager.html#property__pages", "type": "property"}, {"access": "", "host": "Test.TestNode", "name": "parent", "url": "Test.TestNode.html#property_parent", "type": "property"}, {"access": "", "host": "Test.Runner", "name": "pass", "url": "Test.Runner.html#event_pass", "type": "event"}, {"access": "private", "host": "Test.Manager", "name": "_processResults", "url": "Test.Manager.html#method__processResults", "type": "method"}, {"access": "", "host": "Test.Reporter", "name": "report", "url": "Test.Reporter.html#method_report", "type": "method"}, {"access": "protected", "host": "Assert", "name": "_reset", "url": "Assert.html#method__reset", "type": "method"}, {"access": "", "host": "Test.TestNode", "name": "results", "url": "Test.TestNode.html#property_results", "type": "property"}, {"access": "private", "host": "Test.Manager", "name": "_results", "url": "Test.Manager.html#property__results", "type": "property"}, {"access": "", "host": "Test.Case", "name": "resume", "url": "Test.Case.html#method_resume", "type": "method"}, {"access": "", "host": "Test.Runner", "name": "resume", "url": "Test.Runner.html#method_resume", "type": "method"}, {"access": "private", "host": "Test.Runner", "name": "_root", "url": "Test.Runner.html#property__root", "type": "property"}, {"access": "private", "host": "Test.Runner", "name": "_run", "url": "Test.Runner.html#method__run", "type": "method"}, {"access": "", "host": "Test.Runner", "name": "run", "url": "Test.Runner.html#method_run", "type": "method"}, {"access": "private", "host": "Test.Manager", "name": "_run", "url": "Test.Manager.html#method__run", "type": "method"}, {"access": "private", "host": "Test.Runner", "name": "_runTest", "url": "Test.Runner.html#method__runTest", "type": "method"}, {"access": "", "host": "Test.Wait", "name": "segment", "url": "Test.Wait.html#property_segment", "type": "property"}, {"access": "", "host": "Test.Manager", "name": "setPages", "url": "Test.Manager.html#method_setPages", "type": "method"}, {"access": "", "host": "Test.Suite", "name": "setUp", "url": "Test.Suite.html#method_setUp", "type": "method"}, {"access": "", "host": "Test.Case", "name": "setUp", "url": "Test.Case.html#method_setUp", "type": "method"}, {"access": "", "host": "Test.Case", "name": "_should", "url": "Test.Case.html#property__should", "type": "property"}, {"access": "", "host": "Assert.UnexpectedError", "name": "stack", "url": "Assert.UnexpectedError.html#property_stack", "type": "property"}, {"access": "", "host": "Test.Manager", "name": "start", "url": "Test.Manager.html#method_start", "type": "method"}, {"access": "", "host": "Test.Manager", "name": "stop", "url": "Test.Manager.html#method_stop", "type": "method"}, {"access": "", "host": "Test.Suite", "name": "tearDown", "url": "Test.Suite.html#method_tearDown", "type": "method"}, {"access": "", "host": "Test.Case", "name": "tearDown", "url": "Test.Case.html#method_tearDown", "type": "method"}, {"access": "", "host": "Test.Runner", "name": "testcasebegin", "url": "Test.Runner.html#event_testcasebegin", "type": "event"}, {"access": "", "host": "Test.Runner", "name": "testcasecomplete", "url": "Test.Runner.html#event_testcasecomplete", "type": "event"}, {"access": "", "host": "Test.Manager", "name": "testmanagerbegin", "url": "Test.Manager.html#event_testmanagerbegin", "type": "event"}, {"access": "", "host": "Test.Manager", "name": "TEST_MANAGER_BEGIN_EVENT", "url": "Test.Manager.html#property_TEST_MANAGER_BEGIN_EVENT", "type": "property"}, {"access": "", "host": "Test.Manager", "name": "testmanagercomplete", "url": "Test.Manager.html#event_testmanagercomplete", "type": "event"}, {"access": "", "host": "Test.Manager", "name": "TEST_MANAGER_COMPLETE_EVENT", "url": "Test.Manager.html#property_TEST_MANAGER_COMPLETE_EVENT", "type": "property"}, {"access": "", "host": "Test.TestNode", "name": "testObject", "url": "Test.TestNode.html#property_testObject", "type": "property"}, {"access": "", "host": "Test.Manager", "name": "testpagebegin", "url": "Test.Manager.html#event_testpagebegin", "type": "event"}, {"access": "", "host": "Test.Manager", "name": "TEST_PAGE_BEGIN_EVENT", "url": "Test.Manager.html#property_TEST_PAGE_BEGIN_EVENT", "type": "property"}, {"access": "", "host": "Test.Manager", "name": "testpagecomplete", "url": "Test.Manager.html#event_testpagecomplete", "type": "event"}, {"access": "", "host": "Test.Manager", "name": "TEST_PAGE_COMPLETE_EVENT", "url": "Test.Manager.html#property_TEST_PAGE_COMPLETE_EVENT", "type": "property"}, {"access": "", "host": "Test.Runner", "name": "testsuitebegin", "url": "Test.Runner.html#event_testsuitebegin", "type": "event"}, {"access": "", "host": "Test.Runner", "name": "testsuitecomplete", "url": "Test.Runner.html#event_testsuitecomplete", "type": "event"}, {"access": "private", "host": "Test.Manager", "name": "_timeoutId", "url": "Test.Manager.html#property__timeoutId", "type": "property"}, {"access": "", "host": "Test.DateAssert", "name": "timesAreEqual", "url": "Test.DateAssert.html#method_timesAreEqual", "type": "method"}, {"access": "", "host": "Assert.Error", "name": "toString", "url": "Assert.Error.html#method_toString", "type": "method"}, {"access": "", "host": "Assert.ComparisonFailure", "name": "toString", "url": "Assert.ComparisonFailure.html#method_toString", "type": "method"}, {"access": "", "host": "Assert.UnexpectedValue", "name": "unexpected", "url": "Assert.UnexpectedValue.html#property_unexpected", "type": "property"}, {"access": "", "host": "Test.Reporter", "name": "url", "url": "Test.Reporter.html#property_url", "type": "property"}, {"access": "", "host": "Assert.Error", "name": "valueOf", "url": "Assert.Error.html#method_valueOf", "type": "method"}, {"access": "", "host": "Test.Format.Mock", "name": "verify", "url": "Test.Format.Mock.html#method_verify", "type": "method"}, {"access": "", "host": "Test.Case", "name": "wait", "url": "Test.Case.html#method_wait", "type": "method"}, {"access": "private", "host": "Test.Runner", "name": "_waiting", "url": "Test.Runner.html#property__waiting", "type": "property"}, {"access": "", "host": "Test.Suite", "name": "XML", "url": "Test.Suite.html#method_XML", "type": "method"}, {"access": "", "host": "Assert", "name": "Y.assert", "url": "Assert.html#method_Y.assert", "type": "method"}, {"access": "", "host": "Assert", "name": "Y.fail", "url": "Assert.html#method_Y.fail", "type": "method"}];
       
  1025 </script>
       
  1026 </body>
       
  1027 </html>