1 19 20 package com.sslexplorer.testcontainer; 21 22 import java.io.File ; 23 import java.net.InetAddress ; 24 import java.util.Calendar ; 25 26 import javax.servlet.http.HttpSession ; 27 28 import servletunit.struts.MockStrutsTestCase; 29 30 import com.sslexplorer.boot.Context; 31 import com.sslexplorer.core.UserDatabaseManager; 32 import com.sslexplorer.properties.DefaultPropertyProfile; 33 import com.sslexplorer.properties.Property; 34 import com.sslexplorer.properties.PropertyProfile; 35 import com.sslexplorer.properties.impl.realms.RealmKey; 36 import com.sslexplorer.security.Constants; 37 import com.sslexplorer.security.LogonController; 38 import com.sslexplorer.security.LogonControllerFactory; 39 import com.sslexplorer.security.Role; 40 import com.sslexplorer.security.SessionInfo; 41 import com.sslexplorer.security.User; 42 43 46 public abstract class AbstractMockStrutsTestCase extends MockStrutsTestCase 47 { 48 private static Context context_; 49 private static boolean finished_; 50 private final String contextDirectory_; 51 private final String configurationFile_; 52 private final String userName = "test"; 53 private User user; 54 55 60 public AbstractMockStrutsTestCase ( String contextDirectory, String configurationFile ) 61 { 62 contextDirectory_ = contextDirectory; 63 configurationFile_ = configurationFile; 64 } 65 66 private static void oneTimeSetUp () throws Exception 67 { 68 if ( context_ == null ) 69 context_ = TestContext.getTestContext (); 70 } 71 72 private static void oneTimeTearDown () 73 { 74 if ( context_ != null && finished_ ) 75 context_.shutdown ( false ); 76 } 77 78 protected void setUp () throws Exception 79 { 80 super.setUp (); 81 oneTimeSetUp (); 82 setContextDirectory ( new File ( contextDirectory_ ) ); 83 setConfigFile ( configurationFile_ ); 84 getMockRequest ().setRemoteAddr ( "127.0.0.1" ); 85 getMockRequest ().setServletPath ( "" ); 86 getMockRequest ().setContextPath ( "" ); 87 authenticate (); 88 } 89 90 private void authenticate () throws Exception 91 { 92 LogonController logonController = LogonControllerFactory.getInstance(); 93 user = UserDatabaseManager.getInstance().getDefaultUserDatabase().createAccount(userName, "password", "", "Full Name", new Role[]{}); 94 SessionInfo nextSession = SessionInfo.nextSession ( getSession (), "logonTicket", user, InetAddress.getLocalHost (), SessionInfo.ALL_CONTEXTS, "" ); 95 Property.setProperty(new RealmKey("security.administrators", user.getRealm().getResourceId()), user.getPrincipalName(), nextSession); 96 logonController.addSession ( "logonTicket", nextSession, request, response); 97 HttpSession session = getRequest ().getSession (); 98 session.setAttribute ( Constants.LOGON_TICKET, "logonTicket" ); 99 session.setAttribute ( Constants.SELECTED_PROFILE, getPropertyProfile () ); 100 } 101 102 private static PropertyProfile getPropertyProfile () 103 { 104 Calendar instance = Calendar.getInstance (); 105 return new DefaultPropertyProfile (-1, -1, "", "", "", instance, instance ); 106 } 107 108 protected void tearDown () throws Exception 109 { 110 super.tearDown (); 111 oneTimeTearDown (); 112 LogonControllerFactory.getInstance().logoff ( "logonTicket" ); 113 clearRequestParameters (); 114 UserDatabaseManager.getInstance().getDefaultUserDatabase().deleteAccount(user); 115 for (File file : TestContext.DB_DIR.listFiles()) { 116 String name = file.getName(); 117 if (name.indexOf("explorer_configuration") != -1 || name.indexOf("upgrade") != -1 || name.indexOf("versions") != -1) { 118 file.delete(); 119 } 120 } 121 } 122 123 127 public void verifyTilesForward ( String name ) 128 { 129 assertEquals ( name, getActualForward () ); 130 } 131 132 135 public void testZFinished () 136 { 137 finished_ = true; 138 } 139 } | Popular Tags |