All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jp.vmi.selenium.selenese.VariableDeclarationWithDynamicValue Maven / Gradle / Ivy

package jp.vmi.selenium.selenese;

import org.apache.commons.lang3.StringEscapeUtils;

import com.thoughtworks.selenium.webdriven.ScriptMutator;

/**
 * Variable declaration with dynamic value.
 */
public class VariableDeclarationWithDynamicValue implements ScriptMutator {

    @SuppressWarnings("javadoc")
    public static interface DynamicValue {
        String getValue();
    }

    private final String varName;
    private final DynamicValue dynamicValue;

    /**
     * Constructor.
     *
     * @param varName variable name.
     * @param dynamicValue value getter on demand.
     */
    public VariableDeclarationWithDynamicValue(String varName, DynamicValue dynamicValue) {
        this.varName = varName;
        this.dynamicValue = dynamicValue;
    }

    @Override
    public void mutate(String script, StringBuilder outputTo) {
        if (script.contains(varName)) {
            String value = dynamicValue.getValue();
            outputTo.append(varName + " = '" + StringEscapeUtils.escapeEcmaScript(value) + "';");
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy