[Jsimplebrowser-svn] SF.net SVN: jsimplebrowser: [40] trunk
Status: Alpha
Brought to you by:
rdimarco
|
From: <rdi...@us...> - 2007-08-10 18:54:44
|
Revision: 40
http://jsimplebrowser.svn.sourceforge.net/jsimplebrowser/?rev=40&view=rev
Author: rdimarco
Date: 2007-08-10 11:54:41 -0700 (Fri, 10 Aug 2007)
Log Message:
-----------
Renamed RequestInfo to HttpResponse added some documentation.
Modified Paths:
--------------
trunk/core/src/main/java/com/software416/jsimplebrowser/Browser.java
trunk/core/src/main/java/com/software416/jsimplebrowser/Window.java
trunk/core/src/main/java/com/software416/jsimplebrowser/impl/BrowserImpl.java
trunk/core/src/main/java/com/software416/jsimplebrowser/impl/WindowImpl.java
trunk/core/src/test/java/com/software416/jsimplebrowser/impl/BrowserTest.java
trunk/core/src/test/java/com/software416/jsimplebrowser/util/BrowserHelperTest.java
Added Paths:
-----------
trunk/core/src/main/java/com/software416/jsimplebrowser/HttpResponse.java
trunk/core/src/main/java/com/software416/jsimplebrowser/impl/HttpResponseImpl.java
trunk/src/site/apt/index.apt
Removed Paths:
-------------
trunk/core/src/main/java/com/software416/jsimplebrowser/RequestInfo.java
trunk/core/src/main/java/com/software416/jsimplebrowser/impl/RequestInfoImpl.java
Modified: trunk/core/src/main/java/com/software416/jsimplebrowser/Browser.java
===================================================================
--- trunk/core/src/main/java/com/software416/jsimplebrowser/Browser.java 2007-08-10 16:12:54 UTC (rev 39)
+++ trunk/core/src/main/java/com/software416/jsimplebrowser/Browser.java 2007-08-10 18:54:41 UTC (rev 40)
@@ -4,6 +4,6 @@
public static final String MAIN_BROWSER_WINDOW_NAME = "main";
public void open(String url) throws BrowserException;
public void open(String url, String window) throws BrowserException;
- public void makeXmlHttpRequest(String url, String requestBody) throws BrowserException;
+ public HttpResponse makeXmlHttpRequest(String url, String requestBody) throws BrowserException;
public Window getWindow(String windowName);
}
Copied: trunk/core/src/main/java/com/software416/jsimplebrowser/HttpResponse.java (from rev 37, trunk/core/src/main/java/com/software416/jsimplebrowser/RequestInfo.java)
===================================================================
--- trunk/core/src/main/java/com/software416/jsimplebrowser/HttpResponse.java (rev 0)
+++ trunk/core/src/main/java/com/software416/jsimplebrowser/HttpResponse.java 2007-08-10 18:54:41 UTC (rev 40)
@@ -0,0 +1,10 @@
+package com.software416.jsimplebrowser;
+
+import org.apache.commons.collections.MultiMap;
+
+public interface HttpResponse {
+ public int getResponseCode();
+ public MultiMap getCookies();
+ public String getCookieValue(String cookieName);
+ public byte[] getResponseBody();
+}
Deleted: trunk/core/src/main/java/com/software416/jsimplebrowser/RequestInfo.java
===================================================================
--- trunk/core/src/main/java/com/software416/jsimplebrowser/RequestInfo.java 2007-08-10 16:12:54 UTC (rev 39)
+++ trunk/core/src/main/java/com/software416/jsimplebrowser/RequestInfo.java 2007-08-10 18:54:41 UTC (rev 40)
@@ -1,8 +0,0 @@
-package com.software416.jsimplebrowser;
-
-import org.apache.commons.collections.MultiMap;
-
-public interface RequestInfo {
- public int getResponseCode();
- public MultiMap getCookies();
-}
Modified: trunk/core/src/main/java/com/software416/jsimplebrowser/Window.java
===================================================================
--- trunk/core/src/main/java/com/software416/jsimplebrowser/Window.java 2007-08-10 16:12:54 UTC (rev 39)
+++ trunk/core/src/main/java/com/software416/jsimplebrowser/Window.java 2007-08-10 18:54:41 UTC (rev 40)
@@ -6,7 +6,7 @@
public interface Window {
public void open(String url) throws BrowserException;
public void submitForm(String formName, MultiMap parameters) throws BrowserException;
- public RequestInfo getRequestInfo();
+ public HttpResponse getRequestInfo();
public Document getDocument();
public String getSource();
public History getHistory();
Modified: trunk/core/src/main/java/com/software416/jsimplebrowser/impl/BrowserImpl.java
===================================================================
--- trunk/core/src/main/java/com/software416/jsimplebrowser/impl/BrowserImpl.java 2007-08-10 16:12:54 UTC (rev 39)
+++ trunk/core/src/main/java/com/software416/jsimplebrowser/impl/BrowserImpl.java 2007-08-10 18:54:41 UTC (rev 40)
@@ -29,8 +29,8 @@
_browserWindows.put(MAIN_BROWSER_WINDOW_NAME, new WindowImpl(this));
}
- protected synchronized RequestInfoImpl makeRequest(HttpMethod m) throws BrowserException {
- RequestInfoImpl ri = new RequestInfoImpl();
+ protected synchronized HttpResponseImpl makeRequest(HttpMethod m) throws BrowserException {
+ HttpResponseImpl ri = new HttpResponseImpl();
ri.setRequestMethod(m);
try {
@@ -46,11 +46,11 @@
return ri;
}
- public void makeXmlHttpRequest(String url, String requestBody) throws BrowserException {
+ public HttpResponseImpl makeXmlHttpRequest(String url, String requestBody) throws BrowserException {
PostMethod m = new PostMethod(url);
try {
m.setRequestEntity(new StringRequestEntity(requestBody, "text/plain",null));
- makeRequest(m);
+ return makeRequest(m);
} catch (IOException ex) {
throw new BrowserException(ex);
}
Copied: trunk/core/src/main/java/com/software416/jsimplebrowser/impl/HttpResponseImpl.java (from rev 37, trunk/core/src/main/java/com/software416/jsimplebrowser/impl/RequestInfoImpl.java)
===================================================================
--- trunk/core/src/main/java/com/software416/jsimplebrowser/impl/HttpResponseImpl.java (rev 0)
+++ trunk/core/src/main/java/com/software416/jsimplebrowser/impl/HttpResponseImpl.java 2007-08-10 18:54:41 UTC (rev 40)
@@ -0,0 +1,57 @@
+package com.software416.jsimplebrowser.impl;
+
+import java.util.Collection;
+
+import org.apache.commons.collections.MultiHashMap;
+import org.apache.commons.collections.MultiMap;
+import org.apache.commons.httpclient.Header;
+import org.apache.commons.httpclient.HttpMethod;
+
+import com.software416.jsimplebrowser.HttpResponse;
+
+public class HttpResponseImpl implements HttpResponse{
+ private HttpMethod _requestMethod;
+ private int _responseCode;
+ private byte[] _responseBody;
+
+
+ public MultiMap getCookies() {
+ MultiHashMap rv = new MultiHashMap();
+ Header[] headers = _requestMethod.getRequestHeaders("Cookie");
+ for (Header header : headers) {
+ String[] vals = header.getValue().split("\\s*;\\s*");
+ for (String cookie : vals) {
+ int idx = cookie.indexOf("=");
+ if (idx > 0 && idx < cookie.length() - 2) {
+ rv.put(cookie.substring(0, idx), cookie.substring(idx + 1));
+ }
+ }
+ }
+ return rv;
+ }
+
+ public String getCookieValue(String cookieName) {
+ Object rv = getCookies().get(cookieName);
+ return rv == null ? null : rv instanceof String ? rv.toString() : ((Collection)rv).iterator().next().toString();
+ }
+
+ public byte[] getResponseBody() {
+ return _responseBody;
+ }
+ public void setResponseBody(byte[] responseBody) {
+ _responseBody = responseBody;
+ }
+ public HttpMethod getRequestMethod() {
+ return _requestMethod;
+ }
+ public void setRequestMethod(HttpMethod requestMethod) {
+ _requestMethod = requestMethod;
+ }
+ public int getResponseCode() {
+ return _responseCode;
+ }
+ public void setResponseCode(int responseCode) {
+ _responseCode = responseCode;
+ }
+
+}
Deleted: trunk/core/src/main/java/com/software416/jsimplebrowser/impl/RequestInfoImpl.java
===================================================================
--- trunk/core/src/main/java/com/software416/jsimplebrowser/impl/RequestInfoImpl.java 2007-08-10 16:12:54 UTC (rev 39)
+++ trunk/core/src/main/java/com/software416/jsimplebrowser/impl/RequestInfoImpl.java 2007-08-10 18:54:41 UTC (rev 40)
@@ -1,57 +0,0 @@
-package com.software416.jsimplebrowser.impl;
-
-import java.util.Collection;
-
-import org.apache.commons.collections.MultiHashMap;
-import org.apache.commons.collections.MultiMap;
-import org.apache.commons.httpclient.Header;
-import org.apache.commons.httpclient.HttpMethod;
-
-import com.software416.jsimplebrowser.RequestInfo;
-
-public class RequestInfoImpl implements RequestInfo{
- private HttpMethod _requestMethod;
- private int _responseCode;
- private byte[] _responseBody;
-
-
- public MultiMap getCookies() {
- MultiHashMap rv = new MultiHashMap();
- Header[] headers = _requestMethod.getRequestHeaders("Cookie");
- for (Header header : headers) {
- String[] vals = header.getValue().split("\\s*;\\s*");
- for (String cookie : vals) {
- int idx = cookie.indexOf("=");
- if (idx > 0 && idx < cookie.length() - 2) {
- rv.put(cookie.substring(0, idx), cookie.substring(idx + 1));
- }
- }
- }
- return rv;
- }
-
- public String getCookieValue(String cookieName) {
- Object rv = getCookies().get(cookieName);
- return rv == null ? "" : rv instanceof String ? rv.toString() : ((Collection)rv).iterator().next().toString();
- }
-
- public byte[] getResponseBody() {
- return _responseBody;
- }
- public void setResponseBody(byte[] responseBody) {
- _responseBody = responseBody;
- }
- public HttpMethod getRequestMethod() {
- return _requestMethod;
- }
- public void setRequestMethod(HttpMethod requestMethod) {
- _requestMethod = requestMethod;
- }
- public int getResponseCode() {
- return _responseCode;
- }
- public void setResponseCode(int responseCode) {
- _responseCode = responseCode;
- }
-
-}
Modified: trunk/core/src/main/java/com/software416/jsimplebrowser/impl/WindowImpl.java
===================================================================
--- trunk/core/src/main/java/com/software416/jsimplebrowser/impl/WindowImpl.java 2007-08-10 16:12:54 UTC (rev 39)
+++ trunk/core/src/main/java/com/software416/jsimplebrowser/impl/WindowImpl.java 2007-08-10 18:54:41 UTC (rev 40)
@@ -22,12 +22,12 @@
import com.software416.jsimplebrowser.BrowserRuntimeException;
import com.software416.jsimplebrowser.History;
import com.software416.jsimplebrowser.HtmlParseException;
-import com.software416.jsimplebrowser.RequestInfo;
+import com.software416.jsimplebrowser.HttpResponse;
import com.software416.jsimplebrowser.Window;
import com.software416.jsimplebrowser.util.HtmlToDomConverter;
public class WindowImpl implements Window {
- private RequestInfoImpl _requestInfo;
+ private HttpResponseImpl _requestInfo;
private Document _responseDocument;
private BrowserImpl _browser;
private HtmlToDomConverter _converter = new HtmlToDomConverter();
@@ -56,7 +56,7 @@
handleResponse(_browser.makeRequest(hm));
}
- public void handleResponse(RequestInfoImpl requestInfo) throws BrowserException {
+ public void handleResponse(HttpResponseImpl requestInfo) throws BrowserException {
_requestInfo = requestInfo;
_responseDocument = null;
if (_doFollowRedirects) {
@@ -243,7 +243,7 @@
}
}
- public RequestInfo getRequestInfo() {
+ public HttpResponse getRequestInfo() {
return _requestInfo;
}
Modified: trunk/core/src/test/java/com/software416/jsimplebrowser/impl/BrowserTest.java
===================================================================
--- trunk/core/src/test/java/com/software416/jsimplebrowser/impl/BrowserTest.java 2007-08-10 16:12:54 UTC (rev 39)
+++ trunk/core/src/test/java/com/software416/jsimplebrowser/impl/BrowserTest.java 2007-08-10 18:54:41 UTC (rev 40)
@@ -27,7 +27,7 @@
@Test public void testParsingBadPages() throws BrowserException, IOException {
String baseForm = IOUtils.toString(Thread.currentThread().getContextClassLoader().getResourceAsStream("badlyFormattedPage.html"));
- RequestInfoImpl requestInfo = new RequestInfoImpl();
+ HttpResponseImpl requestInfo = new HttpResponseImpl();
requestInfo.setRequestMethod(new GetMethod("http://www.foo.com"));
requestInfo.setResponseBody(baseForm.getBytes());
WindowImpl wi = new WindowImpl(null);
@@ -37,7 +37,7 @@
@Test public void testGetMetaRefresh() throws BrowserException {
WindowImpl w = new WindowImpl(null);
w.setDoFollowRedirects(false);
- RequestInfoImpl ri = new RequestInfoImpl();
+ HttpResponseImpl ri = new HttpResponseImpl();
ri.setResponseBody("<html><body><meta http-equiv=\"Refresh\" content=\"0;URL=http://www.linkedin.com/home\"></body></html>".getBytes());
w.handleResponse(ri);
assertEquals("http://www.linkedin.com/home", w.findRefreshLink());
@@ -59,7 +59,7 @@
}
@Test public void testDefaultFormValuesMethodGeneration() throws BrowserException, IOException {
String baseForm = IOUtils.toString(Thread.currentThread().getContextClassLoader().getResourceAsStream("formTest1.html"));
- RequestInfoImpl requestInfo = new RequestInfoImpl();
+ HttpResponseImpl requestInfo = new HttpResponseImpl();
requestInfo.setRequestMethod(new GetMethod("http://www.foo.com"));
requestInfo.setResponseBody(baseForm.getBytes());
WindowImpl wi = new WindowImpl(null);
@@ -79,7 +79,7 @@
}
@Test public void testFormMethodGeneration() throws BrowserException, URIException {
String baseForm = "<html><body><form name=\"%1$s\" method=\"%2$s\" action=\"%3$s\"></form></body></html>";
- RequestInfoImpl requestInfo = new RequestInfoImpl();
+ HttpResponseImpl requestInfo = new HttpResponseImpl();
requestInfo.setRequestMethod(new GetMethod("http://www.foo.com"));
requestInfo.setResponseBody(String.format(baseForm, "login", "GET", "http://foo.com/login").getBytes());
WindowImpl wi = new WindowImpl(null);
Modified: trunk/core/src/test/java/com/software416/jsimplebrowser/util/BrowserHelperTest.java
===================================================================
--- trunk/core/src/test/java/com/software416/jsimplebrowser/util/BrowserHelperTest.java 2007-08-10 16:12:54 UTC (rev 39)
+++ trunk/core/src/test/java/com/software416/jsimplebrowser/util/BrowserHelperTest.java 2007-08-10 18:54:41 UTC (rev 40)
@@ -11,7 +11,7 @@
import com.software416.jsimplebrowser.Browser;
import com.software416.jsimplebrowser.BrowserException;
import com.software416.jsimplebrowser.impl.BrowserImpl;
-import com.software416.jsimplebrowser.impl.RequestInfoImpl;
+import com.software416.jsimplebrowser.impl.HttpResponseImpl;
import com.software416.jsimplebrowser.impl.WindowImpl;
public class BrowserHelperTest {
@@ -19,7 +19,7 @@
BrowserImpl b = new BrowserImpl();
BrowserHelper bh = new BrowserHelper(b);
WindowImpl wi = (WindowImpl)b.getWindow(Browser.MAIN_BROWSER_WINDOW_NAME);
- RequestInfoImpl ri = new RequestInfoImpl();
+ HttpResponseImpl ri = new HttpResponseImpl();
ri.setResponseBody("<html><body><a href=\"foo.html\">Sign In</a></body></html>".getBytes());
wi.handleResponse(ri);
assertEquals("foo.html", bh.getFirstLinkForTextRegex("Sign In"));
Added: trunk/src/site/apt/index.apt
===================================================================
--- trunk/src/site/apt/index.apt (rev 0)
+++ trunk/src/site/apt/index.apt 2007-08-10 18:54:41 UTC (rev 40)
@@ -0,0 +1,11 @@
+About
+
+ The JSimpleBrowser project is intended to be an all-Java headless web browser.
+
+ When trying to write automated tests of a website (especially with JavaScript modifying the DOM), it is nice to have a headless browser. In addition, it would make web scraping tools easier.
+
+Big ToDos...
+
+ * Selenium Client
+ * JavaScript Execution Environment
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|