From bebaee7b466a9438b7a110dcaa84eb7016c4e2c5 Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Wed, 10 Nov 2010 19:21:53 -0500 Subject: [PATCH] Moved constructor tests into their own file --- test/test-class-constructor.js | 66 ++++++++++++++++++++++++++++++++++ test/test-class.js | 40 +-------------------- 2 files changed, 67 insertions(+), 39 deletions(-) create mode 100644 test/test-class-constructor.js diff --git a/test/test-class-constructor.js b/test/test-class-constructor.js new file mode 100644 index 0000000..65b557c --- /dev/null +++ b/test/test-class-constructor.js @@ -0,0 +1,66 @@ +/** + * Tests Class class + * + * Copyright (C) 2010 Mike Gerwitz + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * @author Mike Gerwitz + * @package core + */ + +require( './common' ); + +var assert = require( 'assert' ), + Class = require( 'class' ); + +// these two variables are declared outside of the class to ensure that they +// will still be set even if the context of the constructor is wrong +var construct_count = 0, + construct_context = null; + +// create a basic test class +var Foo = Class.extend( +{ + __construct: function() + { + construct_count++; + construct_context = this; + }, +}); + +assert.ok( + ( Foo.prototype.__construct instanceof Function ), + "Provided properties should be copied to the new class prototype" +); + +assert.equal( + construct_count, + 0, + "Constructor should not be called before class is instantiated" +); + +var obj = new Foo(); + +assert.equal( + construct_count, + 1, + "Constructor should be invoked once the class is instantiated" +); + +assert.equal( + obj, + construct_context, + "Constructor should be invoked within the context of the class instance" +); diff --git a/test/test-class.js b/test/test-class.js index 42684e6..392db67 100644 --- a/test/test-class.js +++ b/test/test-class.js @@ -32,20 +32,8 @@ assert.ok( ); -// these two variables are declared outside of the class to ensure that they -// will still be set even if the context of the constructor is wrong -var construct_count = 0, - construct_context = null; +var Foo = Class.extend(); -// create a basic test class -var Foo = Class.extend( -{ - __construct: function() - { - construct_count++; - construct_context = this; - }, -}); assert.ok( ( Foo instanceof Object ), @@ -57,29 +45,3 @@ assert.ok( "Created class contains extend method in prototype" ); -assert.ok( - ( Foo.prototype.__construct instanceof Function ), - "Provided properties should be copied to the new class prototype" -); - -assert.equal( - construct_count, - 0, - "Constructor should not be called before class is instantiated" -); - - -var obj = new Foo(); - -assert.equal( - construct_count, - 1, - "Constructor should be invoked once the class is instantiated" -); - -assert.equal( - obj, - construct_context, - "Constructor should be invoked within the context of the class instance" -); -