1
0
Fork 0

Added tests for constructor arguments

closure/master
Mike Gerwitz 2010-11-10 19:29:56 -05:00
parent bebaee7b46
commit 9071a158a2
1 changed files with 29 additions and 1 deletions

View File

@ -33,10 +33,15 @@ var construct_count = 0,
// create a basic test class // create a basic test class
var Foo = Class.extend( var Foo = Class.extend(
{ {
args: null,
__construct: function() __construct: function()
{ {
construct_count++; construct_count++;
construct_context = this; construct_context = this;
this.args = arguments;
}, },
}); });
@ -51,7 +56,8 @@ assert.equal(
"Constructor should not be called before class is instantiated" "Constructor should not be called before class is instantiated"
); );
var obj = new Foo(); var args = [ 'foo', 'bar' ],
obj = new Foo( args[0], args[1] );
assert.equal( assert.equal(
construct_count, construct_count,
@ -64,3 +70,25 @@ assert.equal(
construct_context, construct_context,
"Constructor should be invoked within the context of the class instance" "Constructor should be invoked within the context of the class instance"
); );
assert.notEqual(
obj.args,
null,
"Constructor arguments should be passed to the constructor"
);
assert.equal(
obj.args.length,
args.length,
"All arguments should be passed to the constructor"
);
// check the argument values
for ( var i = 0, len = args.length; i < len; i++ )
{
assert.equal(
obj.args[ i ],
args[ i ],
"Arguments should be passed to the constructor: " + i
);
}