-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathResponsiveValidatorTest.java
More file actions
153 lines (124 loc) · 6.18 KB
/
Copy pathResponsiveValidatorTest.java
File metadata and controls
153 lines (124 loc) · 6.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
import net.itarray.automotion.tools.driver.DriverHelper;
import net.itarray.automotion.tools.driver.WebDriverFactory;
import net.itarray.automotion.tools.helpers.EnvironmentHelper;
import net.itarray.automotion.validation.ResponsiveUIValidator;
import org.assertj.core.api.SoftAssertions;
import org.junit.After;
import org.junit.Ignore;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.phantomjs.PhantomJSDriverService;
import util.validator.properties.Padding;
import java.awt.*;
import java.util.HashMap;
import java.util.Map;
import static net.itarray.automotion.validation.properties.Condition.between;
@Ignore
public class ResponsiveValidatorTest {
private static WebDriver driver;
private static long start;
public static void main(String[] args) {
ManualTestSupport.deleteOutputDirectory();
ResponsiveValidatorTest test = new ResponsiveValidatorTest();
try {
test.testThatResponsiveValidatorWorks();
} finally {
test.tearDown();
long stop = System.currentTimeMillis();
System.out.println((stop - start) + " ms");
ManualTestSupport.openReportInDefaultBrowser();;
}
}
@Test
public void testThatResponsiveValidatorWorks() {
Map<String, String> sysProp = new HashMap<>();
//sysProp.put("BROWSER", "Chrome");
//sysProp.put("IS_LOCAL", "true");
sysProp.put("IS_HEADLESS", "true");
sysProp.put(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "/Users/" + System.getProperty("user.name") + "/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.manage().window().maximize();
start = System.currentTimeMillis();
TestPage page = new TestPage(driver);
ResponsiveUIValidator uiValidator = new ResponsiveUIValidator(driver);
uiValidator.setLinesColor(Color.BLACK);
SoftAssertions softly = new SoftAssertions();
boolean success1 = uiValidator.init("Validation of Top Slider Element")
.findElement(page.topSlider(), "Top Slider")
.isLeftAlignedWith(page.gridContainer(), "Grid Container")
.isBottomAlignedWith(page.topTextBlock(), "Text Block")
.hasWidth(between(300).and(500))
.hasEqualSizeAs(page.gridElements())
.isCenteredOnPageHorizontally()
.isCenteredOnPageVertically()
.isInsideOf(page.mainContainer(), "Main container", new Padding(10, 50, 10, 20))
.drawMap()
.validate();
softly.assertThat(success1).isEqualTo(true).overridingErrorMessage("Failed validation of Top Slider element");
boolean success0 = uiValidator.init("Validation of Grid view")
.findElement(page.gridContainer(), "Grid Container")
.isCenteredOnPageHorizontally()
.drawMap()
.validate();
softly.assertThat(success0).isEqualTo(true).overridingErrorMessage("Failed validation of Grid Container");
boolean success01 = uiValidator.init("Validation of Main container")
.findElement(page.mainContainer(), "Main Container")
.isCenteredOnPageHorizontally()
.drawMap()
.validate();
softly.assertThat(success01).isEqualTo(true).overridingErrorMessage("Failed validation of Main Container");
boolean success2 = uiValidator.init("Validation of Top Text block")
.findElement(page.topTextBlock(), "Top Text block")
.isRightAlignedWith(page.gridContainer(), "Grid Container")
.isTopAlignedWith(page.topSlider(), "Top Slider")
.drawMap()
.validate();
softly.assertThat(success2).isEqualTo(true).overridingErrorMessage("Failed validation of Top Text block");
boolean success3 = uiValidator.init("Validation of a grid view")
.findElements(page.gridElements())
.alignedAsGrid(4, 3)
.haveEqualSize()
.doNotOverlap()
.areTopAligned()
.areCenteredOnPageVertically()
.areCenteredOnPageHorizontally()
.drawMap()
.validate();
softly.assertThat(success3).isEqualTo(true).overridingErrorMessage("Failed validation of Grid");
for (WebElement card : page.gridElements()) {
boolean success = uiValidator.init("Validation of style for each of cards in a grid view")
.findElement(card.findElement(By.className("project-details")), "Project details block")
.hasCssValue("background", "#f8f8f8")
.hasCssValue("color", "#6f6f6f")
.isNotOverlapping(card.findElement(By.className("gallery-hover-4col")), "Image Container")
.hasEqualWidthAs(card.findElement(By.className("gallery-hover-4col")), "Image Container")
.drawMap()
.validate();
softly.assertThat(success).isEqualTo(true).overridingErrorMessage("Failed validation of Grid in a list");
}
int[] zoomRange = {50, 70, 100, 120, 150};
for (int val : zoomRange) {
DriverHelper.zoomInOutPage(driver, val);
boolean success = uiValidator.init("Validate on page zoom " + val + "%")
.findElement(page.mainContainer(), "Main container")
.isCenteredOnPageHorizontally()
.hasEqualWidthAs(page.gridContainer(), "Grid Container")
.drawMap()
.validate();
softly.assertThat(success).isEqualTo(true).overridingErrorMessage("Failed validation of Container");
}
uiValidator.generateReport("Home Page");
softly.assertAll();
}
@After
public void tearDown() {
if (driver != null) {
driver.quit();
}
}
}