com.htmlhifive.pitalium.it.assertion.partialpage.CompareDifferentPositionTest.java Source code

Java tutorial

Introduction

Here is the source code for com.htmlhifive.pitalium.it.assertion.partialpage.CompareDifferentPositionTest.java

Source

/*
 * Copyright (C) 2015-2016 NS Solutions Corporation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.htmlhifive.pitalium.it.assertion.partialpage;

import java.util.ArrayList;
import java.util.List;

import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;

import com.htmlhifive.pitalium.core.PtlTestBase;
import com.htmlhifive.pitalium.core.config.ExecMode;
import com.htmlhifive.pitalium.core.config.PtlTestConfig;
import com.htmlhifive.pitalium.core.model.CompareTarget;
import com.htmlhifive.pitalium.core.model.DomSelector;
import com.htmlhifive.pitalium.core.model.ScreenArea;
import com.htmlhifive.pitalium.core.model.SelectorType;

/**
 * ??????????????
 */
public class CompareDifferentPositionTest extends PtlTestBase {

    private static final PtlTestConfig config = PtlTestConfig.getInstance();
    private static final String BASE_URL = config.getTestAppConfig().getBaseUrl();

    @Rule
    public ExpectedException thrown = ExpectedException.none();

    /**
     * Expected?Actual?????????????<br>
     * ??????SET_EXPECTED?1??????<br>
     * IE711/FireFox/Chrome/Android 2.3, 4.0, 4.4/iOS 8.1<br>
     * ?assertView???
     */
    @Test
    public void compareDifferentPositionInt() {
        driver.get(BASE_URL);

        // ACTUAL??????
        // ????
        if (config.getEnvironment().getExecMode() == ExecMode.RUN_TEST) {
            final int expendHeight = 1;
            WebElement headerglobal = driver.findElement(By.id("headerglobal"));
            driver.executeJavaScript("document.getElementById('headerglobal').style.height = '"
                    + (Integer.parseInt(headerglobal.getAttribute("clientHeight")) + expendHeight) + "';");
        }

        List<CompareTarget> targets = new ArrayList<CompareTarget>();
        targets.add(new CompareTarget(ScreenArea.of(SelectorType.CSS_SELECTOR, "#about")));
        assertionView.assertView("compareDifferentFontColor", targets.toArray(new CompareTarget[] {}),
                new DomSelector[] { new DomSelector(SelectorType.CLASS_NAME, "gototop") });
    }

    /**
     * Expected?Actual?????????movesTarget=true???<br>
     * ??????SET_EXPECTED?1??????<br>
     * IE711/FireFox/Chrome/Android 2.3, 4.0, 4.4/iOS 8.1<br>
     * ?assertView???
     */
    @Test
    public void compareDifferentPositionDoubleMovesTargetTrue() {
        driver.get(BASE_URL);

        // ACTUAL??????
        // ????
        if (config.getEnvironment().getExecMode() == ExecMode.RUN_TEST) {
            final double expendHeight = 0.5;
            WebElement headerglobal = driver.findElement(By.id("headerglobal"));
            driver.executeJavaScript("document.getElementById('headerglobal').style.height = '"
                    + (Integer.parseInt(headerglobal.getAttribute("clientHeight")) + expendHeight) + "';");
        }

        List<CompareTarget> targets = new ArrayList<CompareTarget>();
        targets.add(new CompareTarget(ScreenArea.of(SelectorType.CSS_SELECTOR, "#about"), null, true));
        assertionView.assertView("compareDifferentFontColor", targets.toArray(new CompareTarget[] {}),
                new DomSelector[] { new DomSelector(SelectorType.CLASS_NAME, "gototop") });
    }

    /**
     * Expected?Actual?????????movesTarget=false???<br>
     * ??????SET_EXPECTED?1??????<br>
     * IE711/FireFox/Chrome/Android 2.3, 4.0, 4.4/iOS 8.1<br>
     * ?assertView?????????
     */
    @Test
    public void compareDifferentPositionDoubleMovesTargetFalse() {
        driver.get(BASE_URL);

        // ACTUAL??????
        // ????
        if (config.getEnvironment().getExecMode() == ExecMode.RUN_TEST) {
            final double expendHeight = 0.5;
            WebElement headerglobal = driver.findElement(By.id("headerglobal"));
            driver.executeJavaScript("document.getElementById('headerglobal').style.height = '"
                    + (Integer.parseInt(headerglobal.getAttribute("clientHeight")) + expendHeight) + "';");
            //         thrown.expect(AssertionError.class);
        }

        List<CompareTarget> targets = new ArrayList<CompareTarget>();
        targets.add(new CompareTarget(ScreenArea.of(SelectorType.CSS_SELECTOR, "#about"), null, false));
        assertionView.assertView("compareDifferentFontColor", targets.toArray(new CompareTarget[] {}),
                new DomSelector[] { new DomSelector(SelectorType.CLASS_NAME, "gototop") });
    }

    /**
     * body???????movesTarget=true???<br>
     * ??????SET_EXPECTED?1??????<br>
     * IE711/FireFox/Chrome/Android 2.3, 4.0, 4.4/iOS 8.1<br>
     * ?assertView???
     */
    @Test
    public void compareDifferentBodyPositionMovesTargetTrue() {
        driver.get(BASE_URL);

        // ACTUAL??????
        // Body??
        if (config.getEnvironment().getExecMode() == ExecMode.RUN_TEST) {
            final double bodyTop = -0.5;
            driver.executeJavaScript("document.body.style.top ='" + bodyTop + "';");
        }

        List<CompareTarget> targets = new ArrayList<CompareTarget>();
        targets.add(new CompareTarget(ScreenArea.of(SelectorType.CSS_SELECTOR, "#about"), null, false));
        assertionView.assertView("compareDifferentFontColor", targets.toArray(new CompareTarget[] {}),
                new DomSelector[] { new DomSelector(SelectorType.CLASS_NAME, "gototop") });
    }
}