/*
* 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;
import org.apache.commons.beanutils.*;
import com.methodhead.persistable.*;
import com.methodhead.sitecontext.*;
import com.methodhead.property.*;
import com.methodhead.reg.*;
import com.methodhead.transfer.*;
import com.methodhead.shim.*;
import java.sql.*;
import org.apache.commons.io.*;
import java.io.*;
import java.util.*;
import org.apache.commons.io.filefilter.*;
public class TestData {
// constructors /////////////////////////////////////////////////////////////
// constants ////////////////////////////////////////////////////////////////
// classes //////////////////////////////////////////////////////////////////
// methods //////////////////////////////////////////////////////////////////
public static void createSiteContexts() {
siteContext1 = new SiteContext();
siteContext1.getDomains().add( "site1.com" );
siteContext1.saveNew();
siteContext2 = new SiteContext();
siteContext2.getDomains().add( "site2.com" );
siteContext2.getDomains().add( "www.site2.com" );
siteContext2.saveNew();
siteContext3 = new SiteContext();
siteContext3.getDomains().add( "site3.com" );
siteContext3.setString( "path", "path" );
siteContext3.saveNew();
}
public static void createProperties() {
Property.setProperty( SiteContext.getDefaultContext(), SiteExtension.PROPERTY_EXTENSIONS, "com.methodhead.transfer.MockExtension,com.methodhead.transfer.MockExtension2", "", new Boolean( true ) );
}
public static void createSiteExtensions() {
createUsers();
createProperties();
siteExtension1 = new SiteExtension();
siteExtension1.setInt( "sitecontext_id", siteContext1.getInt( "id" ) );
siteExtension1.setString( "class_name", "com.methodhead.transfer.MockExtension" );
siteExtension1.setBoolean( "enabled", true );
siteExtension1.saveNew();
}
public static void createSiteContextAikps()
throws
SQLException {
createDynaClassAndTable();
siteContextAikp1 = new SiteContextAikp( dynaClass );
siteContextAikp1.setSiteContext( siteContext1 );
siteContextAikp1.setString( "field", "siteContextAikp1" );
siteContextAikp1.saveNew();
siteContextAikp2 = new SiteContextAikp( dynaClass );
siteContextAikp2.setSiteContext( siteContext1 );
siteContextAikp2.setString( "field", "siteContextAikp2" );
siteContextAikp2.saveNew();
siteContextAikp3 = new SiteContextAikp( dynaClass );
siteContextAikp3.setSiteContext( siteContext2 );
siteContextAikp3.setString( "field", "siteContextAikp3" );
siteContextAikp3.saveNew();
}
public static void createDynaClassAndTable()
throws
SQLException {
createSiteContexts();
try {
ConnectionSingleton.runUpdate( "DROP TABLE sitecontextaikp" );
}
catch ( SQLException e ) {
}
ConnectionSingleton.runUpdate( "CREATE TABLE sitecontextaikp (id INT NOT NULL, sitecontext_id INT NOT NULL, field VARCHAR(64) NOT NULL)" );
DynaProperty[] dynaProperties =
new DynaProperty[] {
new DynaProperty( "id", Integer.class ),
new DynaProperty( "sitecontext_id", Integer.class ),
new DynaProperty( "field", String.class )
};
dynaClass =
new BasicDynaClass(
"sitecontextaikp", SiteContextAikp.class, dynaProperties );
}
public static void createRoles() {
createSiteContexts();
role1 = new Role();
role1.setSiteContext( siteContext1 );
role1.setName( DefaultTransferPolicy.ROLE_SYSADMIN );
role2 = new Role();
role2.setSiteContext( siteContext1 );
role2.setName( DefaultTransferPolicy.ROLE_SITEADMIN );
role3 = new Role();
role3.setSiteContext( siteContext2 );
role3.setName( DefaultTransferPolicy.ROLE_WEBMASTER );
role4 = new Role();
role4.setSiteContext( SiteContext.getDefaultContext() );
role4.setName( DefaultTransferPolicy.ROLE_SYSADMIN );
role5 = new Role();
role5.setSiteContext( siteContext3 );
role5.setName( DefaultTransferPolicy.ROLE_WEBMASTER );
}
public static void createUsers() {
createRoles();
user1 = new User();
user1.setString( "password", "password" );
user1.getRoles().add( role1 );
user1.getRoles().add( role4 ); // need this for a lot of tests
user1.getContact().setString( "firstname", "User1" );
user1.getContact().setString( "lastname", "BBB" );
user1.getContact().setString( "email", "test1@methodhead.com" );
user1.saveNew();
user2 = new User();
user2.setString( "password", "password" );
user2.getRoles().add( role2 );
user2.getContact().setString( "firstname", "User2" );
user2.getContact().setString( "lastname", "CCC" );
user2.getContact().setString( "email", "test2@methodhead.com" );
user2.saveNew();
user3 = new User();
user3.setString( "password", "password" );
user3.getRoles().add( role3 );
user3.getRoles().add( role5 );
user3.getContact().setString( "firstname", "User3" );
user3.getContact().setString( "lastname", "AAA" );
user3.getContact().setString( "email", "test3@methodhead.com" );
user3.saveNew();
}
public static void createPages() {
createSiteContexts();
Panel panel = null;
panel = new Panel();
panel.setName( "body" );
panel.setModuleClass( "com.methodhead.shim.MockModule" );
page1 = new Page();
page1.setSiteContext( SiteContext.getDefaultContext() );
page1.set( "title", "Page1" );
page1.set( "alttitle", "altPage1" );
page1.set( "aliasname", "page1" );
page1.setBoolean( "hidden", false );
page1.setString( "template", "template.jsp" );
page1.set( "metadescription", "metadescription" );
page1.set( "metakeywords", "metakeywords" );
page1.addPanel( panel );
page1.saveNew();
page2 = new Page();
page2.setSiteContext( SiteContext.getDefaultContext() );
page2.saveNew();
page3 = new Page();
page3.setSiteContext( SiteContext.getDefaultContext() );
page3.saveNew();
page4 = new Page();
page4.setSiteContext( SiteContext.getDefaultContext() );
page4.saveNew();
page5 = new Page();
page5.setSiteContext( SiteContext.getDefaultContext() );
page5.saveNew();
}
public static void createLinks() {
createPages();
// Link1
// Link2
// Link3
// Link4
// Link5
link1 = new Link();
link1.setTitle( "Link1" );
link1.setPageId( page1.getInt( "id" ) );
link2 = new Link();
link2.setTitle( "Link2" );
link2.setPageId( page2.getInt( "id" ) );
link3 = new Link();
link3.setTitle( "Link3" );
link3.setPageId( page3.getInt( "id" ) );
link4 = new Link();
link4.setTitle( "Link4" );
link4.setPageId( page4.getInt( "id" ) );
link5 = new Link();
link5.setTitle( "Link5" );
link5.setPageId( page5.getInt( "id" ) );
link1.add( link2 );
link2.add( link3 );
link1.add( link4 );
link1.add( link5 );
}
public static void createSiteMap() {
createLinks();
siteMap1 = new SiteMap();
siteMap1.setSiteContext( SiteContext.getDefaultContext() );
siteMap1.setRoot( link1 );
siteMap1.save();
}
public static void createPageNotFoundPage() {
createSiteMap();
pageNotFoundPage = new Page();
pageNotFoundPage.setSiteContext( SiteContext.getDefaultContext() );
pageNotFoundPage.set( "title", "Page Not Found Page" );
pageNotFoundPage.set( "aliasname", "pagenotfound" );
pageNotFoundPage.setBoolean( "hidden", false );
pageNotFoundPage.setString( "template", "template3.jsp" ); // we'll use this to distinguish this page in tests
pageNotFoundPage.saveNew();
pageNotFoundLink = new Link();
pageNotFoundLink.setTitle( "Page Not Found Page" );
pageNotFoundLink.setPageId( pageNotFoundPage.getInt( "id" ) );
link1.add( pageNotFoundLink );
siteMap1.save();
}
public static void createWebappFiles(
File webappDir )
throws
IOException {
//
// delete test files if they exist
//
FileUtils.deleteDirectory( new File( webappDir, "0" ) );
FileUtils.deleteDirectory( new File( webappDir, "1" ) );
FileUtils.deleteDirectory( new File( webappDir, "2" ) );
FileUtils.deleteDirectory( new File( webappDir, "3" ) );
FileUtils.deleteDirectory( new File( webappDir, "WEB-INF/resources" ) );
//
// copy files; we have to skip svn directories because cactus doesn't seem
// to delete them when starting tests and this hangs up the process
//
for ( Iterator iter = FileUtils.iterateFiles( new File( "support/webapp", "" ), TrueFileFilter.INSTANCE, FileFilterUtils.makeSVNAware( TrueFileFilter.INSTANCE ) ); iter.hasNext(); ) {
File file = ( File )iter.next();
FileUtils.copyFile( file, new File( webappDir, file.getPath().substring( "support/webapp/".length() ) ) );
}
}
// properties ///////////////////////////////////////////////////////////////
// attributes ///////////////////////////////////////////////////////////////
public static SiteContext siteContext1 = null;
public static SiteContext siteContext2 = null;
public static SiteContext siteContext3 = null;
public static SiteExtension siteExtension1 = null;
public static SiteContextAikp siteContextAikp1 = null;
public static SiteContextAikp siteContextAikp2 = null;
public static SiteContextAikp siteContextAikp3 = null;
public static DynaClass dynaClass = null;
public static Role role1 = null;
public static Role role2 = null;
public static Role role3 = null;
public static Role role4 = null;
public static Role role5 = null;
public static User user1 = null;
public static User user2 = null;
public static User user3 = null;
public static Page page1 = null;
public static Page page2 = null;
public static Page page3 = null;
public static Page page4 = null;
public static Page page5 = null;
public static Page pageNotFoundPage = null;
public static Link link1 = null;
public static Link link2 = null;
public static Link link3 = null;
public static Link link4 = null;
public static Link link5 = null;
public static Link pageNotFoundLink = null;
public static SiteMap siteMap1 = null;
}
|