src/cm/media/js/lib/yui/yui_3.0.0b1/examples/test/test-advanced-test-options.html
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 0 40c8f766c9b8
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
<html>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
<head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
	<title>YUI Library Examples: Test: Advanced Test Options</title>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
    	<link rel="stylesheet" type="text/css" href="../../assets/yui.css" >
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
<style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
    /*Supplemental CSS for the YUI distribution*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
    #custom-doc { width: 95%; min-width: 950px; }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
    #pagetitle {background-image: url(../../assets/bg_hd.gif);}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
/*    #pagetitle h1 {background-image: url(../../assets/title_h_bg.gif);}*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
</style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
<link rel="stylesheet" type="text/css" href="../../assets/dpSyntaxHighlighter.css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
<!--there is no custom header content for this example-->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
<link type="text/css" rel="stylesheet" href="../../build/cssfonts/fonts-min.css" />
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
<script type="text/javascript" src="../../build/yui/yui-min.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
</head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
<body id="yahoo-com" class=" yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
<div id="custom-doc" class="yui-t2">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
<div id="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
	<div id="ygunav">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
		<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
            <em>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
                <a href="http://developer.yahoo.com/yui/3/">YUI 3.x Home</a> <i> - </i>	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
            </em>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
		</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
		<form action="http://search.yahoo.com/search" id="sitesearchform">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
            <input name="vs" type="hidden" value="developer.yahoo.com">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
            <input name="vs" type="hidden" value="yuiblog.com">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
		    <div id="sitesearch">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
		    	<label for="searchinput">Site Search (YDN &amp; YUIBlog): </label>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
			    <input type="text" id="searchinput" name="p">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
			    <input type="submit" value="Search" id="searchsubmit" class="ygbt">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
		    </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
		</form>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
    </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
	<div id="ygma"><a href="../../"><img src="../../assets/logo.gif"  border="0" width="200" height="93"></a></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
	<div id="pagetitle"><h1>YUI Library Examples: Test: Advanced Test Options</h1></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
<div id="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
	<div id="bar-note"><p><strong>Note:</strong> This is YUI 3.x. Looking for <a href="http://developer.yahoo.com/yui/">YUI 2.x</a>?</p></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
	<div id="yui-main">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
		<div class="yui-b">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
		  <div class="yui-ge">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
			  <div class="yui-u first example" id="main">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
	<h2>Test: Advanced Test Options</h2>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
	<div id="example" class="promo">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
	<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
	<p>This example shows how to use advanced test options, which allow you to specify additional information about how a test should be run.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
  Each <a href="/yui/test/#testcase"><code>TestCase</code></a> can specify up to three different options for tests,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
  including tests that should be ignored, tests that should throw an error, and tests that should fail.</p>	</p>	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
	<div class="module example-container ">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
			<div class="hd exampleHd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
			<p class="newWindowButton yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
                <a href="test-advanced-test-options_clean.html" target="_blank">View example in new window.</a>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
            </p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
		</div>		<div id="example-canvas" class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
	<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
	<div id="testLogger"></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
<script type="text/javascript">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
YUI({base:"../../build/", timeout: 10000}).use("node", "console", "test",function (Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
    Y.namespace("example.test");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
    Y.example.test.AdvancedOptionsTestCase = new Y.Test.Case({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
        //the name of the test case - if not provided, one is automatically generated
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
        name: "Advanced Options Tests",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
         * Specifies tests that "should" be doing something other than the expected.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
        _should: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
            /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
             * Tests listed in here should fail, meaning that if they fail, the test
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
             * has passed. This is used mostly for YuiTest to test itself, but may
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
             * be helpful in other cases.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
             */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
            fail: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
                //the test named "testFail" should fail
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
                testFail: true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
            /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
             * Tests listed here should throw an error of some sort. If they throw an
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
             * error, then they are considered to have passed.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
             */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
            error: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
                /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
                 * You can specify "true" for each test, in which case any error will
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
                 * cause the test to pass.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
                 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
                testGenericError: true,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
                /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
                 * You can specify an error message, in which case the test passes only
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
                 * if the error thrown matches the given message.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
                 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
                testStringError: "I'm a specific error message.",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
                testStringError2: "I'm a specific error message.",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
                /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
                 * You can also specify an error object, in which case the test passes only
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
                 * if the error thrown is on the same type and has the same message.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
                 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
                testObjectError: new TypeError("Number expected."),            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
                testObjectError2: new TypeError("Number expected."),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
                testObjectError3: new TypeError("Number expected.")
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
            /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
             * Tests listed here should be ignored when the test case is run. For these tests,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
             * setUp() and tearDown() are not called.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
             */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
            ignore : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
                testIgnore: true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
            }    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
        //-------------------------------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
        // Basic tests - all method names must begin with "test"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
        //-------------------------------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
        testFail : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
            //force a failure - but since this test "should" fail, it will pass
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
            Y.Assert.fail("Something bad happened.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
        testGenericError : function() {    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
            throw new Error("Generic error");        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
        testStringError : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
            //throw a specific error message - this will pass because it "should" happen
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
            throw new Error("I'm a specific error message.");    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
        testStringError2 : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
            //throw a specific error message - this will fail because the message isn't expected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
            throw new Error("I'm a specific error message, but a wrong one.");    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
        testObjectError : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
            //throw a specific error and message - this will pass because it "should" happen
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
            throw new TypeError("Number expected.");    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
        testObjectError2 : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
            //throw a specific error and message - this will fail because the type doesn't match
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
            throw new Error("Number expected."); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
        testObjectError3 : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
            //throw a specific error and message - this will fail because the message doesn't match
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
            throw new TypeError("String expected.");    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
        testIgnore : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
            alert("You'll never see this.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
    });        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
     
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
     
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
    //create the console
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
    var r = new Y.Console({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
        verbose : true,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
        newestOnTop : false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
    r.render('#testLogger');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
    Y.Test.Runner.add(Y.example.test.AdvancedOptionsTestCase);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
    //run the tests
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
    Y.Test.Runner.run();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   205
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   206
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
</script>	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
	<!--END SOURCE CODE FOR EXAMPLE =============================== -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   211
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   212
	</div>			
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   213
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   214
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
	<h2 class="first">Advanced Test Options</h2>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
<p>This example begins by creating a namespace and a <code>Y.Test.Case</code> object:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   218
<textarea name="code" class="JScript" cols="60" rows="1">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
Y.namespace("example.test");  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
Y.example.test.AdvancedOptionsTestCase = new Y.TestCase({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
    name: "Advanced Options Tests"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
</textarea>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
<p>This <code>Y.Test.Case</code> serves as the basis for this example.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   227
<h3>Using <code>_should</code></h3>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   228
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   229
<p>Immediately after the <code>name</code> of the <code>Y.Test.Case</code> is defined, there is a <code>_should</code> property.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   230
  This property specifies information about how tests <em>should</em> behave and is defined as an object literal with one
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   231
  or more of the following properties: <code>fail</code>, <code>error</code>, and <code>ignore</code>.Each of these three
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   232
  is also defined as an object literal whose property names map directly to the names of test methods in the <code>Y.Test.Case</code>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   233
  This example uses all three properties:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
<textarea name="code" class="JScript" cols="60" rows="1">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
Y.example.test.AdvancedOptionsTestCase = new Y.TestCase({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
    //the name of the test case - if not provided, one is automatically generated
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
    name: "Advanced Options Tests",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
     * Specifies tests that "should" be doing something other than the expected.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
    _should: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
         * Tests listed in here should fail, meaning that if they fail, the test
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
         * has passed. This is used mostly for YuiTest to test itself, but may
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   248
         * be helpful in other cases.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   249
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   250
        fail: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   251
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   252
            //the test named "testFail" should fail
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   253
            testFail: true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   254
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   255
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
         * Tests listed here should throw an error of some sort. If they throw an
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
         * error, then they are considered to have passed.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
        error: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
            /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   264
             * You can specify "true" for each test, in which case any error will
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   265
             * cause the test to pass.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   266
             */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   267
            testGenericError: true,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   268
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   269
            /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   270
             * You can specify an error message, in which case the test passes only
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   271
             * if the error thrown matches the given message.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
             */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
            testStringError: "I'm a specific error message.",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
            testStringError2: "I'm a specific error message.",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
            /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
             * You can also specify an error object, in which case the test passes only
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
             * if the error thrown is on the same type and has the same message.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
             */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   280
            testObjectError: new TypeError("Number expected."),            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   281
            testObjectError2: new TypeError("Number expected."),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   282
            testObjectError3: new TypeError("Number expected.")
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
         * Tests listed here should be ignored when the test case is run. For these tests,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
         * setUp() and tearDown() are not called.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   289
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   290
        ignore : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   292
            testIgnore: true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   293
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   294
        }    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   295
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   296
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   297
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   298
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   299
</textarea>  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   300
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   301
<p>This <code>Y.Test.Case</code> specifies one test that should fail, six that should throw an error, and one that should be ignored.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   302
<p>In the <code>fail</code> section, the test method <code>testFail()</code> is specified as one that should fail. By adding the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   303
  property <code>testFail</code> and settings its value to true, the <code>Y.Test.Runner</code> knows that this test is expected to fail.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   304
  If the test were to be run without failing, it would be considered a failure of the test. This feature is useful when testing
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   305
  YUI Test itself or addon components to YUI Test.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   306
<p>Moving on to the <code>error</code> section, there are six tests specified that should throw an error. There are three different ways
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   307
  to indicate that a test is expected to throw an error. The first is simply to add a property with the same name as the test method
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   308
  and set its value equal to true (similar to specifying tests that should fail). In this example, the <code>testGenericError()</code>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   309
  method is specified this way. When specified like this, the test passes regardless of the type of error that occurs. This can be 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   310
  dangerous since unexpected errors will also cause the test to pass. To be more specific, set the property value for the test method
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   311
  to an error message string. When a string is used instead of the Boolean true, the test passes only when an error is thrown and that
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   312
  error message matches the string. In this example, <code>testStringError()</code> and <code>testStringError2()</code> expect an error
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   313
  to be thrown with an error message of &quot;I'm a specific error message.&quot; If any other error occurs inside of the these methods,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   314
  the test will fail because the error message doesn't match. The last way to specify an error should occur is to create an actual error
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   315
  object, which is the case with <code>testObjectError()</code>, <code>testObjectError2()</code>, and <code>testObjectError3()</code>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   316
  When specified in this way, a test will pass only when an error is thrown whose constructor and error message match that of the 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   317
  error object.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   318
<p>The last section is <code>ignore</code>, which determines tests that should be ignored. In this example, the method <code>testIgnore()</code>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   319
  is set to be ignored when the <code>Y.Test.Case</code> is executed. Test in the <code>ignore</code> section are specified the same way
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   320
  as those in the <code>fail</code> section, by adding the name as a property and setting its value to true.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   321
  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   322
<h3>Creating the test methods</h3>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   323
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   324
<p>The next part of the example contains the actual test methods. Since each test method is specified as having a certain behavior in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   325
  <code>_should</code>, they each do something to show their particular functionality.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   326
<p>The first method is <code>testFail()</code>, which does nothing but purposely fail. Since this method is specified as one that should
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   327
  fail, it means that this test will pass:</p>  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   328
<textarea name="code" class="JScript" cols="60" rows="1">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   329
Y.example.test.AdvancedOptionsTestCase = new Y.Test.Case({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   330
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   331
    //the name of the test case - if not provided, one is automatically generated
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   332
    name: "Advanced Options Tests",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   333
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   334
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   335
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   336
    testFail : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   337
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   338
        //force a failure - but since this test "should" fail, it will pass
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   339
        Y.Assert.fail("Something bad happened.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   340
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   341
    },    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   342
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   343
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   344
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   345
</textarea>  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   346
<p>This method uses <code>Assert.fail()</code> to force the test to fail. This type of method is helpful if you are creating your own
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   347
  type of assert methods that should fail when certain data is passed in.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   348
<p>Next, the test methods that should error are defined.  The <code>testGenericError()</code> method is specified as needing to throw
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   349
  an error to pass. In the <code>error</code> section, <code>testGenericError</code> is set to true, meaning that any error causes
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   350
  this method to pass. To illustrate this, the method simply throws an error:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   351
<textarea name="code" class="JScript" cols="60" rows="1">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   352
Y.example.test.AdvancedOptionsTestCase = new Y.Test.Case({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   353
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   354
    //the name of the test case - if not provided, one is automatically generated
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   355
    name: "Advanced Options Tests",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   356
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   357
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   358
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   359
    testGenericError : function() {    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   360
        throw new Error("Generic error");        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   361
    },   
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   362
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   363
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   364
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   365
</textarea>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   366
<p>The fact that this method throws an error is enough to cause it to pass (the type of error and error message don't matter). The next
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   367
  two methods, <code>testStringError()</code> and <code>testStringError2()</code> are specified as throwing an error with a specific
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   368
  message (&quot;I'm a specific error message.&quot;):</p>  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   369
<textarea name="code" class="JScript" cols="60" rows="1">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   370
Y.example.test.AdvancedOptionsTestCase = new Y.Test.Case({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   371
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   372
    //the name of the test case - if not provided, one is automatically generated
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   373
    name: "Advanced Options Tests",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   374
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   375
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   376
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   377
    testStringError : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   378
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   379
        //throw a specific error message - this will pass because it "should" happen
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   380
        throw new Error("I'm a specific error message.");    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   381
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   382
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   383
    testStringError2 : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   384
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   385
        //throw a specific error message - this will fail because the message isn't expected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   386
        throw new Error("I'm a specific error message, but a wrong one.");    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   387
    }, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   388
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   389
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   390
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   391
</textarea>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   392
<p>The <code>testStringError()</code> method will pass when executed because the error message matches up exactly with the one
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   393
  specified in the <code>error</code> section. The <code>testStringError2()</code> method, however, will fail because its
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   394
  error message is different from the one specified.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   395
<p>To be more specific, <code>testObjectError()</code>, <code>testObjectError2()</code>, and <code>testObjectError3()</code>,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   396
  specified an error type (<code>TypeError</code>) and an error messsage (&quot;Number expected.&quot;):</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   397
<textarea name="code" class="JScript" cols="60" rows="1">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   398
Y.example.test.AdvancedOptionsTestCase = new Y.Test.Case({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   399
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   400
    //the name of the test case - if not provided, one is automatically generated
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   401
    name: "Advanced Options Tests",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   402
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   403
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   404
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   405
    testObjectError : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   406
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   407
        //throw a specific error and message - this will pass because it "should" happen
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   408
        throw new TypeError("Number expected.");    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   409
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   410
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   411
    testObjectError2 : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   412
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   413
        //throw a specific error and message - this will fail because the type doesn't match
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   414
        throw new Error("Number expected."); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   415
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   416
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   417
    testObjectError3 : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   418
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   419
        //throw a specific error and message - this will fail because the message doesn't match
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   420
        throw new TypeError("String expected.");    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   421
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   422
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   423
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   424
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   425
</textarea>  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   426
<p>Of the these three methods, only <code>testObjectError()</code> will pass because it's the only one that throws a <code>TypeError</code>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   427
  object with the message, &quot;Number expected.&quot; The <code>testObjectError2()</code> method will fail because the type of error
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   428
  being thrown (<code>Error</code>) is different from the expected type (<code>TypeError</code>), as specified in the <code>error</code>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   429
  section. The last method, <code>testObjectError3()</code>, also fails. Though it throws the right type of error, the error message
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   430
  doesn't match the one that was specified.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   431
<p>The last method in the <code>Y.Test.Case</code> is <code>testIgnore()</code>, which is specified to be ignored. To be certain, this
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   432
  method pops up a message:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   433
<textarea name="code" class="JScript" cols="60" rows="1">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   434
Y.example.test.AdvancedOptionsTestCase = new Y.Test.Case({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   435
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   436
    //the name of the test case - if not provided, one is automatically generated
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   437
    name: "Advanced Options Tests",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   438
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   439
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   440
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   441
    testIgnore : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   442
        alert("You'll never see this.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   443
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   444
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   445
</textarea>   
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   446
<p>If this test weren't ignored, then the alert should be displayed. Since it is ignored, though, you will never see the alert. Additionally,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   447
  there is a special message displayed in the <code>Y.Console</code> when a test is ignored.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   448
  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   449
<h3>Running the tests</h3>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   450
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   451
<p>With all of the tests defined, the last step is to run them:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   452
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   453
<textarea name="code" class="JScript" cols="60" rows="1">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   454
//create the console
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   455
var r = new Y.Console({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   456
    verbose : true,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   457
    newestOnTop : false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   458
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   459
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   460
r.render('#testLogger');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   461
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   462
//add the test suite to the runner's queue
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   463
Y.Test.Runner.add(Y.example.test.AdvancedOptionsTestCase);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   464
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   465
//run the tests
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   466
Y.Test.Runner.run();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   467
</textarea> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   468
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   469
<p>Before running the tests, it's necessary to create a <code>Y.Console</code> object to display the results (otherwise the tests would run 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   470
  but you wouldn't see the results). After that, the <code>Y.Test.Runner</code> is loaded with the <code>Y.Test.Suite</code> object by calling 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   471
  <code>add()</code> (any number of <code>Y.Test.Case</code> and <code>Y.Test.Suite</code> objects can be added to a <code>Y.Test.Runner</code>, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   472
  this example only adds one for simplicity). The very last step is to call <code>run()</code>, which begins executing the tests in its
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   473
  queue and displays the results in the <code>Y.Console</code>.</p>				</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   474
				<div class="yui-u sidebar">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   475
					
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   476
				
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   477
					<div id="examples" class="mod box4">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   478
                        <div class="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   479
						<h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   480
    Test Examples:</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   481
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   482
						<div class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   483
							<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   484
								<li><a href='../test/test-simple-example.html'>Simple Testing Example</a></li><li class='selected'><a href='../test/test-advanced-test-options.html'>Advanced Test Options</a></li><li><a href='../test/test-array-tests.html'>Array Processing</a></li><li><a href='../test/test-async-test.html'>Asynchronous Testing</a></li><li><a href='../test/test-async-event-tests.html'>Asynchronous Event Testing</a></li>							</ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   485
						</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   486
					</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   487
					
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   488
					<div class="mod box4">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   489
                        <div class="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   490
						<h4>More Test Resources:</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   491
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   492
                        <div class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   493
						<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   494
							<!-- <li><a href="http://developer.yahoo.com/yui/test/">User's Guide</a> (external)</li> -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   495
						<li><a href="../../api/module_test.html">API Documentation</a></li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   496
</ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   497
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   498
					</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   499
			  </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   500
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   501
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   502
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   503
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   504
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   505
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   506
<div class="yui-b toc3" id="tocWrapper">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   507
<!-- TABLE OF CONTENTS -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   508
<div id="toc">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   509
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   510
<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   511
<li class="sect first">YUI 3.x Project</li><li class="item"><a title="The Yahoo! User Interface (YUI) Library, 3.x Branch, " href="http://developer.yahoo.com/yui/3/">YUI 3 Web Site (external)</a></li><li class="item"><a title="Examples of every YUI utility and control in action" href="../../examples/">YUI 3 Examples</a></li><li class="item"><a title="Instantly searchable API documentation for the entire YUI library." href="../../api/">YUI 3 API Docs</a></li><li class="item"><a title="The YUI Library can be downloaded from SourceForge" href="http://sourceforge.net/projects/yui/">YUI 3 on Sourceforge (external)</a></li><li class="item"><a title="YUI is free and open, offered under a BSD license." href="http://developer.yahoo.com/yui/3/license.html">YUI License (external)</a></li><li class="sect">YUI 3 Core - Examples</li><li class="item"><a title="YUI (Global Prerequisite) - Functional Examples" href="../../examples/yui/index.html">YUI (Global Prerequisite)</a></li><li class="item"><a title="Event - Functional Examples" href="../../examples/event/index.html">Event</a></li><li class="item"><a title="Node - Functional Examples" href="../../examples/node/index.html">Node</a></li><li class="sect">YUI 3 Component Infrastructure - Examples</li><li class="item"><a title="Attribute - Functional Examples" href="../../examples/attribute/index.html">Attribute</a></li><li class="item"><a title="Plugin - Functional Examples" href="../../examples/plugin/index.html">Plugin</a></li><li class="item"><a title="Widget - Functional Examples" href="../../examples/widget/index.html">Widget</a></li><li class="sect">YUI 3 Utilities - Examples</li><li class="item"><a title="Animation - Functional Examples" href="../../examples/anim/index.html">Animation</a></li><li class="item"><a title="Cache - Functional Examples" href="../../examples/cache/index.html">Cache</a></li><li class="item"><a title="Cookie - Functional Examples" href="../../examples/cookie/index.html">Cookie</a></li><li class="item"><a title="DataSchema - Functional Examples" href="../../examples/dataschema/index.html">DataSchema</a></li><li class="item"><a title="DataSource - Functional Examples" href="../../examples/datasource/index.html">DataSource</a></li><li class="item"><a title="DataType - Functional Examples" href="../../examples/datatype/index.html">DataType</a></li><li class="item"><a title="Drag &amp; Drop - Functional Examples" href="../../examples/dd/index.html">Drag &amp; Drop</a></li><li class="item"><a title="Get - Functional Examples" href="../../examples/get/index.html">Get</a></li><li class="item"><a title="History - Functional Examples" href="../../examples/history/index.html">History</a></li><li class="item"><a title="ImageLoader - Functional Examples" href="../../examples/imageloader/index.html">ImageLoader</a></li><li class="item"><a title="IO - Functional Examples" href="../../examples/io/index.html">IO</a></li><li class="item"><a title="JSON (JavaScript Object Notation) - Functional Examples" href="../../examples/json/index.html">JSON</a></li><li class="item"><a title="Queue - Functional Examples" href="../../examples/queue/index.html">Queue</a></li><li class="item"><a title="Stylesheet - Functional Examples" href="../../examples/stylesheet/index.html">Stylesheet</a></li><li class="sect">YUI 3 Widgets - Examples</li><li class="item"><a title="Overlay - Functional Examples" href="../../examples/overlay/index.html">Overlay</a></li><li class="item"><a title="Slider - Functional Examples" href="../../examples/slider/index.html">Slider</a></li><li class="sect">YUI 3 Node Plugins - Examples</li><li class="item"><a title="FocusManager Node Plugin - Functional Examples" href="../../examples/node-focusmanager/index.html">FocusManager Node Plugin</a></li><li class="item"><a title="MenuNav Node Plugin - Functional Examples" href="../../examples/node-menunav/index.html">MenuNav Node Plugin</a></li><li class="sect">YUI 3 CSS - Examples</li><li class="item"><a title="YUI CSS Reset - Functional Examples" href="../../examples/cssreset/index.html">CSS Reset</a></li><li class="item"><a title="YUI Fonts - Functional Examples" href="../../examples/cssfonts/index.html">CSS Fonts</a></li><li class="item"><a title="YUI Base - Functional Examples" href="../../examples/cssbase/index.html">CSS Base</a></li><li class="sect">YUI 3 Developer Tools - Examples</li><li class="item"><a title="Console - Functional Examples" href="../../examples/console/index.html">Console</a></li><li class="item"><a title="Profiler - Functional Examples" href="../../examples/profiler/index.html">Profiler</a></li><li class="selected "><a title="Test - Functional Examples" href="../../examples/test/index.html">Test</a></li><li class="sect">The YUI Community</li><li class="item"><a title="The Yahoo! User Interface Blog" href="http://yuiblog.com">YUI Blog (external)</a></li><li class="item"><a title="The Yahoo! Group YDN-JavaScript hosts the YUI community forum" href="http://tech.groups.yahoo.com/group/ydn-javascript/">YUI Forum (external)</a></li><li class="item"><a title="The Yahoo! Group yui3 is dedicated to the 3.x branch of the Yahoo! User Interface (YUI) Library." href="http://tech.groups.yahoo.com/group/yui3/">YUI 3 Forum (external)</a></li><li class="item"><a title="YUI is used by Yahoo! and by hundreds of other sites, including many you know and love." href="/yui/poweredby/">YUI Sightings (external)</a></li><li class="item"><a title="Videos and podcasts from the YUI Team and from the Yahoo! frontend engineering community." href="http://developer.yahoo.com/yui/theater/">YUI Theater (external)</a></li><li class="sect">YUI Articles on the YUI Website</li><li class="item"><a title="Answers to Frequently Asked Questions about the YUI Library" href="http://developer.yahoo.com/yui/articles/faq/">YUI FAQ (external)</a></li><li class="item"><a title="Yahoo!'s philosophy of Graded Browser Support" href="http://developer.yahoo.com/yui/articles/gbs/">Graded Browser Support (external)</a></li><li class="item"><a title="Reporting Bugs and Making Feature Requests for YUI Components" href="http://developer.yahoo.com/yui/articles/reportingbugs/">Bug Reports/Feature Requests (external)</a></li><li class="item"><a title="Serve YUI source files from Yahoo! -- free, fast, and simple" href="http://developer.yahoo.com/yui/3/articles/hosting/">Serving YUI Files from Yahoo! (external)</a></li></ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   512
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   513
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   514
	</div><!--closes bd-->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   515
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   516
	<div id="ft">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   517
        <p class="first">Copyright &copy; 2009 Yahoo! Inc. All rights reserved.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   518
        <p><a href="http://privacy.yahoo.com/privacy/us/devel/index.html">Privacy Policy</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   519
            <a href="http://docs.yahoo.com/info/terms/">Terms of Service</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   520
            <a href="http://docs.yahoo.com/info/copyright/copyright.html">Copyright Policy</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   521
            <a href="http://careers.yahoo.com/">Job Openings</a></p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   522
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   523
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   524
<script src="../../assets/dpSyntaxHighlighter.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   525
<script language="javascript"> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   526
dp.SyntaxHighlighter.HighlightAll('code'); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   527
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   528
</body>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   529
</html>