package net.sf.sahi.client;
import net.sf.sahi.request.HttpRequest;
import net.sf.sahi.response.HttpModifiedResponse;
import net.sf.sahi.response.HttpResponse;
import net.sf.sahi.response.SimpleHttpResponse;
import net.sf.sahi.response.StreamingHttpResponse;
import net.sf.sahi.stream.filter.ChunkedFilter;
import org.junit.Ignore;
import org.junit.Test;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public class MockURLTest extends SahiTestCase {
@Override
public void setBrowser() {
setBrowser("ie");
}
@Test
@Ignore("This may not be a UnitTest. Seems more like it should run in an Integrationtest phase")
public void testMock() {
browser.navigateTo("http://sahi.co.in/demo/index.htm");
assertTrue(browser.link("Link Test").exists());
browser.addURLMock(".*sahi[.]co[.]in.*");
browser.navigateTo("http://sahi.co.in/demo/index.htm", true);
assertFalse(browser.link("Link Test").exists());
browser.removeURLMock(".*sahi[.]co[.]in.*");
browser.navigateTo("http://sahi.co.in/demo/index.htm", true);
assertTrue(browser.link("Link Test").exists());
browser.addURLMock(".*sahi[.]co[.]in.*", "net.sf.sahi.client.MockURLTest_mockMe");
browser.navigateTo("http://sahi.co.in/demo/index.htm", true);
assertTrue(browser.div("Hi there").exists());
}
public HttpResponse mockMe(HttpRequest request) {
HttpResponse response = new SimpleHttpResponse("<div>Hi there</div>");
StreamingHttpResponse response2 = new HttpModifiedResponse(response, request.isSSL(), request.fileExtension());
response2.addFilter(new ChunkedFilter());
return response2;
}
}