src/cm/media/js/lib/yui/yui3.0.0/tests/profiler/tests/profiler.html
author raph
Wed, 24 Mar 2010 16:19:07 +0100
changeset 229 f6ae685b3097
parent 0 40c8f766c9b8
permissions -rw-r--r--
add tracking HTML from configuration
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
<html>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
<head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
<title>profiler tests</title>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
<link type="text/css" rel="stylesheet" href="../../../build/logreader/assets/skins/sam/logreader.css" />
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
<script type="text/javascript" src="../../../build/yui/yui.js"></script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
</head>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
<body class="yui-skin-sam">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
    <h1>Profiler Tests</h1>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
    <div id="c"></div>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
<script type="text/javascript">
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
//global function
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
function getMessage(){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
    return "hi";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
//global object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
var myObject = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
    getName : function(){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
        return "myObject";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
    }
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
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
YUI({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
    base: '../../../build/',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
    filter: "debug",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
    logInclude: { TestRunner: true }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
}).use('test', 'console', 'profiler',  function (Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
    Y.namespace("Tests");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
    Y.Tests.Profiler = (function(){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
        var Assert = Y.Assert;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
        var Profiler = Y.Profiler;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
        //-------------------------------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
        // Information needed to run tests
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
        //-------------------------------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
        var testObject = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
            factorial : function (num){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
                if (num > 1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
                    return num * testObject.factorial(num-1);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
                } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
                    return 1;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
            add : function (iterations){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
                var sum = 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
                for (var i=0; i < iterations; i++){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
                    sum++;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
            }    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
        };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
        var root = {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
        root.SuperType = function(){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
            this.name = "SuperType";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
        root.SuperType.prototype.getName = function(){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
            return this.name;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
        };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
        root.SubType = function(){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
            this.age = 29;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
            root.SubType.superclass.constructor.call(this);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
        Y.extend(root.SubType, root.SuperType, {    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
            getAge : function (){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
                return this.age;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
        });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
        //-------------------------------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
        // Base Test Suite
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
        //-------------------------------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
        var suite = new Y.Test.Suite("Profiler Tests");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
        //-------------------------------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
        // Test Case for basic function profiling
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
        //-------------------------------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
        suite.add(new Y.Test.Case({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
            name : "Profiler Registration Tests",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
            tearDown: function(){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
                Profiler.clear();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
            //---------------------------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
            // Special assertions for profiler
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
            //---------------------------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
            assertFunctionIsRegistered : function (fullFuncName, shortFuncName, owner, originalFunction, newFunction){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
                var containerFunc = Profiler.getOriginal(fullFuncName);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
                Assert.areNotEqual(originalFunction, newFunction, fullFuncName + " function was not replaced.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
                Assert.areEqual(originalFunction, containerFunc, "Original " + fullFuncName + " function was not stored.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
                Assert.areEqual(originalFunction.prototype, containerFunc.prototype, fullFuncName + " prototype was not copied.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
                Assert.areEqual(shortFuncName, containerFunc.__yuiFuncName, fullFuncName + " function name was not stored.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
                Assert.areEqual(owner, containerFunc.__yuiOwner, "Owner for " + fullFuncName + "was not stored.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
                Assert.isObject(Profiler.getReport(fullFuncName), "Report for " + fullFuncName + " function was not created.");
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
            assertFunctionIsNotRegistered : function(fullFuncName, shortFuncName, owner, originalFunction, newFunction){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
                Assert.areEqual(originalFunction, newFunction, "Original " + fullFuncName + " function was not placed back on owner.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
                Assert.isUndefined(Profiler.getOriginal(fullFuncName), "Container for original " + fullFuncName + " function was not destroyed.");        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
            //---------------------------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
            // Tests
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
            testInstrument: function(){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
                var original = function() { return "Hello"; };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
                var instrumented = Profiler.instrument("hello", original);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
                this.assertFunctionIsRegistered("hello", "hello", null, original, instrumented);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
            testRegisterFunction : function (){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
                var originalFunction = testObject.factorial;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
                var fullFuncName = "testObject.factorial";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
                Profiler.registerFunction(fullFuncName, testObject);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
                this.assertFunctionIsRegistered(fullFuncName, "factorial", testObject, originalFunction, testObject.factorial);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
                Profiler.unregisterFunction(fullFuncName);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
                this.assertFunctionIsNotRegistered(fullFuncName, "factorial", testObject, originalFunction, testObject.factorial);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
            
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
            testRegisterGlobalFunction : function (){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
                var originalFunction = getMessage;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
                var fullFuncName = "getMessage";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
                Profiler.registerFunction(fullFuncName, window);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
                this.assertFunctionIsRegistered(fullFuncName, "getMessage", window, originalFunction, getMessage);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
                Profiler.unregisterFunction(fullFuncName);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
                this.assertFunctionIsNotRegistered(fullFuncName, "getMessage", window, originalFunction, getMessage);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
            testRegisterGlobalFunctionOnGlobalObject : function (){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
                var originalFunction = myObject.getName;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
                var fullFuncName = "myObject.getName";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
                Profiler.registerFunction(fullFuncName);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
                this.assertFunctionIsRegistered(fullFuncName, "getName", myObject, originalFunction, myObject.getName);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
                Profiler.unregisterFunction(fullFuncName);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
                this.assertFunctionIsNotRegistered(fullFuncName, "getName", myObject, originalFunction, myObject.getName);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
            testRegisterObject : function (){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
                var funcNames = [];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
                var originalFuncs = {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
                //get all methods
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184
                for (var propName in testObject){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
                    if (typeof propName == "function"){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
                        funcNames.push(propName);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
                        originalFuncs[propName] = testObject[propName];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
                    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
                Profiler.registerObject("testObject", testObject);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
                Assert.isObject(Profiler.getOriginal("testObject"), "Object was not added to container.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
                //check each method
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
                for (var i=0; i < funcNames.length; i++){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
                    var fullFuncName = "testobject." + funcNames[i];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
                    var originalFunction = originalFuncs[funcNames[i]];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
                    this.assertFunctionIsRegistered(fullFuncName, funcNames[i], testObject, originalFunction, testObject[funcNames[i]]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
                Profiler.unregisterObject("testObject");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
                //check each method
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   205
                for (var i=0; i < funcNames.length; i++){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   206
                    var fullFuncName = "testobject." + funcNames[i];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
                    var originalFunction = originalFuncs[funcNames[i]];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
                    this.assertFunctionIsNotRegistered(fullFuncName, funcNames[i], testObject, originalFunction, testObject[funcNames[i]]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
                }            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   211
                Assert.isUndefined(Profiler.getOriginal("testObject"), "Object was not removed from container.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   212
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   213
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   214
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
            testRegisterConstructor : function (){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
                var originalConstructor = root.SuperType;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   218
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
                //gather stuff on the prototype
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
                var funcNames = [];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
                var originalFuncs = {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
                for (var prop in root.SuperType.prototype){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
                    if (Y.Lang.isFunction(root.SuperType.prototype)){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
                        funcNames.push(prop);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
                        originalFuncs[prop] = root.SuperType.prototype[prop];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   227
                    }
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
                Profiler.registerConstructor("root.SuperType", root);            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   232
                this.assertFunctionIsRegistered("root.SuperType", "SuperType", root, originalConstructor, root.SuperType);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   233
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
                //check each method
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
                for (var i=0; i < funcNames.length; i++){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
                    var fullFuncName = "root.SuperType.prototype." + funcNames[i];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
                    var originalFunction = originalFuncs[funcNames[i]];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
                    this.assertFunctionIsRegistered(fullFuncName, funcNames[i], root.SuperType.prototype, originalFunction, root.SuperType.prototype[funcNames[i]]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
                }                               
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
                Profiler.unregisterConstructor("root.SuperType");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
                     
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
                //check each method
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
                for (var i=0; i < funcNames.length; i++){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
                    var fullFuncName = "root.SuperType.prototype." + funcNames[i];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
                    var originalFunction = originalFuncs[funcNames[i]];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
                    this.assertFunctionIsNotRegistered(fullFuncName, funcNames[i], root.SuperType.prototype, originalFunction, root.SuperType.prototype[funcNames[i]]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   248
                }    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   249
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   250
                this.assertFunctionIsNotRegistered("root.SuperType", "SuperType", root, originalConstructor, root.SuperType);
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
            testRegisterConstructorWithInheritance : function (){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   254
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   255
                var originalConstructor = root.SubType;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
                //gather stuff on the prototype
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
                var funcNames = [];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
                var originalFuncs = {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
                for (var prop in root.SubType.prototype){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
                    if (Y.Lang.isFunction(root.SubType.prototype)){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
                        funcNames.push(prop);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   264
                        originalFuncs[prop] = root.SubType.prototype[prop];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   265
                    }
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
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   269
                Profiler.registerConstructor("root.SubType", root);            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   270
                this.assertFunctionIsRegistered("root.SubType", "SubType", root, originalConstructor, root.SubType);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   271
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
                //check the superclass property
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
                Assert.isObject(root.SubType.superclass, "SubType superclass should be an object.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
                Assert.areEqual(root.SuperType, root.SubType.superclass.constructor, "SubType superclass constructor should be SuperType.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
                //check each method
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
                for (var i=0; i < funcNames.length; i++){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
                    var fullFuncName = "root.SubType.prototype." + funcNames[i];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
                    var originalFunction = originalFuncs[funcNames[i]];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   280
                    this.assertFunctionIsRegistered(fullFuncName, funcNames[i], root.SubType.prototype, originalFunction, root.SubType.prototype[funcNames[i]]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   281
                }                               
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   282
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
                Profiler.unregisterConstructor("root.SubType");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
                     
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
                //check each method
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
                for (var i=0; i < funcNames.length; i++){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
                    var fullFuncName = "root.SubType.prototype." + funcNames[i];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
                    var originalFunction = originalFuncs[funcNames[i]];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   289
                    this.assertFunctionIsNotRegistered(fullFuncName, funcNames[i], root.SubType.prototype, originalFunction, root.SubType.prototype[funcNames[i]]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   290
                }    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   292
                this.assertFunctionIsNotRegistered("root.SubType", "SubType", root, originalConstructor, root.SubType);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   293
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   294
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   295
            testFunctionAccuracy1 : function (){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   296
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   297
                Profiler.registerFunction("testObject.factorial", testObject);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   298
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   299
                var result = testObject.factorial(10);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   300
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   301
                Profiler.unregisterFunction("testObject.factorial");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   302
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   303
                Assert.areEqual(3628800, result, "Factorial result was incorrect.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   304
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   305
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   306
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   307
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   308
            testFunctionAccuracy2 : function (){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   309
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   310
                Profiler.registerConstructor("root.SubType", root);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   311
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   312
                var o = new root.SubType();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   313
                var age = o.getAge();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   314
                var name = o.getName();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   315
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   316
                Assert.areEqual(29, age, "o.age was incorrect.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   317
                Assert.areEqual("SuperType", name, "o.name was incorrect");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   318
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   319
                var o2 = new root.SubType();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   320
                age = o2.getAge();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   321
                name = o2.getName();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   322
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   323
                Assert.areEqual(29, age, "o2.Age was incorrect.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   324
                Assert.areEqual("SuperType", name, "o2.Name was incorrect");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   325
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   326
                Profiler.unregisterConstructor("root.SubType");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   327
            
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
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   332
        //-------------------------------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   333
        // Test Case for stopwatch functions
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   334
        //-------------------------------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   335
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   336
        suite.add(new Y.Test.Case({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   337
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   338
            name : "Profiler Stopwatch Tests",
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
            tearDown: function(){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   342
                Profiler.clear();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   343
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   344
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   345
            testStartStop: function (){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   346
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   347
                Profiler.start("random.entry");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   348
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   349
                for (var i=0; i < 10000; i++){}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   350
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   351
                Profiler.stop("random.entry");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   352
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   353
                var report = Profiler.getReport("random.entry");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   354
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   355
                Assert.isObject(report, "Report should be an object.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   356
                Assert.areEqual(1, report.calls, "Call count should be 1.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   357
                Assert.isNumber(report.max, "Max should be a number.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   358
                Assert.isNumber(report.min, "Min should be a number.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   359
                Assert.isNumber(report.avg, "Average should be a number.");        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   360
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   361
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   362
            testStartStopPause : function (){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   363
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   364
                Profiler.start("random.entry");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   365
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   366
                for (var i=0; i < 10000; i++){}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   367
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   368
                Profiler.pause("random.entry");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   369
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   370
                for (var i=0; i < 10000; i++){}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   371
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   372
                Profiler.start("random.entry");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   373
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   374
                for (var i=0; i < 10000; i++){}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   375
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   376
                Profiler.stop("random.entry");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   377
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   378
                var report = Profiler.getReport("random.entry");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   379
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   380
                Assert.isObject(report, "Report should be an object.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   381
                Assert.areEqual(1, report.calls, "Call count should be 1.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   382
                Assert.isNumber(report.max, "Max should be a number.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   383
                Assert.isNumber(report.min, "Min should be a number.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   384
                Assert.isNumber(report.avg, "Average should be a number.");   
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   385
          
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   386
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   387
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   388
            testStartTwice : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   389
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   390
                Profiler.start("random.entry");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   391
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   392
                for (var i=0; i < 10000; i++){}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   393
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   394
                Profiler.stop("random.entry");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   395
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   396
                Profiler.start("random.entry");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   397
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   398
                for (var i=0; i < 10000; i++){}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   399
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   400
                Profiler.stop("random.entry");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   401
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   402
                var report = Profiler.getReport("random.entry");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   403
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   404
                Assert.isObject(report, "Report should be an object.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   405
                Assert.areEqual(2, report.calls, "Call count should be 2.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   406
                Assert.isNumber(report.max, "Max should be a number.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   407
                Assert.isNumber(report.min, "Min should be a number.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   408
                Assert.isNumber(report.avg, "Average should be a number."); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   409
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   410
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   411
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   412
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   413
        }));        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   414
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   415
        //-------------------------------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   416
        // Test Case for report data
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   417
        //-------------------------------------------------------------------------
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   418
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   419
        suite.add(new Y.Test.Case({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   420
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   421
            name : "Profiler Report Data Tests",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   422
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   423
            testGetReport : function (){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   424
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   425
                Profiler.registerFunction("testObject.factorial", testObject);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   426
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   427
                testObject.factorial(10);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   428
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   429
                var report = Profiler.getReport("testObject.factorial");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   430
                Profiler.unregisterFunction("testObject.factorial");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   431
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   432
                Assert.isObject(report, "Report should be an object.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   433
                Assert.isNumber(report.calls, "Call count should be a number.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   434
                Assert.isNumber(report.max, "Max should be a number.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   435
                Assert.isNumber(report.min, "Min should be a number.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   436
                Assert.isNumber(report.avg, "Average should be a number.");        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   437
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   438
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   439
            testGetCallCount : function (){
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   440
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   441
                Profiler.registerFunction("testObject.factorial", testObject);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   442
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   443
                testObject.factorial(10);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   444
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   445
                var report = Profiler.getReport("testObject.factorial");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   446
                var callCount = Profiler.getCallCount("testObject.factorial");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   447
                Profiler.unregisterFunction("testObject.factorial");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   448
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   449
                Assert.isObject(report, "Report should be an object.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   450
                Assert.areEqual(10, report.calls, "Report.calls is incorrect.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   451
                Assert.areEqual(10, callCount, "Call count is incorrect.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   452
          
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   453
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   454
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   455
            testGetReport : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   456
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   457
                Profiler.registerConstructor("root.SubType", root);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   458
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   459
                var o = new root.SubType();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   460
                o.getAge();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   461
                o.getName();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   462
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   463
                var o2 = new root.SubType();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   464
                o2.getAge();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   465
                o2.getName();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   466
                o2.getAge();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   467
                o2.getName();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   468
                o2.getName();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   469
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   470
                var report = Profiler.getFullReport();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   471
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   472
                Profiler.unregisterConstructor("root.SubType");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   473
                
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   474
                Assert.isObject(report, "Report should be an object.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   475
                Assert.isObject(report["root.SubType"], "There should be an entry for root.SubType.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   476
                Assert.areEqual(2, report["root.SubType"].calls, "root.SubType should have a call count of 2.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   477
                //Assert.isObject(report["root.SubType.prototype"], "There should be an entry for root.SubType.prototype.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   478
                Assert.isObject(report["root.SubType.prototype.getAge"], "There should be an entry for getAge()");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   479
                Assert.areEqual(3, report["root.SubType.prototype.getAge"].calls, "getAge() should have a call count of 3.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   480
                Assert.isObject(report["root.SubType.prototype.getName"], "There should be an entry for getName()");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   481
                Assert.areEqual(4, report["root.SubType.prototype.getName"].calls, "getName() should have a call count of 4.");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   482
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   483
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   484
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   485
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   486
        }));    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   487
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   488
        //return it
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   489
        return suite;
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
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   493
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   494
    var r = new Y.Console({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   495
        verbose : true,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   496
        //consoleLimit : 10,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   497
        newestOnTop : false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   498
    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   499
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   500
    r.render('#c');
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
    //add to the testrunner and run
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   504
    Y.Test.Runner.add(Y.Tests.Profiler);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   505
    Y.Test.Runner.run();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   506
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   507
    /*if (parent && parent != window) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   508
        YAHOO.tool.TestManager.load();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   509
    } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   510
        YAHOO.tool.TestRunner.run();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   511
    }*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   512
 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   513
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   514
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   515
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   516
</script>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   517
</body>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   518
</html>