com.gargoylesoftware.htmlunit.util
Class DebuggingWebConnection

java.lang.Object
  extended by com.gargoylesoftware.htmlunit.util.WebConnectionWrapper
      extended by com.gargoylesoftware.htmlunit.util.DebuggingWebConnection
All Implemented Interfaces:
WebConnection

public class DebuggingWebConnection
extends WebConnectionWrapper

Wrapper around a "real" WebConnection that will use the wrapped web connection to do the real job and save all received responses in the temp directory with an overview page.

This may be useful at conception time to understand what is "browsed".

Example:

 final WebClient client = new WebClient();
 final WebConnection connection = new DebuggingWebConnection(client.getWebConnection(), "myTest");
 client.setWebConnection(connection);
 
In this example an overview page will be generated under the name myTest/index.html in the temp directory and all received responses will be saved int the myTest folder.

This class is only intended as an help during the conception.

Version:
$Revision: 5940 $
Author:
Marc Guillemot, Ahmed Ashour

Constructor Summary
DebuggingWebConnection(WebConnection webConnection, String dirName)
          Wraps a web connection to have a report generated of the received responses.
 
Method Summary
 void addMark(String mark)
          Adds a mark that will be visible in the HTML result page generated by this class.
 WebResponse getResponse(WebRequest request)
          Calls the wrapped webconnection and save the received response.
protected  boolean isJavaScript(WebResponse response)
          Indicates if the response contains JavaScript content.
 boolean isUncompressJavaScript()
          Indicates if it should try to format responses recognized as JavaScript.
protected  void saveResponse(WebResponse response, WebRequest request)
          Saves the response content in the temp dir and adds it to the summary page.
 void setUncompressJavaScript(boolean decompress)
          Indicates that responses recognized as JavaScript should be formatted or not.
protected  WebResponse uncompressJavaScript(WebResponse response)
          Tries to uncompress the JavaScript code in the provided response.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DebuggingWebConnection

public DebuggingWebConnection(WebConnection webConnection,
                              String dirName)
                       throws IOException
Wraps a web connection to have a report generated of the received responses.

Parameters:
webConnection - the webConnection that do the real work
dirName - the name of the directory to create in the tmp folder to save received responses. If this folder already exists, it will be deleted first.
Throws:
IOException - in case of problems writing the files
Method Detail

getResponse

public WebResponse getResponse(WebRequest request)
                        throws IOException
Calls the wrapped webconnection and save the received response. Submits a request and retrieves a response. The default behavior of this method is to return getResponse() on the wrapped connection object.

Specified by:
getResponse in interface WebConnection
Overrides:
getResponse in class WebConnectionWrapper
Parameters:
request - the request
Returns:
the response to the request defined by the specified request
Throws:
IOException - if an IO error occurs

uncompressJavaScript

protected WebResponse uncompressJavaScript(WebResponse response)
Tries to uncompress the JavaScript code in the provided response.

Parameters:
response - the response to uncompress
Returns:
a new response with uncompressed JavaScript code or the original response in case of failure

addMark

public void addMark(String mark)
             throws IOException
Adds a mark that will be visible in the HTML result page generated by this class.

Parameters:
mark - the text
Throws:
IOException - if a problem occurs writing the file

saveResponse

protected void saveResponse(WebResponse response,
                            WebRequest request)
                     throws IOException
Saves the response content in the temp dir and adds it to the summary page.

Parameters:
response - the response to save
request - the request used to get the response
Throws:
IOException - if a problem occurs writing the file

isJavaScript

protected boolean isJavaScript(WebResponse response)
Indicates if the response contains JavaScript content.

Parameters:
response - the response to inspect
Returns:
false if it is not recognized as JavaScript

isUncompressJavaScript

public boolean isUncompressJavaScript()
Indicates if it should try to format responses recognized as JavaScript.

Returns:
default is false to deliver the original content

setUncompressJavaScript

public void setUncompressJavaScript(boolean decompress)
Indicates that responses recognized as JavaScript should be formatted or not. Formatting is interesting for debugging when the original script is compressed on a single line. It allows to better follow with a debugger and to obtain more interesting error messages.

Parameters:
decompress - true if JavaScript responses should be uncompressed


Copyright © 2002-2010 Gargoyle Software Inc.. All Rights Reserved.