package net.javacoding.jspider.functional.specific.general;
import junit.framework.TestCase;
import net.javacoding.jspider.JSpider;
import net.javacoding.jspider.functional.TestingConstants;
import net.javacoding.jspider.api.event.EventSink;
import net.javacoding.jspider.api.event.JSpiderEvent;
import net.javacoding.jspider.api.event.resource.ResourceFetchedEvent;
import net.javacoding.jspider.core.util.config.ConfigurationFactory;
import net.javacoding.jspider.core.util.config.JSpiderConfiguration;
import net.javacoding.jspider.mockobjects.OverridingJSpiderConfiguration;
import net.javacoding.jspider.mockobjects.OverridingPropertySet;
import net.javacoding.jspider.mockobjects.plugin.JUnitEventSink;
import java.io.*;
import java.net.URL;
/**
* $Id: CookieTest.java,v 1.13 2003/04/10 16:19:22 vanrogu Exp $
*/
public class CookieTest extends TestCase implements EventSink {
public final String TEST_URL = "http://" + TestingConstants.HOST + "/testcases/specific/general/testCookies1.php";
public final String TEST_URL2 = "http://" + TestingConstants.HOST + "/testcases/specific/general/testCookies2.php";
public final String TEST_URL_MULTIPLE = "http://" + TestingConstants.HOST + "/testcases/specific/general/testMultipleCookies1.php";
public final String TEST_URL_MULTIPLE2 = "http://" + TestingConstants.HOST + "/testcases/specific/general/testMultipleCookies2.php";
protected JUnitEventSink sink;
protected JSpiderConfiguration config;
protected JSpiderConfiguration config2;
protected String cookieString;
/**
* Public constructor giving a name to the test.
*/
public CookieTest() {
super("CookieTest");
}
/**
* JUnit's overridden setUp method
* @throws java.lang.Exception in case something fails during setup
*/
protected void setUp() throws Exception {
System.err.println("setUp");
cookieString = null;
config = ConfigurationFactory.getConfiguration(ConfigurationFactory.CONFIG_UNITTEST);
config2 = new OverridingJSpiderConfiguration(config);
((OverridingPropertySet) config2.getBaseSiteConfiguration()).setValue("site.cookies.use", new Boolean(false));
ConfigurationFactory.setConfiguration(config);
sink = JUnitEventSink.getInstance();
sink.setOtherSink(this);
}
/**
* JUnit's overridden tearDown method
* @throws java.lang.Exception in case something fails during tearDown
*/
protected void tearDown() throws Exception {
System.err.println("tearDown");
ConfigurationFactory.cleanConfiguration();
sink.reset();
}
public void testWithCookies() throws Exception {
URL url = new URL(TEST_URL);
ConfigurationFactory.setConfiguration(config);
JSpider jspider = new JSpider(url);
jspider.start();
assertEquals("testValue", cookieString);
}
public void testWithoutCookies() throws Exception {
URL url = new URL(TEST_URL);
ConfigurationFactory.setConfiguration(config2);
JSpider jspider = new JSpider(url);
jspider.start();
assertEquals("noValueGiven", cookieString);
}
public void testMultipleCookies() throws Exception {
URL url = new URL(TEST_URL_MULTIPLE);
ConfigurationFactory.setConfiguration(config);
JSpider jspider = new JSpider(url);
jspider.start();
assertEquals("testValue1testValue2testValue3testValue4testValue5", cookieString);
}
public void notify(JSpiderEvent event) {
if (event instanceof ResourceFetchedEvent) {
ResourceFetchedEvent e = (ResourceFetchedEvent) event;
if (e.getResource().getURL().toString().equalsIgnoreCase(TEST_URL2) ||
e.getResource().getURL().toString().equalsIgnoreCase(TEST_URL_MULTIPLE2) ) {
System.out.println("URL = " + e.getResource().getURL() + ", saving cookie!");
cookieString = "noValueGiven";
InputStream is = e.getResource().getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
try {
String line = br.readLine();
while (line != null) {
cookieString = line;
line = br.readLine();
}
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
public void initialize() {
}
public void shutdown() {
}
}
|