SiteContextActionTest.java :  » Content-Management-System » TransferCM » com » methodhead » transfer » Java Open Source

Java Open Source » Content Management System » TransferCM 
TransferCM » com » methodhead » transfer » SiteContextActionTest.java
/* 
 * 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" ) );
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.