Skip to content

Commit ac53f48

Browse files
committed
[1.4.2-issue-18] - adapted methods. Added fix for drawing screenshots
1 parent 8d43a0c commit ac53f48

File tree

6 files changed

+51
-13
lines changed

6 files changed

+51
-13
lines changed

src/main/java/util/validator/ChunkValidator.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package util.validator;
22

3+
import org.openqa.selenium.WebElement;
4+
35
public interface ChunkValidator {
46

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

2931
ResponsiveUIChunkValidator equalTopBottomOffset();
3032

33+
ResponsiveUIChunkValidator insideOf(WebElement containerElement, String readableContainerName);
34+
3135
}

src/main/java/util/validator/ResponsiveUIChunkValidator.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,4 +162,17 @@ public ResponsiveUIChunkValidator equalTopBottomOffset() {
162162
validateEqualTopBottomOffset(rootElements);
163163
return this;
164164
}
165-
}
165+
166+
/**
167+
* Verify that element(s) is(are) located inside of specified element
168+
*
169+
* @param containerElement
170+
* @param readableContainerName
171+
* @return ResponsiveUIValidator
172+
*/
173+
@Override
174+
public ResponsiveUIChunkValidator insideOf(WebElement containerElement, String readableContainerName) {
175+
validateInsideOfContainer(containerElement, readableContainerName);
176+
return this;
177+
}
178+
}

src/main/java/util/validator/ResponsiveUIValidator.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -133,14 +133,13 @@ public ResponsiveUIChunkValidator findElements(java.util.List<WebElement> elemen
133133
}
134134

135135
/**
136-
* Verify that element(s) is(are) located inside of specified element
136+
* Change units to Pixels or % (Units.PX, Units.PERCENT)
137137
*
138-
* @param containerElement
139-
* @param readableContainerName
140-
* @return ResponsiveUIValidator
138+
* @param units
139+
* @return UIValidator
141140
*/
142-
public ResponsiveUIValidator insideOf(WebElement containerElement, String readableContainerName) {
143-
validateInsideOfContainer(containerElement, readableContainerName);
141+
public ResponsiveUIValidator changeMetricsUnitsTo(Units units) {
142+
this.units = units;
144143
return this;
145144
}
146145

@@ -699,7 +698,9 @@ String getFormattedMessage(WebElement element) {
699698
int getRetinaValue(int value) {
700699
if (!isMobile()) {
701700
int zoom = Integer.valueOf(currentZoom.replace("%", ""));
702-
if (zoom != 100) {
701+
if (zoom > 100) {
702+
value = (int) (value + (value * Math.abs(zoom - 100f) / 100f));
703+
} else if (zoom < 100) {
703704
value = (int) (value - (value * Math.abs(zoom - 100f) / 100f));
704705
}
705706
if (isRetinaDisplay() && isChrome()) {
@@ -750,7 +751,7 @@ long getPageHeight() {
750751
}
751752
}
752753

753-
private void validateInsideOfContainer(WebElement element, String readableContainerName) {
754+
void validateInsideOfContainer(WebElement element, String readableContainerName) {
754755
float xContainer = element.getLocation().x;
755756
float yContainer = element.getLocation().y;
756757
float widthContainer = element.getSize().width;

src/main/java/util/validator/UIValidator.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -557,4 +557,17 @@ public UIValidator equalTopBottomOffset() {
557557
validateEqualTopBottomOffset(rootElement, rootElementReadableName);
558558
return this;
559559
}
560+
561+
/**
562+
* Verify that element(s) is(are) located inside of specified element
563+
*
564+
* @param containerElement
565+
* @param readableContainerName
566+
* @return ResponsiveUIValidator
567+
*/
568+
@Override
569+
public UIValidator insideOf(WebElement containerElement, String readableContainerName) {
570+
validateInsideOfContainer(containerElement, readableContainerName);
571+
return this;
572+
}
560573
}

src/main/java/util/validator/Validator.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,4 +82,6 @@ interface Validator {
8282

8383
UIValidator equalTopBottomOffset();
8484

85+
UIValidator insideOf(WebElement containerElement, String readableContainerName);
86+
8587
}

src/test/java/ResponsiveValidatorTest.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.openqa.selenium.By;
77
import org.openqa.selenium.WebDriver;
88
import org.openqa.selenium.WebElement;
9+
import org.openqa.selenium.phantomjs.PhantomJSDriverService;
910
import util.driver.DriverHelper;
1011
import util.driver.WebDriverFactory;
1112
import util.validator.ResponsiveUIValidator;
@@ -22,18 +23,21 @@ public class ResponsiveValidatorTest {
2223
@Test
2324
public void testThatResponsiveValidatorWorks() {
2425
Map<String, String> sysProp = new HashMap<>();
25-
sysProp.put("BROWSER", "Chrome");
26+
//sysProp.put("BROWSER", "phantomjs");
27+
//sysProp.put("IS_HEADLESS", "true");
2628
sysProp.put("IS_LOCAL", "true");
27-
//sysProp.put(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "/Users/ZayCo/Downloads/phantomjs-2.1.1-macosx/bin/phantomjs");
29+
sysProp.put("BROWSER", "Firefox");
30+
sysProp.put(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "/Users/ZayCo/Downloads/phantomjs-2.1.1-macosx/bin/phantomjs");
2831
EnvironmentHelper.setEnv(sysProp);
2932
WebDriverFactory driverFactory = new WebDriverFactory();
3033
driver = driverFactory.getDriver();
31-
driver.get("http:/visual.itarray.net");
34+
driver.get("http://visual.itarray.net");
3235
driver.manage().window().maximize();
3336

3437
TestPage page = new TestPage(driver);
3538

3639
ResponsiveUIValidator uiValidator = new ResponsiveUIValidator(driver);
40+
3741
uiValidator.setLinesColor(Color.BLACK);
3842
SoftAssertions softly = new SoftAssertions();
3943

@@ -109,6 +113,7 @@ public void testThatResponsiveValidatorWorks() {
109113
boolean success = uiValidator.init("Validate on page zoom " + val + "%")
110114
.findElement(page.mainContainer(), "Main container")
111115
.equalLeftRightOffset()
116+
.sameWidthAs(page.gridContainer(), "Grid Container")
112117
.drawMap()
113118
.validate();
114119

@@ -127,4 +132,4 @@ public void tearDown() {
127132
}
128133
}
129134

130-
}
135+
}

0 commit comments

Comments
 (0)