i agree it's not a clean solution, but that's exactly what i was planning on
doing. i'm working through the maven setup today and hope to have my env
setup, compiled, and tested soon enough.
here is what i was planning on doing in HtmlUnitTestingEngineImpl:
- Add these:
- private RefreshHandler refreshHandler = null;
- public void setRefreshHandler(RefreshHandler refreshHandler)
- Modify initWebClient()
- if (this.refreshHandler == null) {
wc.setRefreshHandler(new ImmediateRefreshHandler());
} else {
wc.setRefreshHandler(this.refreshHandler);
}
i'll also be putting the updated jar in my env, to see if this fixes the
problem.
-Jason-
On Thu, Sep 2, 2010 at 1:54 AM, Julien HENRY <henr...@yahoo.fr> wrote:
> This is not a clean solution but an easy fix is to change visibility or add
> some methods in HtmlUnitTestingEngineImpl, and cast the use:
> ((HtmlUnitTestingEngineImpl) getTestingEngine()).xxxxx (where xxx could be
> setDefaultRefreshHandler) before calling beginAt().
>
> Regards,
>
> Julien
>
>
> *De :* Jason McSwain <jasonwmcsw...@gmail.com>
> *À :* Usage problems for JWebUnit <jwebunit-users@lists.sourceforge.net>
> *Envoyé le :* Mer 1 septembre 2010, 18h 34min 35s
> *Objet :* Re: [JWebUnit-users] Re : Attempted to refresh a page using an
> ImmediateRefreshHandler which could have caused an OutOfMemoryError Please
> use WaitingRefreshHandler or ThreadedRefreshHandler instead
>
> Thank you for the quick response. I would be interested in contributing.
> i'm looking through the contribution steps
> here<http://jwebunit.sourceforge.net/building-maven.html>.
> I would assume that it would be an easy fix. Once i have an env setup, i'll
> put in a fix, and let you review it.
>
> Is there any particular way that you would prefer to have this done?
>
> -Jason-
>
>
>
> On Wed, Sep 1, 2010 at 7:26 AM, Julien HENRY <henr...@yahoo.fr> wrote:
>
>> Hi Jason,
>>
>> Currently there is no way to change the refresh handler. There is a long
>> standing issue about accessing HtmlUnit internals from JWebUnit API. At
>> first it was a choice to prevent user to call HtmlUnit specific API and
>> prevent easy switch to another testing engine but now we admit there are
>> cases where it should be possible.
>>
>> We are waiting for contribution in this area.
>>
>> Regards,
>>
>> Julien
>>
>>
>> *De :* Jason McSwain <jasonwmcsw...@gmail.com>
>>
>> *À :* jwebunit-users@lists.sourceforge.net
>> *Envoyé le :* Mer 1 septembre 2010, 1h 03min 13s
>> *Objet :* [JWebUnit-users] Attempted to refresh a page using an
>> ImmediateRefreshHandler which could have caused an OutOfMemoryError Please
>> use WaitingRefreshHandler or ThreadedRefreshHandler instead
>>
>> Hello,
>>
>> I searched both the Development and User forums, but didn't find an
>> answer. if this has already been answered please point me to the right
>> entry in the archives. Thank you in advance for any help you can provide.
>>
>> i'm new to the list, but have been using JWebUnit for the last 6 months.
>> it works great on one of the products i test, so we decided to use it on
>> another product, too. This new product has a page that refreshes every 30
>> seconds, and when i go to setup my WebTester, i get an exception. about
>> RefreshHandlers. We are using the HtmlUnit plugin, not selenium. The
>> Question i have is how do i change the Refresh handler? This error happens
>> when i call WebTester.beginAt("/"), and that method initializes the
>> WebClient inside a private method, and sets the refreshHandler to the
>> ImmediateRefreshHandler. i'd like to use another type.
>>
>>
>> Error:
>> java.lang.RuntimeException: Unexpected Exception during init.
>> at TestWebTester.init(TestWebTester.java:53)
>> at TestWebTester.<init>(TestWebTester.java:37)
>> at TestWebTester.main(TestWebTester.java:60)
>> Caused by: java.lang.RuntimeException: Refresh to
>> http://10.10.10.31:90/(30s) aborted by HtmlUnit: Attempted to refresh a page
>> using an
>> ImmediateRefreshHandler which could have caused an OutOfMemoryError Please
>> use WaitingRefreshHandler or ThreadedRefreshHandler instead.
>> at
>> com.gargoylesoftware.htmlunit.ImmediateRefreshHandler.handleRefresh(ImmediateRefreshHandler.java:58)
>> at
>> com.gargoylesoftware.htmlunit.html.HtmlPage.executeRefreshIfNeeded(HtmlPage.java:1279)
>> at
>> com.gargoylesoftware.htmlunit.html.HtmlPage.initialize(HtmlPage.java:218)
>> at
>> com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:427)
>> at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:303)
>> at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:360)
>> at
>> net.sourceforge.jwebunit.htmlunit.HtmlUnitTestingEngineImpl.gotoPage(HtmlUnitTestingEngineImpl.java:248)
>> at
>> net.sourceforge.jwebunit.htmlunit.HtmlUnitTestingEngineImpl.beginAt(HtmlUnitTestingEngineImpl.java:207)
>> at
>> net.sourceforge.jwebunit.junit.WebTester.beginAt(WebTester.java:228)
>> at TestWebTester.init(TestWebTester.java:48)
>>
>>
>> Here is an example code snippet that uncovers the issue:
>>
>>
>> ****************************************************************************************
>> public class TestWebTester extends WebTester {
>> private String baseUrl;
>>
>> public TestWebTester() {
>> super();
>> init();
>> }
>>
>> public TestWebTester(String baseUrl) {
>> super();
>> this.baseUrl = baseUrl;
>> init();
>> }
>>
>> public void init() {
>> System.out.println("TestWebTester.init()");
>> // set base url
>> try {
>>
>> setBaseUrl(this.baseUrl);
>> // first part to load
>> System.out.println(" -> set begin at = '/'");
>> beginAt("/");
>>
>> } catch (TestingEngineResponseException e) {
>> throw new RuntimeException("Unexpected
>> TestingEngineResponseException during init.", e);
>> } catch (Exception e) {
>> throw new RuntimeException("Unexpected Exception during
>> init.", e);
>> }
>> }
>>
>> public static void main(String[] args) {
>> System.out.println("----- Begin -----");
>> try {
>> TestWebTester twt = new TestWebTester("http://10.10.10.31:90/
>> ");
>> } catch (Throwable t) {
>> System.out.println("*** ERROR ***");
>> t.printStackTrace();
>> System.out.println();
>> System.out.println("*************");
>> }
>>
>> System.out.println("----- end -----");
>> }
>> }
>>
>> ****************************************************************************************
>>
>>
>>
>>
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> This SF.net Dev2Dev email is sponsored by:
>>
>> Show off your parallel programming skills.
>> Enter the Intel(R) Threading Challenge 2010.
>> http://p.sf.net/sfu/intel-thread-sfd
>> _______________________________________________
>> JWebUnit-users mailing list
>> JWebUnit-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/jwebunit-users
>>
>>
>
>
>
> ------------------------------------------------------------------------------
> This SF.net Dev2Dev email is sponsored by:
>
> Show off your parallel programming skills.
> Enter the Intel(R) Threading Challenge 2010.
> http://p.sf.net/sfu/intel-thread-sfd
> _______________________________________________
> JWebUnit-users mailing list
> JWebUnit-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jwebunit-users
>
>
------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:
Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________
JWebUnit-users mailing list
JWebUnit-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jwebunit-users