Package net.jsunit

Source Code of net.jsunit.RemoteRunSpecification

package net.jsunit;

import net.jsunit.configuration.Configuration;
import net.jsunit.model.Browser;

import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class RemoteRunSpecification {
    private URL remoteBaseURL;
    private List<Browser> remoteBrowsers = new ArrayList<Browser>();

    public RemoteRunSpecification(URL remoteBaseURL) {
        this.remoteBaseURL = remoteBaseURL;
    }

    public URL getRemoteMachineBaseURL() {
        return remoteBaseURL;
    }

    public URL buildFullURL(Configuration localConfiguration, String overrideURL) throws UnsupportedEncodingException, MalformedURLException {
        StringBuffer buffer = new StringBuffer(remoteBaseURL.toString());
        buffer.append("/runner");
        boolean hasFirstParameter = false;
        if (overrideURL != null) {
            buffer.append("?url=").append(URLEncoder.encode(overrideURL, "UTF-8"));
            hasFirstParameter = true;
        } else if (localConfiguration.getTestURL() != null) {
            buffer.append("?url=").append(URLEncoder.encode(localConfiguration.getTestURL().toString(), "UTF-8"));
            hasFirstParameter = true;
        }
        appendBrowserParametersToURL(buffer, hasFirstParameter);
        return new URL(buffer.toString());
    }

    private void appendBrowserParametersToURL(StringBuffer buffer, boolean hasFirstParameter) {
        for (Browser browser : remoteBrowsers) {
            buffer.append(hasFirstParameter ? "&" : "?");
            buffer.append("browserId=").append(browser.getId());
            hasFirstParameter = true;
        }
    }

    public void addBrowser(Browser browser) {
        remoteBrowsers.add(browser);
    }

    public List<Browser> getRemoteBrowsers() {
        return remoteBrowsers;
    }

    public boolean isForAllBrowsers() {
        return remoteBrowsers.isEmpty();
    }

    public String getDisplayString() {
        StringBuffer buffer = new StringBuffer();
        buffer.append(remoteBaseURL).append(": ");
        if (isForAllBrowsers())
            buffer.append("all browsers");
        else
            for (Iterator<Browser> it = remoteBrowsers.iterator(); it.hasNext();) {
                Browser browser = it.next();
                buffer.append(browser.getDisplayName());
                if (it.hasNext())
                    buffer.append(", ");
            }
        return buffer.toString();
    }

    public int getRemoteBrowserCount() {
        return remoteBrowsers.size();
    }
}
TOP

Related Classes of net.jsunit.RemoteRunSpecification

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.