Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/main/java/util/validator/ChunkValidator.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package util.validator;

import org.openqa.selenium.WebElement;

public interface ChunkValidator {

ResponsiveUIChunkValidator changeMetricsUnitsTo(ResponsiveUIValidator.Units units);
Expand Down Expand Up @@ -28,4 +30,6 @@ public interface ChunkValidator {

ResponsiveUIChunkValidator equalTopBottomOffset();

ResponsiveUIChunkValidator insideOf(WebElement containerElement, String readableContainerName);

}
15 changes: 14 additions & 1 deletion src/main/java/util/validator/ResponsiveUIChunkValidator.java
Original file line number Diff line number Diff line change
Expand Up @@ -162,4 +162,17 @@ public ResponsiveUIChunkValidator equalTopBottomOffset() {
validateEqualTopBottomOffset(rootElements);
return this;
}
}

/**
* Verify that element(s) is(are) located inside of specified element
*
* @param containerElement
* @param readableContainerName
* @return ResponsiveUIValidator
*/
@Override
public ResponsiveUIChunkValidator insideOf(WebElement containerElement, String readableContainerName) {
validateInsideOfContainer(containerElement, readableContainerName);
return this;
}
}
17 changes: 9 additions & 8 deletions src/main/java/util/validator/ResponsiveUIValidator.java
Original file line number Diff line number Diff line change
Expand Up @@ -133,14 +133,13 @@ public ResponsiveUIChunkValidator findElements(java.util.List<WebElement> elemen
}

/**
* Verify that element(s) is(are) located inside of specified element
* Change units to Pixels or % (Units.PX, Units.PERCENT)
*
* @param containerElement
* @param readableContainerName
* @return ResponsiveUIValidator
* @param units
* @return UIValidator
*/
public ResponsiveUIValidator insideOf(WebElement containerElement, String readableContainerName) {
validateInsideOfContainer(containerElement, readableContainerName);
public ResponsiveUIValidator changeMetricsUnitsTo(Units units) {
this.units = units;
return this;
}

Expand Down Expand Up @@ -699,7 +698,9 @@ String getFormattedMessage(WebElement element) {
int getRetinaValue(int value) {
if (!isMobile()) {
int zoom = Integer.valueOf(currentZoom.replace("%", ""));
if (zoom != 100) {
if (zoom > 100) {
value = (int) (value + (value * Math.abs(zoom - 100f) / 100f));
} else if (zoom < 100) {
value = (int) (value - (value * Math.abs(zoom - 100f) / 100f));
}
if (isRetinaDisplay() && isChrome()) {
Expand Down Expand Up @@ -750,7 +751,7 @@ long getPageHeight() {
}
}

private void validateInsideOfContainer(WebElement element, String readableContainerName) {
void validateInsideOfContainer(WebElement element, String readableContainerName) {
float xContainer = element.getLocation().x;
float yContainer = element.getLocation().y;
float widthContainer = element.getSize().width;
Expand Down
13 changes: 13 additions & 0 deletions src/main/java/util/validator/UIValidator.java
Original file line number Diff line number Diff line change
Expand Up @@ -557,4 +557,17 @@ public UIValidator equalTopBottomOffset() {
validateEqualTopBottomOffset(rootElement, rootElementReadableName);
return this;
}

/**
* Verify that element(s) is(are) located inside of specified element
*
* @param containerElement
* @param readableContainerName
* @return ResponsiveUIValidator
*/
@Override
public UIValidator insideOf(WebElement containerElement, String readableContainerName) {
validateInsideOfContainer(containerElement, readableContainerName);
return this;
}
}
2 changes: 2 additions & 0 deletions src/main/java/util/validator/Validator.java
Original file line number Diff line number Diff line change
Expand Up @@ -82,4 +82,6 @@ interface Validator {

UIValidator equalTopBottomOffset();

UIValidator insideOf(WebElement containerElement, String readableContainerName);

}
13 changes: 9 additions & 4 deletions src/test/java/ResponsiveValidatorTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.phantomjs.PhantomJSDriverService;
import util.driver.DriverHelper;
import util.driver.WebDriverFactory;
import util.validator.ResponsiveUIValidator;
Expand All @@ -22,18 +23,21 @@ public class ResponsiveValidatorTest {
@Test
public void testThatResponsiveValidatorWorks() {
Map<String, String> sysProp = new HashMap<>();
sysProp.put("BROWSER", "Chrome");
//sysProp.put("BROWSER", "phantomjs");
//sysProp.put("IS_HEADLESS", "true");
sysProp.put("IS_LOCAL", "true");
//sysProp.put(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "/Users/ZayCo/Downloads/phantomjs-2.1.1-macosx/bin/phantomjs");
sysProp.put("BROWSER", "Firefox");
sysProp.put(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "/Users/ZayCo/Downloads/phantomjs-2.1.1-macosx/bin/phantomjs");
EnvironmentHelper.setEnv(sysProp);
WebDriverFactory driverFactory = new WebDriverFactory();
driver = driverFactory.getDriver();
driver.get("http:/visual.itarray.net");
driver.get("http://visual.itarray.net");
driver.manage().window().maximize();

TestPage page = new TestPage(driver);

ResponsiveUIValidator uiValidator = new ResponsiveUIValidator(driver);

uiValidator.setLinesColor(Color.BLACK);
SoftAssertions softly = new SoftAssertions();

Expand Down Expand Up @@ -109,6 +113,7 @@ public void testThatResponsiveValidatorWorks() {
boolean success = uiValidator.init("Validate on page zoom " + val + "%")
.findElement(page.mainContainer(), "Main container")
.equalLeftRightOffset()
.sameWidthAs(page.gridContainer(), "Grid Container")
.drawMap()
.validate();

Expand All @@ -127,4 +132,4 @@ public void tearDown() {
}
}

}
}