diff --git a/test/test-member_builder-method-hiding.js b/test/test-member_builder-method-hiding.js deleted file mode 100644 index e96448f..0000000 --- a/test/test-member_builder-method-hiding.js +++ /dev/null @@ -1,135 +0,0 @@ -/** - * Tests hidden methods - * - * Copyright (C) 2010 Mike Gerwitz - * - * This file is part of ease.js. - * - * ease.js is free software: you can redistribute it and/or modify it under the - * terms of the GNU Lesser 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 Lesser General Public License - * for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - * - * @author Mike Gerwitz - * @package test - */ - -var common = require( './common' ), - assert = require( 'assert' ), - warn = common.require( 'warn' ) - - // XXX: get rid of this disgusting mess; we're mid-refactor and all these - // dependencies should not be necessary for testing - ClassBuilder = common.require( '/ClassBuilder' ), - MethodWrapperFactory = common.require( '/MethodWrapperFactory' ), - wrappers = common.require( '/MethodWrappers' ).standard, - - builder = ClassBuilder( - common.require( '/MemberBuilder' )( - MethodWrapperFactory( wrappers.wrapNew ), - MethodWrapperFactory( wrappers.wrapOverride ) - ), - common.require( '/VisibilityObjectFactoryFactory' ).fromEnvironment() - ) -; - -// XXX: Disabled until we begin re-development of this feature -return; - - -/** - * Restores warning handler to the default - */ -function restoreWarningHandler() -{ - warn.setHandler( warn.handlers.log ); -} - - -/** - * If a non-virtual method is implicitly hidden (redefined without the 'new' - * keyword), a warning should be provided. This will ensure that, should a - * parent introduce a method that is already defined by a subtype, the - * developer of the subtype is made aware of the issue. - */ -( function testThrowsWarningWhenHidingNonVirtualSuperMethod() -{ - var thrown = false; - - // mock the warning handler to ensure a warning is thrown - warn.setHandler( function( e ) - { - thrown = true; - - assert.ok( - ( e.message.search( 'foo' ) !== -1 ), - "Non-virtual method hiding warning should contain method name" - ); - } ); - - var Foo = builder.build( - { - // non-virtual method - 'public foo': function() {}, - } ); - - // implicitly hide the non-virtual method - builder.build( Foo, - { - 'public foo': function() {}, - } ); - - assert.equal( thrown, true, - "No warning for implicit non-virtual hiding was thrown" - ); -} )(); - - -/** - * Same concept as above. The API of the supertype could just as easily be - * changed to include a virtual method that has already been implemented by the - * subtype. The default behavior is to hide the method of the supertype. - */ -( function testThrowsWarningWhenHidingVirtualSuperMethod() -{ - var thrown = false; - - // mock the warning handler to ensure a warning is thrown - warn.setHandler( function( e ) - { - thrown = true; - - assert.ok( - ( e.message.search( 'foo' ) !== -1 ), - "Virtual method hiding warning should contain method name" - ); - } ); - - var Foo = builder.build( - { - 'virtual public foo': function() {}, - } ); - - // implicitly hide the virtual method - builder.build( Foo, - { - 'public foo': function() {}, - } ); - - assert.equal( thrown, true, - "No warning for implicit virtual hiding was thrown" - ); -} )(); - - -// important, otherwise tests in combined file may fail -restoreWarningHandler(); -