/*
* Copyright (C) 2006 Methodhead Software LLC. All rights reserved.
*
* This file is part of TransferCM.
*
* TransferCM 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 2 of the License, or (at your option) any later
* version.
*
* TransferCM 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
* TransferCM; if not, write to the Free Software Foundation, Inc., 51 Franklin St,
* Fifth Floor, Boston, MA 02110-1301 USA
*/
package com.methodhead.transfer;
import java.util.*;
import java.sql.*;
import java.io.*;
import junit.framework.*;
import org.apache.log4j.*;
import com.methodhead.persistable.*;
import com.methodhead.test.*;
import servletunit.struts.*;
import org.apache.struts.action.*;
import org.apache.cactus.*;
import com.methodhead.sitecontext.*;
import com.methodhead.reg.*;
import com.methodhead.aikp.*;
import com.methodhead.auth.*;
import com.methodhead.property.*;
import com.methodhead.*;
public class SiteContextActionTest extends CactusStrutsTestCase {
SiteContext siteContext = null;
SiteExtension siteExtension = null;
List list = null;
Extension[] extensions = null;
DynaActionForm form = null;
User user = null;
static {
TestUtils.initLogger();
}
public SiteContextActionTest( String name ) {
super( name );
}
public void setUp() {
try {
super.setUp();
ConnectionSingleton.runBatchUpdate( new FileReader( "webapp/WEB-INF/db/transfer-reset.sql" ) );
}
catch ( Exception e ) {
fail( e.getMessage() );
}
}
public void tearDown()
throws
Exception {
super.tearDown();
}
/*
public void testDoDelete() {
TestData.createUsers();
//
// delete the site context
//
setRequestPathInfo( "/siteContext.do" );
addRequestParameter( "action", "delete" );
addRequestParameter( "id", "1" );
actionPerform();
verifyForwardPath( "/siteContext.do?action=list" );
//
// user/site context association should have been deleted
//
user = new User();
user.load( new IntKey( "1" ) );
assertEquals( 0, user.getRoles().size() );
}
*/
public void testDoInitExtension() {
TestData.createSiteExtensions();
AuthUtil.setUser( request, TestData.user1 );
MockExtension.setInit( false );
MockExtension2.setInit( false );
//
// init MockExtension2
//
setRequestPathInfo( "/initExtension" );
addRequestParameter( "id", "1" );
addRequestParameter( "classname", "com.methodhead.transfer.MockExtension2" );
actionPerform();
verifyForwardPath( "/siteContext.do?action=edit&id=1" );
siteExtension = new SiteExtension();
list = siteExtension.loadAllForSiteContext( TestData.siteContext1 );
//
// should have two modules enabled
//
assertEquals( 2, list.size() );
siteExtension = ( SiteExtension )list.get( 0 );
assertEquals( "com.methodhead.transfer.MockExtension", siteExtension.getString( "class_name" ) );
assertEquals( true, siteExtension.getBoolean( "enabled" ) );
siteExtension = ( SiteExtension )list.get( 1 );
assertEquals( "com.methodhead.transfer.MockExtension2", siteExtension.getString( "class_name" ) );
assertEquals( true, siteExtension.getBoolean( "enabled" ) );
//
// mockmodule should have been inited
//
assertEquals( false, MockExtension.getInit() );
assertEquals( true, MockExtension2.getInit() );
}
public void testDoDestroyExtension() {
TestData.createSiteExtensions();
AuthUtil.setUser( request, TestData.user1 );
MockExtension.setDestroy( 0 );
MockExtension2.setDestroy( 0 );
//
// destroy MockExtension
//
setRequestPathInfo( "/destroyExtension" );
addRequestParameter( "id", "1" );
addRequestParameter( "classname", "com.methodhead.transfer.MockExtension2" );
actionPerform();
verifyForward( "confirm" );
}
public void testDoDestroyExtensionConfirm() {
TestData.createSiteExtensions();
AuthUtil.setUser( request, TestData.user1 );
MockExtension.setDestroy( 0 );
MockExtension2.setDestroy( 0 );
//
// destroy MockExtension
//
setRequestPathInfo( "/destroyExtension" );
addRequestParameter( "id", "1" );
addRequestParameter( "classname", "com.methodhead.transfer.MockExtension" );
addRequestParameter( "confirm", "Confirm" );
actionPerform();
verifyForwardPath( "/siteContext.do?action=edit&id=1" );
siteExtension = new SiteExtension();
list = siteExtension.loadAllForSiteContext( TestData.siteContext1 );
//
// should have zero modules enabled
//
assertEquals( 0, list.size() );
//
// MockModule2 should have been destroyed for site context 1
//
assertEquals( 1, MockExtension.getDestroy() );
assertEquals( 0, MockExtension2.getDestroy() );
}
public void testDoDisableExtension() {
TestData.createSiteExtensions();
AuthUtil.setUser( request, TestData.user1 );
//
// disable MockExtension
//
setRequestPathInfo( "/disableExtension" );
addRequestParameter( "id", "1" );
addRequestParameter( "classname", "com.methodhead.transfer.MockExtension" );
actionPerform();
verifyForwardPath( "/siteContext.do?action=edit&id=1" );
siteExtension = new SiteExtension();
list = siteExtension.loadAllForSiteContext( TestData.siteContext1 );
//
// should have MockExtension disabled
//
assertEquals( 1, list.size() );
siteExtension = ( SiteExtension )list.get( 0 );
assertEquals( "com.methodhead.transfer.MockExtension", siteExtension.getString( "class_name" ) );
assertEquals( false, siteExtension.getBoolean( "enabled" ) );
}
public void testDoEnableExtension() {
TestData.createSiteExtensions();
AuthUtil.setUser( request, TestData.user1 );
//
// disable MockExtension
//
siteExtension = new SiteExtension();
siteExtension.load( TestData.siteContext1, "com.methodhead.transfer.MockExtension" );
siteExtension.setBoolean( "enabled", false );
siteExtension.save();
//
// enable MockExtension
//
setRequestPathInfo( "/enableExtension" );
addRequestParameter( "id", "1" );
addRequestParameter( "classname", "com.methodhead.transfer.MockExtension" );
actionPerform();
verifyForwardPath( "/siteContext.do?action=edit&id=1" );
siteExtension = new SiteExtension();
list = siteExtension.loadAllForSiteContext( TestData.siteContext1 );
//
// should have MockExtension disabled
//
assertEquals( 1, list.size() );
siteExtension = ( SiteExtension )list.get( 0 );
assertEquals( "com.methodhead.transfer.MockExtension", siteExtension.getString( "class_name" ) );
assertEquals( true, siteExtension.getBoolean( "enabled" ) );
}
}
|