src/cm/media/js/lib/yui/yui3.0.0/examples/test/test-array-tests.html
author raph
Mon, 23 Nov 2009 15:14:29 +0100
changeset 0 40c8f766c9b8
permissions -rw-r--r--
import from internal svn r 4007
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: Array Processing</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
<link type="text/css" rel="stylesheet" href="../../build/cssfonts/fonts-min.css" />
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
<script type="text/javascript" src="../../build/yui/yui-min.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
<style type="text/css">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
#testLogger {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
    margin-bottom: 1em;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
#testLogger .yui-console .yui-console-title {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
    border: 0 none;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
    color: #000;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
    font-size: 13px;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
    font-weight: bold;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
    margin: 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
    text-transform: none;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
#testLogger .yui-console .yui-console-entry-meta {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
    margin: 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
.yui-skin-sam .yui-console-entry-pass .yui-console-entry-cat {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
    background: #070;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
    color: #fff;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
</style>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
</head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
<body id="yahoo-com" class=" yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
<div id="custom-doc" class="yui-t2">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
<div id="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
	<div id="ygunav">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
		<p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
            <em>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
                <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
    50
            </em>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
		</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
		<form action="http://search.yahoo.com/search" id="sitesearchform">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
            <input name="vs" type="hidden" value="developer.yahoo.com">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
            <input name="vs" type="hidden" value="yuiblog.com">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
		    <div id="sitesearch">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
		    	<label for="searchinput">Site Search (YDN &amp; YUIBlog): </label>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
			    <input type="text" id="searchinput" name="p">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
			    <input type="submit" value="Search" id="searchsubmit" class="ygbt">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
		    </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
		</form>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
    </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
	<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
    63
	<div id="pagetitle"><h1>YUI Library Examples: Test: Array Processing</h1></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
<div id="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
	<div id="yui-main">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
		<div class="yui-b">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
		  <div class="yui-ge">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
			  <div class="yui-u first example" id="main">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
	<h2>Test: Array Processing</h2>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
	<div id="example" class="promo">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
	<div class="example-intro">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
	<p>This example shows how to use the <a href="/yui/test/#arrayassert"><code>ArrayAssert</code></a> object, which
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
  contains assertions designed to be used specifically with JavaScript Arrays and array-like objects.</p>	</div>	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
	<div class="module example-container ">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
			<div class="hd exampleHd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
			<p class="newWindowButton yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
                <a href="test-array-tests_clean.html" target="_blank">View example in new window.</a>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
            </p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
		</div>		<div id="example-canvas" class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
	<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
	<div id="testLogger"></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
<script type="text/javascript">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
YUI({base:"../../build/", timeout: 10000}).use("node", "console", "test",function (Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
    Y.namespace("example.test");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
    Y.example.test.ArrayTestCase = new Y.Test.Case({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
        //the name of the test case - if not provided, one is automatically generated
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
        name: "Array Tests",
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
        // Setup and teardown
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
        //-------------------------------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
         * The setUp() method is used to setup data that necessary for a test to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
         * run. This method is called immediately before each test method is run,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
         * so it is run as many times as there are test methods.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
        setUp : function () {        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
            this.data = new Array (0,1,2,3,4,5);        
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
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
         * The tearDown() method is used to clean up the initialization that was done
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
         * in the setUp() method. Ideally, it should free up all memory allocated in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
         * setUp(), anticipating any possible changes to the data. This method is called
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
         * immediately after each test method is run.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
        tearDown : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
            delete this.data;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
        //-------------------------------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
        // Basic tests - all method names must begin with "test"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
        //-------------------------------------------------------------------------
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
         * Test the push() method.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
        testPush : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
            //shortcut variables
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
            var ArrayAssert = Y.ArrayAssert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
            //do whatever data manipulation is necessary
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
            this.data.push(6);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
            //array-specific assertions
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
            ArrayAssert.isNotEmpty(this.data, "Array should not be empty.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
            ArrayAssert.contains(6, this.data, "Array should contain 6.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
            ArrayAssert.indexOf(6, this.data, 6, "The value in position 6 should be 6.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
            //check that all the values are there
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
            ArrayAssert.itemsAreEqual([0,1,2,3,4,5,6], this.data, "Arrays should be equal.");        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
         * Test the pop() method.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
        testPop : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
            //shortcut variables
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
            var Assert = Y.Assert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
            var ArrayAssert = Y.ArrayAssert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
            //do whatever data manipulation is necessary
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
            var value = this.data.pop();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
            //array shouldn't be empty
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
            ArrayAssert.isNotEmpty(this.data, "Array should not be empty.");                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
            //basic equality assertion - expected value, actual value, optional error message
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
            Assert.areEqual(5, this.data.length, "Array should have 5 items.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
            Assert.areEqual(5, value, "Value should be 5.");   
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
            ArrayAssert.itemsAreSame([0,1,2,3,4], this.data, "Arrays should be equal.");                                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
         * Test the reverse() method.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
        testReverse : 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
            //shortcut variables
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
            var ArrayAssert = Y.ArrayAssert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
            //do whatever data manipulation is necessary
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
            this.data = this.data.reverse();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
            ArrayAssert.itemsAreEqual([5,4,3,2,1,0], this.data, "Arrays should be equal.");                              
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
        },
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
         * Test the shift() method.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
        testShift : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
            //shortcut variables
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
            var Assert = Y.Assert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
            var ArrayAssert = Y.ArrayAssert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
            //do whatever data manipulation is necessary
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
            var value = this.data.shift();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
            //array shouldn't be empty
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
            ArrayAssert.isNotEmpty(this.data, "Array should not be empty.");                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
            //basic equality assertion - expected value, actual value, optional error message
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
            Assert.areEqual(5, this.data.length, "Array should have 6 items."); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
            Assert.areEqual(0, value, "Value should be 0."); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
            ArrayAssert.itemsAreEqual([1,2,3,4,5], this.data, "Arrays should be equal.");                              
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
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
         * Test the splice() method.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
        testSplice : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   211
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   212
            //shortcut variables
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   213
            var Assert = Y.Assert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   214
            var ArrayAssert = Y.ArrayAssert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
            //do whatever data manipulation is necessary
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
            var removed = this.data.splice(1, 2, 99, 100);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   218
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
            //basic equality assertion - expected value, actual value, optional error message
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
            Assert.areEqual(6, this.data.length, "Array should have 6 items.");              
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
            //the new items should be there
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
            ArrayAssert.indexOf(99, this.data, 1, "Value at index 1 should be 99.");   
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
            ArrayAssert.indexOf(100, this.data, 2, "Value at index 2 should be 100.");   
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
            ArrayAssert.itemsAreEqual([0,99,100,3,4,5], this.data, "Arrays should be equal.");  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   227
            ArrayAssert.itemsAreEqual([1,2], removed, "Removed values should be an array containing 1 and 2.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   228
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   229
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   230
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   231
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   232
         * Test the unshift() method.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   233
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
        testUnshift : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
            //shortcut variables
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
            var Assert = Y.Assert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
            var ArrayAssert = Y.ArrayAssert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
            //do whatever data manipulation is necessary
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
            this.data.unshift(-1);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
            //basic equality assertion - expected value, actual value, optional error message
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
            Assert.areEqual(7, this.data.length, "Array should have 7 items."); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
            //the new item should be there
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
            ArrayAssert.indexOf(-1, this.data, 0, "First item should be -1."); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   248
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   249
            ArrayAssert.itemsAreEqual([-1,0,1,2,3,4,5], this.data, "Arrays should be equal.");                              
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   250
        } 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   251
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   252
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   253
     
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   254
    //create the console
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   255
    var r = new Y.Console({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
        newestOnTop : false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
        style: 'block' // to anchor in the example content
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
    r.render('#testLogger');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
    Y.Test.Runner.add(Y.example.test.ArrayTestCase);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   264
    //run the tests
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   265
    Y.Test.Runner.run();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   266
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   267
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   268
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   269
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   270
	<!--END SOURCE CODE FOR EXAMPLE =============================== -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   271
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
	</div>			
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
	<h2 class="first">Array Assertions</h2>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
<p>This example uses the <code>Y.ArrayAssert</code> object to test methods on JavaScript's
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   280
  built-in <code>Array</code> object. The intent of this example is to introduce <code>Y.ArrayAssert</code> and its methods
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   281
  as an alternative to the generic methods available on <code>Y.Assert</code>.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   282
<p>The example begins by creating an example namespace and <code>Y.Test.Case</code>:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
<div id="syntax1" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">Y.<span class="kw2">namespace</span><span class="br0">&#40;</span><span class="st0">&quot;example.test&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">Y.<span class="me1">example</span>.<span class="me1">test</span>.<span class="me1">ArrayTestCase</span> <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Test</span>.<span class="kw1">Case</span><span class="br0">&#40;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="kw3">name</span><span class="sy0">:</span> <span class="st0">&quot;Array Tests&quot;</span><span class="sy0">,</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="co1">//-------------------------------------------------------------------------</span></div></li><li class="li1"><div class="de1">    <span class="co1">// Setup and teardown</span></div></li><li class="li1"><div class="de1">    <span class="co1">//-------------------------------------------------------------------------</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    <span class="coMULTI">/*</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * The setUp() method is used to setup data that necessary for a test to</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * run. This method is called immediately before each test method is run,</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * so it is run as many times as there are test methods.</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    */</span></div></li><li class="li2"><div class="de2">    setUp <span class="sy0">:</span> <span class="kw2">function</span> <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        <span class="kw1">this</span>.<span class="me1">data</span> <span class="sy0">=</span> <span class="kw2">new</span> Array <span class="br0">&#40;</span><span class="nu0">0</span><span class="sy0">,</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">2</span><span class="sy0">,</span><span class="nu0">3</span><span class="sy0">,</span><span class="nu0">4</span><span class="sy0">,</span><span class="nu0">5</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="coMULTI">/*</span></div></li><li class="li2"><div class="de2"><span class="coMULTI">&nbsp;    * The tearDown() method is used to clean up the initialization that was done</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * in the setUp() method. Ideally, it should free up all memory allocated in</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * setUp(), anticipating any possible changes to the data. This method is called</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    * immediately after each test method is run.</span></div></li><li class="li1"><div class="de1"><span class="coMULTI">&nbsp;    */</span></div></li><li class="li2"><div class="de2">    tearDown <span class="sy0">:</span> <span class="kw2">function</span> <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">        <span class="kw1">delete</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    ...</div></li><li class="li2"><div class="de2"><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">Y.<span class="kw2">namespace</span><span class="br0">&#40;</span><span class="st0">&quot;example.test&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
Y.<span class="me1">example</span>.<span class="me1">test</span>.<span class="me1">ArrayTestCase</span> <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Test</span>.<span class="kw1">Case</span><span class="br0">&#40;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
    <span class="kw3">name</span><span class="sy0">:</span> <span class="st0">&quot;Array Tests&quot;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
    <span class="co1">//-------------------------------------------------------------------------</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   289
    <span class="co1">// Setup and teardown</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   290
    <span class="co1">//-------------------------------------------------------------------------</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   292
    <span class="coMULTI">/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   293
     * The setUp() method is used to setup data that necessary for a test to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   294
     * run. This method is called immediately before each test method is run,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   295
     * so it is run as many times as there are test methods.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   296
     */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   297
    setUp <span class="sy0">:</span> <span class="kw2">function</span> <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   298
        <span class="kw1">this</span>.<span class="me1">data</span> <span class="sy0">=</span> <span class="kw2">new</span> Array <span class="br0">&#40;</span><span class="nu0">0</span><span class="sy0">,</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">2</span><span class="sy0">,</span><span class="nu0">3</span><span class="sy0">,</span><span class="nu0">4</span><span class="sy0">,</span><span class="nu0">5</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   299
    <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   300
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   301
    <span class="coMULTI">/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   302
     * The tearDown() method is used to clean up the initialization that was done
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   303
     * in the setUp() method. Ideally, it should free up all memory allocated in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   304
     * setUp(), anticipating any possible changes to the data. This method is called
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   305
     * immediately after each test method is run.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   306
     */</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   307
    tearDown <span class="sy0">:</span> <span class="kw2">function</span> <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   308
        <span class="kw1">delete</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   309
    <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   310
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   311
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   312
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax1-plain">Y.namespace("example.test");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   313
Y.example.test.ArrayTestCase = new Y.Test.Case({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   314
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   315
    name: "Array Tests",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   316
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   317
    //-------------------------------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   318
    // Setup and teardown
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   319
    //-------------------------------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   320
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   321
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   322
     * The setUp() method is used to setup data that necessary for a test to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   323
     * run. This method is called immediately before each test method is run,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   324
     * so it is run as many times as there are test methods.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   325
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   326
    setUp : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   327
        this.data = new Array (0,1,2,3,4,5);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   328
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   329
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 tearDown() method is used to clean up the initialization that was done
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   332
     * in the setUp() method. Ideally, it should free up all memory allocated in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   333
     * setUp(), anticipating any possible changes to the data. This method is called
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   334
     * immediately after each test method is run.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   335
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   336
    tearDown : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   337
        delete this.data;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   338
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   339
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   340
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   341
});</textarea></div><p>This <code>TestCase</code> has a <code>setUp()</code> method that creates an array for all the tests to use, as well as
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   342
  a <code>tearDown()</code> method that deletes the array after each test has been executed. This array is used throughout
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   343
  the tests as a base for array manipulations.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   344
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   345
<h3>Testing <code>push()</code></h3>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   346
<p>The first test is <code>testPush()</code>, which tests the functionality of the <code>Array</code> object's <code>push()</code> method
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   347
  (other methods hidden for simpicity):</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   348
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   349
<div id="syntax2" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">Y.<span class="me1">example</span>.<span class="me1">test</span>.<span class="me1">ArrayTestCase</span> <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Test</span>.<span class="kw1">Case</span><span class="br0">&#40;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    ...</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    <span class="me1">testPush</span> <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//shortcut variables</span></div></li><li class="li1"><div class="de1">        <span class="kw2">var</span> ArrayAssert <span class="sy0">=</span> Y.<span class="me1">ArrayAssert</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">        <span class="co1">//do whatever data manipulation is necessary</span></div></li><li class="li1"><div class="de1">        <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">push</span><span class="br0">&#40;</span><span class="nu0">6</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//array-specific assertions</span></div></li><li class="li1"><div class="de1">        ArrayAssert.<span class="me1">isNotEmpty</span><span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Array should not be empty.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">        ArrayAssert.<span class="me1">contains</span><span class="br0">&#40;</span><span class="nu0">6</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Array should contain 6.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        ArrayAssert.<span class="me1">indexOf</span><span class="br0">&#40;</span><span class="nu0">6</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="nu0">6</span><span class="sy0">,</span> <span class="st0">&quot;The value in position 6 should be 6.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//check that all the values are there</span></div></li><li class="li1"><div class="de1">        ArrayAssert.<span class="me1">itemsAreEqual</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="sy0">,</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">2</span><span class="sy0">,</span><span class="nu0">3</span><span class="sy0">,</span><span class="nu0">4</span><span class="sy0">,</span><span class="nu0">5</span><span class="sy0">,</span><span class="nu0">6</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Arrays should be equal.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    ...</div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">Y.<span class="me1">example</span>.<span class="me1">test</span>.<span class="me1">ArrayTestCase</span> <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Test</span>.<span class="kw1">Case</span><span class="br0">&#40;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   350
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   351
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   352
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   353
    <span class="me1">testPush</span> <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   354
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   355
        <span class="co1">//shortcut variables</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   356
        <span class="kw2">var</span> ArrayAssert <span class="sy0">=</span> Y.<span class="me1">ArrayAssert</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   357
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   358
        <span class="co1">//do whatever data manipulation is necessary</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   359
        <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">push</span><span class="br0">&#40;</span><span class="nu0">6</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   360
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   361
        <span class="co1">//array-specific assertions</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   362
        ArrayAssert.<span class="me1">isNotEmpty</span><span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Array should not be empty.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   363
        ArrayAssert.<span class="me1">contains</span><span class="br0">&#40;</span><span class="nu0">6</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Array should contain 6.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   364
        ArrayAssert.<span class="me1">indexOf</span><span class="br0">&#40;</span><span class="nu0">6</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="nu0">6</span><span class="sy0">,</span> <span class="st0">&quot;The value in position 6 should be 6.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   365
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   366
        <span class="co1">//check that all the values are there</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   367
        ArrayAssert.<span class="me1">itemsAreEqual</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="sy0">,</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">2</span><span class="sy0">,</span><span class="nu0">3</span><span class="sy0">,</span><span class="nu0">4</span><span class="sy0">,</span><span class="nu0">5</span><span class="sy0">,</span><span class="nu0">6</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Arrays should be equal.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   368
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   369
    <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   370
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   371
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   372
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax2-plain">Y.example.test.ArrayTestCase = new Y.Test.Case({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   373
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
    testPush : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   377
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   378
        //shortcut variables
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   379
        var ArrayAssert = Y.ArrayAssert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   380
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   381
        //do whatever data manipulation is necessary
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   382
        this.data.push(6);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   383
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   384
        //array-specific assertions
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   385
        ArrayAssert.isNotEmpty(this.data, "Array should not be empty.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   386
        ArrayAssert.contains(6, this.data, "Array should contain 6.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   387
        ArrayAssert.indexOf(6, this.data, 6, "The value in position 6 should be 6.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   388
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   389
        //check that all the values are there
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   390
        ArrayAssert.itemsAreEqual([0,1,2,3,4,5,6], this.data, "Arrays should be equal.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   391
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   392
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   393
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   394
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   395
});</textarea></div><p>The test begins by setting up a shortcut variables for <code>Y.ArrayAssert</code>, then pushes the value 6 onto
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   396
  the <code>data</code> array (which was created by <code>setUp()</code>). Next, <code>Y.ArrayAssert.isNotEmpty()</code> determines if the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   397
  array has at least one item; this should definitely pass because the <code>push()</code> operation only adds values to the array. To determine
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   398
  that the new value, 6, is in the array, <code>Y.ArrayAssert.contains()</code> is used. The first argument is the value to look for and the second
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   399
  is the array to look in. To find out if the new value ended up where it should have (the last position, index 6), <code>Y.ArrayAssert.indexOf()</code>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   400
  is used, passing in the value to search for as the first argument, the array to search in as the second, and the index at which the value should
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   401
  occur as the final argument. Since 6 was pushed onto the end of an array that already had 6 items, it should end up at index 6 (the length of the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   402
  array minus one). As a final test, <code>Y.ArrayAssert.itemsAreEqual()</code> is used to determine that all of the items in the array are in the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   403
  correct place. The first argument of this method is an array that has all of the values that should be in the array you're testing. This assertion
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   404
  passes only when the values in both arrays match up (the values are equal and the positions are the same).</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   405
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   406
<h3>Testing <code>pop()</code></h3>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   407
<p>The next test is <code>testPop()</code>, which tests the functionality of the <code>Array</code> object's <code>pop()</code> method:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   408
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   409
<div id="syntax3" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">Y.<span class="me1">example</span>.<span class="me1">test</span>.<span class="me1">ArrayTestCase</span> <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Test</span>.<span class="kw1">Case</span><span class="br0">&#40;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    ...</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    <span class="me1">testPop</span> <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//shortcut variables</span></div></li><li class="li1"><div class="de1">        <span class="kw2">var</span> Assert <span class="sy0">=</span> Y.<span class="me1">Assert</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        <span class="kw2">var</span> ArrayAssert <span class="sy0">=</span> Y.<span class="me1">ArrayAssert</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//do whatever data manipulation is necessary</span></div></li><li class="li1"><div class="de1">        <span class="kw2">var</span> value <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">pop</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//array shouldn't be empty</span></div></li><li class="li2"><div class="de2">        ArrayAssert.<span class="me1">isNotEmpty</span><span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Array should not be empty.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//basic equality assertion - expected value, actual value, optional error message</span></div></li><li class="li1"><div class="de1">        Assert.<span class="me1">areEqual</span><span class="br0">&#40;</span><span class="nu0">5</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">length</span><span class="sy0">,</span> <span class="st0">&quot;Array should have 5 items.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        Assert.<span class="me1">areEqual</span><span class="br0">&#40;</span><span class="nu0">5</span><span class="sy0">,</span> value<span class="sy0">,</span> <span class="st0">&quot;Value should be 5.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">        ArrayAssert.<span class="me1">itemsAreSame</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="sy0">,</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">2</span><span class="sy0">,</span><span class="nu0">3</span><span class="sy0">,</span><span class="nu0">4</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Arrays should be equal.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    ...</div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">Y.<span class="me1">example</span>.<span class="me1">test</span>.<span class="me1">ArrayTestCase</span> <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Test</span>.<span class="kw1">Case</span><span class="br0">&#40;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   410
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   411
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   412
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   413
    <span class="me1">testPop</span> <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   414
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   415
        <span class="co1">//shortcut variables</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   416
        <span class="kw2">var</span> Assert <span class="sy0">=</span> Y.<span class="me1">Assert</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   417
        <span class="kw2">var</span> ArrayAssert <span class="sy0">=</span> Y.<span class="me1">ArrayAssert</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   418
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   419
        <span class="co1">//do whatever data manipulation is necessary</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   420
        <span class="kw2">var</span> value <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">pop</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   421
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   422
        <span class="co1">//array shouldn't be empty</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   423
        ArrayAssert.<span class="me1">isNotEmpty</span><span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Array should not be empty.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   424
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   425
        <span class="co1">//basic equality assertion - expected value, actual value, optional error message</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   426
        Assert.<span class="me1">areEqual</span><span class="br0">&#40;</span><span class="nu0">5</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">length</span><span class="sy0">,</span> <span class="st0">&quot;Array should have 5 items.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   427
        Assert.<span class="me1">areEqual</span><span class="br0">&#40;</span><span class="nu0">5</span><span class="sy0">,</span> value<span class="sy0">,</span> <span class="st0">&quot;Value should be 5.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   428
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   429
        ArrayAssert.<span class="me1">itemsAreSame</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="sy0">,</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">2</span><span class="sy0">,</span><span class="nu0">3</span><span class="sy0">,</span><span class="nu0">4</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Arrays should be equal.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   430
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   431
    <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   432
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   433
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   434
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax3-plain">Y.example.test.ArrayTestCase = 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
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   437
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   438
    testPop : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   439
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   440
        //shortcut variables
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   441
        var Assert = Y.Assert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   442
        var ArrayAssert = Y.ArrayAssert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   443
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   444
        //do whatever data manipulation is necessary
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   445
        var value = this.data.pop();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   446
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   447
        //array shouldn't be empty
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   448
        ArrayAssert.isNotEmpty(this.data, "Array should not be empty.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   449
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   450
        //basic equality assertion - expected value, actual value, optional error message
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   451
        Assert.areEqual(5, this.data.length, "Array should have 5 items.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   452
        Assert.areEqual(5, value, "Value should be 5.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   453
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   454
        ArrayAssert.itemsAreSame([0,1,2,3,4], this.data, "Arrays should be equal.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   455
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   456
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   457
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   458
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   459
});</textarea></div><p>This test also starts out by creating some shortcut variables, for <code>Y.Assert</code> and <code>Y.ArrayAssert</code>. Next, the <code>pop()</code>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   460
  method is called, storing the returned item in <code>value</code>. Since <code>pop()</code> should only remove a single item, <code>Y.ArrayAssert.isNotEmpty()</code>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   461
  is called to ensure that only one item has been removed. After that, <code>Y.Assert.areEqual()</code> is called twice: once to check the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   462
  length of the array and once to confirm the value of the item that was removed from the array (which should be 5). The last assertion uses
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   463
  <code>Y.ArrayAssert.itemsAreSame()</code>, which is similar to <code>Y.ArrayAssert.itemsAreEqual()</code> in that it compares values between two
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   464
  arrays. The difference is that <code>Y.ArrayAssert.itemsAreSame()</code> uses strict equality (<code>===</code>) to compare values, ensuring that
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   465
  no behind-the-scenes type conversions will occur (this makes <code>Y.ArrayAssert.itemsAreSame()</code> more useful for working with arrays of
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   466
  objects).</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   467
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   468
<h3>Testing <code>reverse()</code></h3>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   469
<p>The next test is <code>testReverse()</code>, which tests the functionality of the <code>Array</code> object's <code>reverse()</code> method:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   470
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   471
<div id="syntax4" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">Y.<span class="me1">example</span>.<span class="me1">test</span>.<span class="me1">ArrayTestCase</span> <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Test</span>.<span class="kw1">Case</span><span class="br0">&#40;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    ...</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    <span class="me1">testReverse</span> <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//shortcut variables</span></div></li><li class="li1"><div class="de1">        <span class="kw2">var</span> ArrayAssert <span class="sy0">=</span> Y.<span class="me1">ArrayAssert</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">        <span class="co1">//do whatever data manipulation is necessary</span></div></li><li class="li1"><div class="de1">        <span class="kw1">this</span>.<span class="me1">data</span> <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">reverse</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        ArrayAssert.<span class="me1">itemsAreEqual</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="nu0">5</span><span class="sy0">,</span><span class="nu0">4</span><span class="sy0">,</span><span class="nu0">3</span><span class="sy0">,</span><span class="nu0">2</span><span class="sy0">,</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Arrays should be equal.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    ...</div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">Y.<span class="me1">example</span>.<span class="me1">test</span>.<span class="me1">ArrayTestCase</span> <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Test</span>.<span class="kw1">Case</span><span class="br0">&#40;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   472
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   473
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   474
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   475
    <span class="me1">testReverse</span> <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   476
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   477
        <span class="co1">//shortcut variables</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   478
        <span class="kw2">var</span> ArrayAssert <span class="sy0">=</span> Y.<span class="me1">ArrayAssert</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   479
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   480
        <span class="co1">//do whatever data manipulation is necessary</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   481
        <span class="kw1">this</span>.<span class="me1">data</span> <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">reverse</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   482
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   483
        ArrayAssert.<span class="me1">itemsAreEqual</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="nu0">5</span><span class="sy0">,</span><span class="nu0">4</span><span class="sy0">,</span><span class="nu0">3</span><span class="sy0">,</span><span class="nu0">2</span><span class="sy0">,</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Arrays should be equal.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   484
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   485
    <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   486
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   487
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   488
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax4-plain">Y.example.test.ArrayTestCase = new Y.Test.Case({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   489
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   490
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   491
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   492
    testReverse : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   493
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   494
        //shortcut variables
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   495
        var ArrayAssert = Y.ArrayAssert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   496
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   497
        //do whatever data manipulation is necessary
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   498
        this.data = this.data.reverse();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   499
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   500
        ArrayAssert.itemsAreEqual([5,4,3,2,1,0], this.data, "Arrays should be equal.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   501
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   502
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   503
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   504
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   505
});</textarea></div><p>The <code>testRemove()</code> method is very simple, calling <code>reverse()</code> on the array and then testing the result. Since
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   506
  every item in the array has changed, the changes can be tested by calling <code>Y.ArrayAssert.itemsAreEqual()</code> once (instead of
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   507
  calling <code>Y.ArrayAssert.indexOf()</code> multiple times). The first argument is an array with all the values in the reverse order
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   508
  of the array that was created in <code>setUp()</code>. When compared with the second argument, the newly reversed array, the values in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   509
  each position should be equal.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   510
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   511
<h3>Testing <code>shift()</code></h3>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   512
<p>The next test is <code>testShift()</code>, which tests the functionality of the <code>Array</code> object's <code>shift()</code> method:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   513
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   514
<div id="syntax5" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">Y.<span class="me1">example</span>.<span class="me1">test</span>.<span class="me1">ArrayTestCase</span> <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Test</span>.<span class="kw1">Case</span><span class="br0">&#40;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    ...</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    <span class="me1">testShift</span> <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//shortcut variables</span></div></li><li class="li1"><div class="de1">        <span class="kw2">var</span> Assert <span class="sy0">=</span> Y.<span class="me1">Assert</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        <span class="kw2">var</span> ArrayAssert <span class="sy0">=</span> Y.<span class="me1">ArrayAssert</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//do whatever data manipulation is necessary</span></div></li><li class="li1"><div class="de1">        <span class="kw2">var</span> value <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">shift</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//array shouldn't be empty</span></div></li><li class="li2"><div class="de2">        ArrayAssert.<span class="me1">isNotEmpty</span><span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Array should not be empty.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//basic equality assertion - expected value, actual value, optional error message</span></div></li><li class="li1"><div class="de1">        Assert.<span class="me1">areEqual</span><span class="br0">&#40;</span><span class="nu0">5</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">length</span><span class="sy0">,</span> <span class="st0">&quot;Array should have 6 items.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        Assert.<span class="me1">areEqual</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="sy0">,</span> value<span class="sy0">,</span> <span class="st0">&quot;Value should be 0.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">        ArrayAssert.<span class="me1">itemsAreEqual</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">2</span><span class="sy0">,</span><span class="nu0">3</span><span class="sy0">,</span><span class="nu0">4</span><span class="sy0">,</span><span class="nu0">5</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Arrays should be equal.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    ...</div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">Y.<span class="me1">example</span>.<span class="me1">test</span>.<span class="me1">ArrayTestCase</span> <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Test</span>.<span class="kw1">Case</span><span class="br0">&#40;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   515
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   516
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   517
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   518
    <span class="me1">testShift</span> <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   519
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   520
        <span class="co1">//shortcut variables</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   521
        <span class="kw2">var</span> Assert <span class="sy0">=</span> Y.<span class="me1">Assert</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   522
        <span class="kw2">var</span> ArrayAssert <span class="sy0">=</span> Y.<span class="me1">ArrayAssert</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   523
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   524
        <span class="co1">//do whatever data manipulation is necessary</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   525
        <span class="kw2">var</span> value <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">shift</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   526
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   527
        <span class="co1">//array shouldn't be empty</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   528
        ArrayAssert.<span class="me1">isNotEmpty</span><span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Array should not be empty.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   529
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   530
        <span class="co1">//basic equality assertion - expected value, actual value, optional error message</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   531
        Assert.<span class="me1">areEqual</span><span class="br0">&#40;</span><span class="nu0">5</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">length</span><span class="sy0">,</span> <span class="st0">&quot;Array should have 6 items.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   532
        Assert.<span class="me1">areEqual</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="sy0">,</span> value<span class="sy0">,</span> <span class="st0">&quot;Value should be 0.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   533
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   534
        ArrayAssert.<span class="me1">itemsAreEqual</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">2</span><span class="sy0">,</span><span class="nu0">3</span><span class="sy0">,</span><span class="nu0">4</span><span class="sy0">,</span><span class="nu0">5</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Arrays should be equal.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   535
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   536
    <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   537
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   538
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   539
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax5-plain">Y.example.test.ArrayTestCase = new Y.Test.Case({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   540
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   541
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   542
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   543
    testShift : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   544
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   545
        //shortcut variables
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   546
        var Assert = Y.Assert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   547
        var ArrayAssert = Y.ArrayAssert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   548
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   549
        //do whatever data manipulation is necessary
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   550
        var value = this.data.shift();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   551
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   552
        //array shouldn't be empty
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   553
        ArrayAssert.isNotEmpty(this.data, "Array should not be empty.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   554
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   555
        //basic equality assertion - expected value, actual value, optional error message
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   556
        Assert.areEqual(5, this.data.length, "Array should have 6 items.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   557
        Assert.areEqual(0, value, "Value should be 0.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   558
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   559
        ArrayAssert.itemsAreEqual([1,2,3,4,5], this.data, "Arrays should be equal.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   560
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   561
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   562
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   563
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   564
});</textarea></div><p>The <code>shift()</code> method removes the first item in the array and returns it (similar to <code>pop()</code>, which removes the item
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   565
  from the end). In the <code>testShift()</code> method, <code>shift()</code> is called and the item is stored in <code>value</code>. To ensure
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   566
  that the rest of the array is still there, <code>Y.ArrayAssert.isNotEmpty()</code> is called. After that, <code>Array.areEqual()</code> is
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   567
  called twice, once to test the length of the array and once to test the value that was returned from <code>shift()</code> (which should be
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   568
  0). As a last test, the entire array is tested using <code>Y.ArrayAssert.itemsAreEqual()</code> to ensure that all of the items have shifted
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   569
  into the appropriate positions in the array.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   570
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   571
<h3>Testing <code>splice()</code></h3>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   572
<p>The next test is <code>testSplice()</code>, which tests the functionality of the <code>Array</code> object's <code>splice()</code> method:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   573
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   574
<div id="syntax6" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">Y.<span class="me1">example</span>.<span class="me1">test</span>.<span class="me1">ArrayTestCase</span> <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Test</span>.<span class="kw1">Case</span><span class="br0">&#40;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    ...</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    <span class="me1">testSplice</span> <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//shortcut variables</span></div></li><li class="li1"><div class="de1">        <span class="kw2">var</span> Assert <span class="sy0">=</span> Y.<span class="me1">Assert</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        <span class="kw2">var</span> ArrayAssert <span class="sy0">=</span> Y.<span class="me1">ArrayAssert</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//do whatever data manipulation is necessary</span></div></li><li class="li1"><div class="de1">        <span class="kw2">var</span> removed <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">splice</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="sy0">,</span> <span class="nu0">2</span><span class="sy0">,</span> <span class="nu0">99</span><span class="sy0">,</span> <span class="nu0">100</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//basic equality assertion - expected value, actual value, optional error message</span></div></li><li class="li2"><div class="de2">        Assert.<span class="me1">areEqual</span><span class="br0">&#40;</span><span class="nu0">6</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">length</span><span class="sy0">,</span> <span class="st0">&quot;Array should have 6 items.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//the new items should be there</span></div></li><li class="li1"><div class="de1">        ArrayAssert.<span class="me1">indexOf</span><span class="br0">&#40;</span><span class="nu0">99</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="nu0">1</span><span class="sy0">,</span> <span class="st0">&quot;Value at index 1 should be 99.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        ArrayAssert.<span class="me1">indexOf</span><span class="br0">&#40;</span><span class="nu0">100</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="nu0">2</span><span class="sy0">,</span> <span class="st0">&quot;Value at index 2 should be 100.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">        ArrayAssert.<span class="me1">itemsAreEqual</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="sy0">,</span><span class="nu0">99</span><span class="sy0">,</span><span class="nu0">100</span><span class="sy0">,</span><span class="nu0">3</span><span class="sy0">,</span><span class="nu0">4</span><span class="sy0">,</span><span class="nu0">5</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Arrays should be equal.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        ArrayAssert.<span class="me1">itemsAreEqual</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="sy0">,</span> removed<span class="sy0">,</span> <span class="st0">&quot;Removed values should be an array containing 1 and 2.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">    ...</div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">Y.<span class="me1">example</span>.<span class="me1">test</span>.<span class="me1">ArrayTestCase</span> <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Test</span>.<span class="kw1">Case</span><span class="br0">&#40;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   575
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   576
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   577
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   578
    <span class="me1">testSplice</span> <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   579
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   580
        <span class="co1">//shortcut variables</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   581
        <span class="kw2">var</span> Assert <span class="sy0">=</span> Y.<span class="me1">Assert</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   582
        <span class="kw2">var</span> ArrayAssert <span class="sy0">=</span> Y.<span class="me1">ArrayAssert</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   583
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   584
        <span class="co1">//do whatever data manipulation is necessary</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   585
        <span class="kw2">var</span> removed <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">splice</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="sy0">,</span> <span class="nu0">2</span><span class="sy0">,</span> <span class="nu0">99</span><span class="sy0">,</span> <span class="nu0">100</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   586
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   587
        <span class="co1">//basic equality assertion - expected value, actual value, optional error message</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   588
        Assert.<span class="me1">areEqual</span><span class="br0">&#40;</span><span class="nu0">6</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">length</span><span class="sy0">,</span> <span class="st0">&quot;Array should have 6 items.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   589
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   590
        <span class="co1">//the new items should be there</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   591
        ArrayAssert.<span class="me1">indexOf</span><span class="br0">&#40;</span><span class="nu0">99</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="nu0">1</span><span class="sy0">,</span> <span class="st0">&quot;Value at index 1 should be 99.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   592
        ArrayAssert.<span class="me1">indexOf</span><span class="br0">&#40;</span><span class="nu0">100</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="nu0">2</span><span class="sy0">,</span> <span class="st0">&quot;Value at index 2 should be 100.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   593
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   594
        ArrayAssert.<span class="me1">itemsAreEqual</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="sy0">,</span><span class="nu0">99</span><span class="sy0">,</span><span class="nu0">100</span><span class="sy0">,</span><span class="nu0">3</span><span class="sy0">,</span><span class="nu0">4</span><span class="sy0">,</span><span class="nu0">5</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Arrays should be equal.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   595
        ArrayAssert.<span class="me1">itemsAreEqual</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="sy0">,</span> removed<span class="sy0">,</span> <span class="st0">&quot;Removed values should be an array containing 1 and 2.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   596
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   597
    <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   598
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   599
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   600
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax6-plain">Y.example.test.ArrayTestCase = new Y.Test.Case({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   601
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   602
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   603
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   604
    testSplice : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   605
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   606
        //shortcut variables
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   607
        var Assert = Y.Assert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   608
        var ArrayAssert = Y.ArrayAssert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   609
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   610
        //do whatever data manipulation is necessary
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   611
        var removed = this.data.splice(1, 2, 99, 100);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   612
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   613
        //basic equality assertion - expected value, actual value, optional error message
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   614
        Assert.areEqual(6, this.data.length, "Array should have 6 items.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   615
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   616
        //the new items should be there
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   617
        ArrayAssert.indexOf(99, this.data, 1, "Value at index 1 should be 99.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   618
        ArrayAssert.indexOf(100, this.data, 2, "Value at index 2 should be 100.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   619
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   620
        ArrayAssert.itemsAreEqual([0,99,100,3,4,5], this.data, "Arrays should be equal.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   621
        ArrayAssert.itemsAreEqual([1,2], removed, "Removed values should be an array containing 1 and 2.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   622
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   623
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   624
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   625
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   626
});</textarea></div><p>The <code>splice()</code> method is one of the most powerful <code>Array</code> manipulations. It can both remove and add any number of items
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   627
  from an array at the same time. This test begins by splicing some values into the array. When calling <code>splice()</code>, the first argument
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   628
  is 1, indicating that values should be inserted at index 1 of the array; the second argument is 2, indicating that two values should be
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   629
  removed from the array (the value in index 1 and the value in index 2); the third and fourth arguments are values that should be inserted
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   630
  into the array at the position given by the first argument. Essentially, values 1 and 2 should end up being replaced by values 99 and 100 in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   631
  the array.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   632
<p>The first test is to determine that the length of the array is still 6 (since the previous step removed two items and then inserted two, the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   633
  length should still be 6). After that, <code>Y.Assert.indexOf()</code> is called to determine that the values of 99 and 100 are in positions
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   634
  1 and 2, respectively. To ensure the integrity of the entire array, <code>Y.ArrayAssert.itemsAreEqual()</code> is called on the array, comparing
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   635
  it to an array with the same values. The very last step is to test the value returned from <code>splice()</code>, which is an array containing
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   636
  the removed values, 1 and 2. <code>Y.ArrayAssert.itemsAreEqual()</code> is appropriate for this task as well.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   637
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   638
<h3>Testing <code>unshift()</code></h3>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   639
<p>The next test is <code>testUnshift()</code>, which tests the functionality of the <code>Array</code> object's <code>unshift()</code> method:</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   640
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   641
<div id="syntax7" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1">Y.<span class="me1">example</span>.<span class="me1">test</span>.<span class="me1">ArrayTestCase</span> <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Test</span>.<span class="kw1">Case</span><span class="br0">&#40;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    ...</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">    <span class="me1">testUnshift</span> <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//shortcut variables</span></div></li><li class="li1"><div class="de1">        <span class="kw2">var</span> Assert <span class="sy0">=</span> Y.<span class="me1">Assert</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        <span class="kw2">var</span> ArrayAssert <span class="sy0">=</span> Y.<span class="me1">ArrayAssert</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//do whatever data manipulation is necessary</span></div></li><li class="li1"><div class="de1">        <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">unshift</span><span class="br0">&#40;</span><span class="sy0">-</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//basic equality assertion - expected value, actual value, optional error message</span></div></li><li class="li2"><div class="de2">        Assert.<span class="me1">areEqual</span><span class="br0">&#40;</span><span class="nu0">7</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">length</span><span class="sy0">,</span> <span class="st0">&quot;Array should have 7 items.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//the new item should be there</span></div></li><li class="li1"><div class="de1">        ArrayAssert.<span class="me1">indexOf</span><span class="br0">&#40;</span><span class="sy0">-</span><span class="nu0">1</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="nu0">0</span><span class="sy0">,</span> <span class="st0">&quot;First item should be -1.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">        ArrayAssert.<span class="me1">itemsAreEqual</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="sy0">-</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">0</span><span class="sy0">,</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">2</span><span class="sy0">,</span><span class="nu0">3</span><span class="sy0">,</span><span class="nu0">4</span><span class="sy0">,</span><span class="nu0">5</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Arrays should be equal.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    ...</div></li><li class="li2"><div class="de2"><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;">Y.<span class="me1">example</span>.<span class="me1">test</span>.<span class="me1">ArrayTestCase</span> <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Test</span>.<span class="kw1">Case</span><span class="br0">&#40;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   642
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   643
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   644
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   645
    <span class="me1">testUnshift</span> <span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   646
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   647
        <span class="co1">//shortcut variables</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   648
        <span class="kw2">var</span> Assert <span class="sy0">=</span> Y.<span class="me1">Assert</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   649
        <span class="kw2">var</span> ArrayAssert <span class="sy0">=</span> Y.<span class="me1">ArrayAssert</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   650
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   651
        <span class="co1">//do whatever data manipulation is necessary</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   652
        <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">unshift</span><span class="br0">&#40;</span><span class="sy0">-</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   653
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   654
        <span class="co1">//basic equality assertion - expected value, actual value, optional error message</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   655
        Assert.<span class="me1">areEqual</span><span class="br0">&#40;</span><span class="nu0">7</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span>.<span class="me1">length</span><span class="sy0">,</span> <span class="st0">&quot;Array should have 7 items.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   656
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   657
        <span class="co1">//the new item should be there</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   658
        ArrayAssert.<span class="me1">indexOf</span><span class="br0">&#40;</span><span class="sy0">-</span><span class="nu0">1</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="nu0">0</span><span class="sy0">,</span> <span class="st0">&quot;First item should be -1.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   659
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   660
        ArrayAssert.<span class="me1">itemsAreEqual</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="sy0">-</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">0</span><span class="sy0">,</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">2</span><span class="sy0">,</span><span class="nu0">3</span><span class="sy0">,</span><span class="nu0">4</span><span class="sy0">,</span><span class="nu0">5</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw1">this</span>.<span class="me1">data</span><span class="sy0">,</span> <span class="st0">&quot;Arrays should be equal.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   661
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   662
    <span class="br0">&#125;</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   663
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   664
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   665
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax7-plain">Y.example.test.ArrayTestCase = new Y.Test.Case({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   666
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   667
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   668
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   669
    testUnshift : function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   670
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   671
        //shortcut variables
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   672
        var Assert = Y.Assert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   673
        var ArrayAssert = Y.ArrayAssert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   674
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   675
        //do whatever data manipulation is necessary
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   676
        this.data.unshift(-1);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   677
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   678
        //basic equality assertion - expected value, actual value, optional error message
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   679
        Assert.areEqual(7, this.data.length, "Array should have 7 items.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   680
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   681
        //the new item should be there
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   682
        ArrayAssert.indexOf(-1, this.data, 0, "First item should be -1.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   683
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   684
        ArrayAssert.itemsAreEqual([-1,0,1,2,3,4,5], this.data, "Arrays should be equal.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   685
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   686
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   687
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   688
    ...
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   689
});</textarea></div><p>Working similar to <code>push()</code>, <code>unshift()</code> adds a value to the array, but the item is added to the front (index 0) instead of
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   690
  the back. This test begins by adding the value -1 to the array. The first assertion determines if the length of the array has been incremented
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   691
  to 7 to account for the new value. After that, <code>Y.ArrayAssert.indexOf()</code> is used to determine if the value has been placed in the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   692
  correct location. The final assertions tests that the entire array is expected by using <code>Y.ArrayAssert.itemsAreEqual()</code>.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   693
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   694
<h3>Running the tests</h3>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   695
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   696
<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
   697
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   698
<div id="syntax8" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="co1">//create the console</span></div></li><li class="li1"><div class="de1"><span class="kw2">var</span> r <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Console</span><span class="br0">&#40;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">    verbose <span class="sy0">:</span> <span class="kw2">true</span><span class="sy0">,</span></div></li><li class="li1"><div class="de1">    newestOnTop <span class="sy0">:</span> <span class="kw2">false</span></div></li><li class="li2"><div class="de2"><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">r.<span class="me1">render</span><span class="br0">&#40;</span><span class="st0">'#testLogger'</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">Y.<span class="me1">Test</span>.<span class="me1">Runner</span>.<span class="me1">add</span><span class="br0">&#40;</span>Y.<span class="me1">example</span>.<span class="me1">test</span>.<span class="me1">ArrayTestCase</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1"><span class="co1">//run the tests</span></div></li><li class="li1"><div class="de1">Y.<span class="me1">Test</span>.<span class="me1">Runner</span>.<span class="me1">run</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="co1">//create the console</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   699
<span class="kw2">var</span> r <span class="sy0">=</span> <span class="kw2">new</span> Y.<span class="me1">Console</span><span class="br0">&#40;</span><span class="br0">&#123;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   700
    verbose <span class="sy0">:</span> <span class="kw2">true</span><span class="sy0">,</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   701
    newestOnTop <span class="sy0">:</span> <span class="kw2">false</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   702
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   703
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   704
r.<span class="me1">render</span><span class="br0">&#40;</span><span class="st0">'#testLogger'</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   705
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   706
Y.<span class="me1">Test</span>.<span class="me1">Runner</span>.<span class="me1">add</span><span class="br0">&#40;</span>Y.<span class="me1">example</span>.<span class="me1">test</span>.<span class="me1">ArrayTestCase</span><span class="br0">&#41;</span><span class="sy0">;</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   707
&nbsp;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   708
<span class="co1">//run the tests</span>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   709
Y.<span class="me1">Test</span>.<span class="me1">Runner</span>.<span class="me1">run</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div><textarea id="syntax8-plain">//create the console
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   710
var r = new Y.Console({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   711
    verbose : true,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   712
    newestOnTop : false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   713
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   714
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   715
r.render('#testLogger');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   716
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   717
Y.Test.Runner.add(Y.example.test.ArrayTestCase);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   718
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   719
//run the tests
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   720
Y.Test.Runner.run();</textarea></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   721
<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
   722
  but you wouldn't see the results). After that, the <code>Y.Test.Runner</code> is loaded with the <code>Y.Test.Case</code> object by calling
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   723
  <code>add()</code> (any number of <code>Y.Test.Case</code> and <code>TestSuite</code> objects can be added to a <code>Y.Test.Runner</code>,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   724
  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
   725
  queue and displays the results in the <code>Y.Console</code>.</p>				</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   726
				<div class="yui-u sidebar">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   727
					
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   728
				
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   729
					<div id="examples" class="mod box4">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   730
                        <div class="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   731
						<h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   732
    Test Examples:</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   733
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   734
						<div class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   735
							<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   736
								<li><a href='../test/test-simple-example.html'>Simple Testing Example</a></li><li><a href='../test/test-advanced-test-options.html'>Advanced Test Options</a></li><li class='selected'><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
   737
						</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   738
					</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   739
					
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   740
					<div class="mod box4">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   741
                        <div class="hd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   742
						<h4>More Test Resources:</h4>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   743
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   744
                        <div class="bd">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   745
						<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   746
							<!-- <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
   747
<li><a href="../../api/module_test.html">API Documentation</a></li></ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   748
                        </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   749
					</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   750
			  </div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   751
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   752
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   753
		</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   754
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   755
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   756
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   757
<div class="yui-b toc3" id="tocWrapper">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   758
<!-- TABLE OF CONTENTS -->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   759
<div id="toc">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   760
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   761
<ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   762
<li class="sect first">YUI 3 Resources</li><li class="item"><a title="YUI 3 -- Yahoo! User Interface (YUI) Library" href="http://developer.yahoo.com/yui/3/">YUI 3 Web Site</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="YUI 3 Dependency Configurator -- configure your custom YUI implementation" href="http://developer.yahoo.com/yui/3/configurator">YUI 3 Dependency Configurator</a></li><li class="item"><a title="The YUI 3 Forum on YUILibrary.com" href="http://yuilibrary.com/forum/viewforum.php?f=15">YUI 3 Forums (external)</a></li><li class="item"><a title="Found a bug or a missing feature? Let us know on YUILibrary.com." href="http://developer.yahoo.com/yui/articles/reportingbugs/">Bug Reports/Feature Requests</a></li><li class="item"><a title="YUI is free and open, offered under a BSD license." href="http://developer.yahoo.com/yui/license.html">YUI License</a></li><li class="item"><a title="Download and fork the YUI project on GitHub" href="http://github.com/yui">YUI on Github</a></li><li class="item"><a title="The Yahoo! User Interface Blog" href="http://yuiblog.com">YUI Blog (external)</a></li><li class="sect">YUI 3 Core - Examples</li><li class="item"><a title="YUI Global Object - Functional Examples" href="../../examples/yui/index.html">YUI Global Object</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 <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Widget - Functional Examples" href="../../examples/widget/index.html">Widget <img src='http://l.yimg.com/a/i/not/beta_1.gif'></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="AsyncQueue - Functional Examples" href="../../examples/async-queue/index.html">AsyncQueue</a></li><li class="item"><a title="Browser History - Functional Examples" href="../../examples/history/index.html">Browser History</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 <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="DataSource - Functional Examples" href="../../examples/datasource/index.html">DataSource <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="DataType - Functional Examples" href="../../examples/datatype/index.html">DataType <img src='http://l.yimg.com/a/i/not/beta_1.gif'></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="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="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 <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Slider - Functional Examples" href="../../examples/slider/index.html">Slider <img src='http://l.yimg.com/a/i/not/beta_1.gif'></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 <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="MenuNav Node Plugin - Functional Examples" href="../../examples/node-menunav/index.html">MenuNav Node Plugin <img src='http://l.yimg.com/a/i/not/beta_1.gif'></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 <img src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Console Filters Plugin- Functional Examples" href="../../examples/console-filters/index.html">Plugin.ConsoleFilters <img src='http://l.yimg.com/a/i/not/beta_1.gif'></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">Other Useful YUI 3 Resources</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="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></ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   763
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   764
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   765
	</div><!--closes bd-->
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   766
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   767
	<div id="ft">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   768
        <p class="first">Copyright &copy; 2009 Yahoo! Inc. All rights reserved.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   769
        <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
   770
            <a href="http://docs.yahoo.com/info/terms/">Terms of Service</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   771
            <a href="http://docs.yahoo.com/info/copyright/copyright.html">Copyright Policy</a> - 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   772
            <a href="http://careers.yahoo.com/">Job Openings</a></p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   773
	</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   774
</div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   775
<script language="javascript"> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   776
var yuiConfig = {base:"../../build/", timeout: 10000};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   777
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   778
<script src="../../assets/syntax.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   779
<script src="../../assets/dpSyntaxHighlighter.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   780
<script language="javascript"> 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   781
dp.SyntaxHighlighter.HighlightAll('code'); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   782
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   783
</body>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   784
</html>