Package org.richfaces.test

Source Code of org.richfaces.test.LocalWebClient

/**
*
*/
package org.richfaces.test;

import org.richfaces.test.staging.StagingServer;

import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.WebConnection;

/**
* Modified version of the HtmlUnit {@link WebClient}. This subclass uses {@link LocalWebConnection} by default,
* to perform requests to the local saging server {@link StagingServer} instead of real network request.
* It is also setup synchonous ajax controller {@link WebClient#setAjaxController(com.gargoylesoftware.htmlunit.AjaxController)},
* to avoid thread syncronisation problem.
* @author asmirnov
*
*/
@SuppressWarnings("serial")
public class LocalWebClient extends WebClient {
 
  private final StagingServer server;
 
  private transient WebConnection webConnection;

  /**
   * Create WebConnection instance for the given {@link StagingServer}
   * @param server test server instance.
   */
  public LocalWebClient(StagingServer server) {
    super();
    this.server = server;
    setAjaxController(new NicelyResynchronizingAjaxController());
  }

  /**
   * Create WebConnection instance for the given {@link StagingServer} and browser version.
   * @param server test server instance.
   * @param browserVersion
   */
  public LocalWebClient(StagingServer server,BrowserVersion browserVersion) {
    super(browserVersion);
    this.server = server;
    setAjaxController(new NicelyResynchronizingAjaxController());
  }

  /**
   * Overwride default webConnection.
   * @return the webConnection
   */
  @Override
  public WebConnection getWebConnection() {
    if (this.webConnection == null) {
      this.webConnection = new LocalWebConnection(server);     
    }

    return this.webConnection;
  }

  /**
   * @param webConnection the webConnection to set
   */
  @Override
  public void setWebConnection(WebConnection webConnection) {
    this.webConnection = webConnection;
  }

}
TOP

Related Classes of org.richfaces.test.LocalWebClient

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.