[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. |