package com.pugh.sockso.web.action;
import com.pugh.sockso.Constants;
import com.pugh.sockso.Properties;
import com.pugh.sockso.StringProperties;
import com.pugh.sockso.tests.TestUtils;
import com.pugh.sockso.web.BadRequestException;
import com.pugh.sockso.web.Request;
import com.pugh.sockso.tests.TestResponse;
import com.pugh.sockso.tests.SocksoTestCase;
import static org.easymock.EasyMock.*;
public class ErrorerTest extends SocksoTestCase {
public void testConstructor() {
final Errorer err = new Errorer( null, false );
assertNotNull( err );
}
public void testShowBurp() throws Exception {
showBurp( 400, "", "no referer" );
showBurp( 401, "localhost", "local error" );
showBurp( 404, "www.mydomain.com", "remote error" );
}
private void showBurp( final int statusCode, final String referer, final String expectContains ) throws Exception {
final TestResponse res = new TestResponse();
final BadRequestException e = new BadRequestException( "something", statusCode );
final Request req = createMock( Request.class );
expect( req.getHeader("Host") ).andReturn( "localhost" );
expect( req.getHeader("Referer") ).andReturn( referer );
replay( req );
final Errorer err = new Errorer( e, false );
err.setRequest( req );
err.setResponse( res );
err.showBurp();
verify( req );
final String output = res.getOutput();
assertTrue( output.contains("error: " +expectContains) );
}
}