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

com.applitools.eyes.selenium.capture.MobileDeviceSizeAdjuster Maven / Gradle / Ivy

package com.applitools.eyes.selenium.capture;

import com.applitools.eyes.IEyesJsExecutor;
import com.applitools.eyes.RectangleSize;
import com.applitools.eyes.Region;
import com.applitools.eyes.ViewportMetaTag;

public class MobileDeviceSizeAdjuster implements ISizeAdjuster {

    private final String GetViewportMetaTagContentScript =
            "var meta = document.querySelector('head > meta[name=viewport]');" +
                    "var viewport = (meta == null) ? '' : meta.getAttribute('content');" +
                    "return viewport;";

    protected ViewportMetaTag viewportMetaTag;

    public MobileDeviceSizeAdjuster(IEyesJsExecutor jsExecutor)
    {
        String viewportMetaTagContent = (String)jsExecutor.executeScript(GetViewportMetaTagContentScript);
        viewportMetaTag = ViewportMetaTag.parseViewportMetaTag(viewportMetaTagContent);
    }

    @Override
    public Region adjustRegion(Region inputRegion, RectangleSize deviceLogicalViewportSize) {
        if (viewportMetaTag.getFollowDeviceWidth())
        {
            return inputRegion;
        }
        float widthRatio = (float)inputRegion.getWidth() / deviceLogicalViewportSize.getWidth();
        Region adjustedRegion = new Region(inputRegion.getLeft(), inputRegion.getTop(), deviceLogicalViewportSize.getWidth(), Math.round(inputRegion.getHeight() / widthRatio));
        return adjustedRegion;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy