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

util.validator.ResponsiveUIValidator Maven / Gradle / Ivy

package util.validator;

import net.itarray.automotion.internal.DrawingConfiguration;
import net.itarray.automotion.internal.DriverFacade;
import net.itarray.automotion.internal.ResolutionUnknown;
import net.itarray.automotion.internal.Scenario;
import net.itarray.automotion.internal.ZoomUnknown;
import net.itarray.automotion.validation.UISnapshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;

import java.awt.*;

/**
 * @deprecated As of release 2.0, replaced by {@link net.itarray.automotion.validation.ResponsiveUIValidator}
 */
@Deprecated
public class ResponsiveUIValidator {

    private final net.itarray.automotion.validation.ResponsiveUIValidator responsiveUIValidator;

    public ResponsiveUIValidator(WebDriver driver) {
        this(new DriverFacade(driver));
    }

    public ResponsiveUIValidator(DriverFacade driver) {
        this(new net.itarray.automotion.validation.ResponsiveUIValidator(driver));
    }

    protected ResponsiveUIValidator(net.itarray.automotion.validation.ResponsiveUIValidator responsiveUIValidator) {
        this.responsiveUIValidator = responsiveUIValidator;
        responsiveUIValidator.dontDrawMap();
    }

    public ResponsiveUIValidator withTolerance(int tolerance) {
        responsiveUIValidator.withTolerance(tolerance);
        return this;
    }

    public boolean isWithReport() {
        return responsiveUIValidator.isWithReport();
    }

    public void addJsonFile(String jsonFileName) {
        responsiveUIValidator.addJsonFile(jsonFileName);
    }

    /**
     * Set color for main element. This color will be used for highlighting element in results
     *
     * @param color
     */
    public void setColorForRootElement(Color color) {
        responsiveUIValidator.setColorForRootElement(color);
    }

    /**
     * Set color for compared elements. This color will be used for highlighting elements in results
     *
     * @param color
     */
    public void setColorForHighlightedElements(Color color) {
        responsiveUIValidator.setColorForHighlightedElements(color);
    }

    /**
     * Set color for grid lines. This color will be used for the lines of alignment grid in results
     *
     * @param color
     */
    public void setLinesColor(Color color) {
        responsiveUIValidator.setLinesColor(color);
    }

    public DrawingConfiguration getDrawingConfiguration() {
        return responsiveUIValidator.getDrawingConfiguration();
    }

    /**
     * Set top bar mobile offset. Applicable only for native mobile testing
     *
     * @param state
     */
    public void setTopBarMobileOffset(boolean state) {
        responsiveUIValidator.setTopBarMobileOffset(state);
    }

    /**
     * Set top bar mobile offset. Applicable only for native mobile testing
     *
     * @param state
     * @param offset
     */
    public void setTopBarMobileOffset(boolean state, double offset) {
        responsiveUIValidator.setTopBarMobileOffset(state, offset);
    }

    /**
     * Set retina scale factor. Current usage only for native mobile
     *
     * @param factor
     */
    public void setRetinaScaleFactor(double factor) {
        responsiveUIValidator.setRetinaScaleFactor(factor);
    }

    /**
     * Set header cut height. It is needed for the taking of fullscreen screenshot on the pages with the fixed header
     *
     * @param px
     */
    public void setHeaderCutPx(int px) {
        System.setProperty("headerCutPx", String.valueOf(px));
    }

    /**
     * Set footer cut height. It is needed for the taking of fullscreen screenshot on the pages with the fixed header
     *
     * @param px
     */
    public void setFooterCutPx(int px) {
        System.setProperty("footerCutPx", String.valueOf(px));
    }

    public boolean isMobileTopBarOffset() {
        return responsiveUIValidator.isMobileTopBarOffsetState();
    }

    /**
     * Method that defines start of new validation. Needs to be called each time before calling findElement(), findElements()
     *
     * @return ResponsiveUIValidator
     */
    public ResponsiveUIValidator init() {
        return init("Default");
    }

    /**
     * Method that defines start of new validation with specified name of scenario. Needs to be called each time before calling findElement(), findElements()
     *
     * @param scenarioName
     * @return ResponsiveUIValidator
     */
    public ResponsiveUIValidator init(String scenarioName) {
        return new Scenario(new UISnapshot(responsiveUIValidator, scenarioName, new ResolutionUnknown(), new ZoomUnknown()));
    }

    /**
     * Main method to specify which element we want to validate (can be called only findElement() OR findElements() for single validation)
     *
     * @param element
     * @param readableNameOfElement
     * @return UIValidator
     */
    public UIValidator findElement(WebElement element, String readableNameOfElement) {
        return init().findElement(element, readableNameOfElement);
    }

    /**
     * Main method to specify the list of elements that we want to validate (can be called only findElement() OR findElements() for single validation)
     *
     * @param elements
     * @return ResponsiveUIChunkValidator
     */
    public ResponsiveUIChunkValidator findElements(java.util.List elements) {
        return init().findElements(elements);
    }

    /**
     * Change units to Pixels or % (Units.PX, Units.PERCENT)
     *
     * @param units
     * @return UIValidator
     */
    public ResponsiveUIValidator changeMetricsUnitsTo(Units units) {
        responsiveUIValidator.changeMetricsUnitsTo(units.asNewUnits());
        return this;
    }

    /**
     * Methods needs to be called to collect all the results in JSON file and screenshots
     *
     * @return ResponsiveUIValidator
     */
    public ResponsiveUIValidator drawMap() {
        responsiveUIValidator.drawMap();
        return this;
    }

    /**
     * Call method to summarize and validate the results (can be called with drawMap(). In this case result will be only True or False)
     *
     * @return boolean
     */
    public boolean validate() {
        return true; // nothing to validate in a factory or scenario
    }


    /**
     * Call method to generate HTML report
     */
    public void generateReport() {
        responsiveUIValidator.generateReport();
    }

    /**
     * Call method to generate HTML report with specified file report name
     *
     * @param name
     */
    public void generateReport(String name) {
        responsiveUIValidator.generateReport(name);
    }

    public DriverFacade getDriver() {
        return responsiveUIValidator.getDriver();
    }

    /**
     * @deprecated As of release 2.0, replaced by {@link net.itarray.automotion.validation.properties.Expression#percent(int, net.itarray.automotion.internal.properties.PercentReference)}
     */
    @Deprecated
    public enum Units {
        PX {
            @Override
            public net.itarray.automotion.validation.Units asNewUnits() {
                return net.itarray.automotion.validation.Units.PX;
            }
        },
        PERCENT {
            @Override
            public net.itarray.automotion.validation.Units asNewUnits() {
                return net.itarray.automotion.validation.Units.PERCENT;
            }
        };

        public abstract net.itarray.automotion.validation.Units asNewUnits();
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy