1 22 package org.jboss.test.cluster.test; 23 24 import java.io.IOException ; 25 import java.net.HttpURLConnection ; 26 27 import org.apache.commons.httpclient.Cookie; 28 import org.apache.commons.httpclient.Header; 29 import org.apache.commons.httpclient.HttpClient; 30 import org.apache.commons.httpclient.HttpState; 31 import org.apache.commons.httpclient.methods.GetMethod; 32 import org.jboss.test.JBossClusteredTestCase; 33 34 40 public abstract class BaseTest 41 extends JBossClusteredTestCase 42 { 43 47 public static final long DEFAULT_SLEEP = 300; 48 49 protected String [] servers_ = null; 50 protected String baseURL0_; 51 protected String baseURL1_; 52 53 public BaseTest(String name) 54 { 55 super(name); 56 } 57 58 protected void setUp() throws Exception 59 { 60 super.setUp(); 61 62 servers_ = super.getServers(); 63 assertEquals("Server size " , servers_.length, 2); 64 65 String [] httpURLs = super.getHttpURLs(); 66 assertEquals("Url size " , httpURLs.length, 2); 67 baseURL0_ = httpURLs[0]; 68 baseURL1_ = baseURL0_; 69 if( servers_.length > 1 ) 70 { 71 baseURL1_ = httpURLs[1]; 72 } 73 } 74 75 80 protected void sleepThread(long msecs) 81 { 82 try { 83 Thread.sleep(msecs); 84 } catch (InterruptedException e) { 85 e.printStackTrace(); 86 } 87 } 88 89 90 100 protected String makeGet(HttpClient client, String url) 101 { 102 getLog().debug("makeGet(): trying to get from url " +url); 103 104 GetMethod method = new GetMethod(url); 105 int responseCode = 0; 106 try 107 { 108 responseCode = client.executeMethod(method); 109 } catch (IOException e) 110 { 111 e.printStackTrace(); 112 fail("HttpClient executeMethod fails." +e.toString()); 113 } 114 assertTrue("Get OK with url: " +url + " responseCode: " +responseCode 115 , responseCode == HttpURLConnection.HTTP_OK); 116 117 byte[] responseBody = method.getResponseBody(); 119 120 123 return new String (responseBody); 126 } 127 128 138 protected String makeGetFailed(HttpClient client, String url) 139 { 140 getLog().debug("makeGetFailed(): trying to get from url " +url); 141 142 GetMethod method = new GetMethod(url); 143 int responseCode = 0; 144 try 145 { 146 responseCode = client.executeMethod(method); 147 } catch (IOException e) 148 { 149 e.printStackTrace(); 150 } 151 assertTrue("Should not be OK code with url: " +url + " responseCode: " +responseCode 152 , responseCode != HttpURLConnection.HTTP_OK); 153 154 byte[] responseBody = method.getResponseBody(); 156 157 160 return new String (responseBody); 163 } 164 165 166 176 protected String makeGetWithState(HttpClient client, String url) 177 { 178 getLog().debug("makeGetWithState(): trying to get from url " +url); 179 GetMethod method = new GetMethod(url); 180 int responseCode = 0; 181 try 182 { 183 HttpState state = client.getState(); 184 responseCode = client.executeMethod(method.getHostConfiguration(), 185 method, state); 186 } catch (IOException e) 187 { 188 e.printStackTrace(); 189 fail("HttpClient executeMethod fails." +e.toString()); 190 } 191 assertTrue("Get OK", responseCode == HttpURLConnection.HTTP_OK); 192 193 byte[] responseBody = method.getResponseBody(); 195 199 Header hdr = method.getResponseHeader("X-SawTestHttpAttribute"); 200 Boolean sawAttr = hdr != null ? Boolean.valueOf(hdr.getValue()) : Boolean.TRUE; 201 String attr = null; 202 if( sawAttr.booleanValue() ) 203 attr = new String (responseBody); 204 207 return attr; 210 } 211 212 protected void setCookieDomainToThisServer(HttpClient client, String server) 213 { 214 Cookie sessionID = getSessionCookie(client, server); 216 sessionID.setDomain(server); 218 client.getState().addCookie(sessionID); 219 } 220 221 protected String getSessionID(HttpClient client, String server) 222 { 223 Cookie sessionID = getSessionCookie(client, server); 224 return sessionID.getValue(); 225 } 226 227 protected Cookie getSessionCookie(HttpClient client, String server) 228 { 229 HttpState state = client.getState(); 231 Cookie[] cookies = state.getCookies(); 233 Cookie sessionID = null; 234 for(int c = 0; c < cookies.length; c ++) 235 { 236 Cookie k = cookies[c]; 237 if( k.getName().equalsIgnoreCase("JSESSIONID") ) 238 sessionID = k; 239 } 240 if(sessionID == null) 241 { 242 fail("setCookieDomainToThisServer(): fail to find session id. Server name: " +server); 243 } 244 log.info("Saw JSESSIONID="+sessionID); 245 return sessionID; 246 } 247 248 protected String stripJvmRoute(String id) 249 { 250 int index = id.indexOf("."); 251 if (index > 0) 252 { 253 return id.substring(0, index); 254 } 255 else 256 { 257 return id; 258 } 259 } 260 } 261 | Popular Tags |