package org.limewire.http;
import junit.framework.TestCase;
import org.apache.http.Header;
import org.apache.http.HttpStatus;
import org.apache.http.HttpVersion;
import org.apache.http.message.BasicHttpResponse;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.HTTP;
import org.limewire.http.protocol.LimeResponseConnControl;
public class LimeResponseConnControlTest extends TestCase {
public void testProcessHttpResponseHttpContext() throws Exception {
LimeResponseConnControl control = new LimeResponseConnControl();
BasicHttpResponse response = new BasicHttpResponse(
HttpVersion.HTTP_1_1, HttpStatus.SC_OK, "");
control.process(response, new BasicHttpContext(null));
assertNull(response.getFirstHeader(HTTP.CONN_DIRECTIVE));
response.setStatusCode(HttpStatus.SC_BAD_REQUEST);
control.process(response, new BasicHttpContext(null));
Header header = response.getFirstHeader(HTTP.CONN_DIRECTIVE);
assertNotNull(header);
assertEquals("Close", header.getValue());
// the connection control should not override an explicitly request
// keep-alive
response.setStatusCode(HttpStatus.SC_BAD_REQUEST);
response.setHeader(HTTP.CONN_DIRECTIVE, "Keep-Alive");
control.process(response, new BasicHttpContext(null));
header = response.getFirstHeader(HTTP.CONN_DIRECTIVE);
assertNotNull(header);
assertEquals("Keep-Alive", header.getValue());
}
}