Skip to content

Commit 06de63c

Browse files
authored
Merge pull request #84 from ITArray/SynchronousReports
Add tolerance to all but grid alignment
2 parents e1c7fe8 + 106f86d commit 06de63c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+900
-648
lines changed

pom.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@
9797
<configuration>
9898
<additionalparam>-Xdoclint:none</additionalparam>
9999
<javadocDirectory>${project.basedir}/target/generated-sources/apidocs</javadocDirectory>
100+
<failOnError>false</failOnError>
101+
<excludePackageNames>net.itarray.automotion.internal:net.itarray.automotion.internal.*</excludePackageNames>
100102
</configuration>
101103
</plugin>
102104
<plugin>

src/main/java/net/itarray/automotion/internal/AbstractValidator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public AbstractValidator dontDrawMap() {
3434

3535

3636
protected void addError(String message) {
37-
getBase().addError(message);
37+
getBase().getContext().add(message);
3838
}
3939

4040
@Override
Lines changed: 29 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package net.itarray.automotion.internal;
22

3+
import net.itarray.automotion.internal.geometry.Scalar;
4+
import net.itarray.automotion.internal.geometry.Vector;
35
import net.itarray.automotion.tools.helpers.Helper;
4-
import org.json.simple.JSONObject;
56

67
import javax.imageio.ImageIO;
78
import java.awt.*;
@@ -14,21 +15,20 @@
1415
public class DrawableScreenshot {
1516

1617
private final DrawingConfiguration drawingConfiguration;
17-
private BufferedImage img;
1818
private TransformedGraphics graphics;
1919
private File screenshotName;
2020
private File drawingsOutput;
2121
private BufferedImage drawings;
22+
private final Vector extend;
2223

23-
public DrawableScreenshot(SimpleTransform transform, DrawingConfiguration drawingConfiguration, String rootElementReadableName, File screenshotName) {
24+
public DrawableScreenshot(Vector extend, SimpleTransform transform, DrawingConfiguration drawingConfiguration, String rootElementReadableName, File screenshotName) {
2425
this.drawingConfiguration = drawingConfiguration;
2526
this.screenshotName = screenshotName;
2627
drawingsOutput = new File(TARGET_AUTOMOTION_IMG + rootElementReadableName.replace(" ", "") + "-draw-" + System.currentTimeMillis() + Helper.getGeneratedStringWithLength(7) + ".png");
2728

2829
try {
29-
img = ImageIO.read(screenshotName);
30-
31-
drawings = new BufferedImage(img.getWidth(), img.getHeight(),
30+
this.extend = extend;
31+
drawings = new BufferedImage(extend.getX().intValue(), extend.getY().intValue(),
3232
BufferedImage.TYPE_INT_ARGB);
3333

3434
Graphics2D g2d = drawings.createGraphics();
@@ -54,44 +54,41 @@ public File getDrawingsOutput() {
5454
return drawingsOutput;
5555
}
5656

57-
public void drawOffsets(UIElement rootElement, OffsetLineCommands offsetLineCommands) {
58-
offsetLineCommands.draw(graphics, img, rootElement, drawingConfiguration);
57+
public void drawVerticalLine(Scalar x) {
58+
drawingConfiguration.setLinesStyle(graphics);
59+
graphics.drawVerticalLine(x.intValue(), extend.getY().intValue());
5960
}
6061

61-
public void drawScreenshot(String rootElementReadableName, Errors errors) {
62-
for (Object obj : errors.getMessages()) {
63-
JSONObject det = (JSONObject) obj;
64-
JSONObject details = (JSONObject) det.get(REASON);
65-
JSONObject numE = (JSONObject) details.get(ELEMENT);
66-
67-
if (numE != null) {
68-
int x = (int) (float) numE.get(X);
69-
int y = (int) (float) numE.get(Y);
70-
int width = (int) (float) numE.get(WIDTH);
71-
int height = (int) (float) numE.get(HEIGHT);
72-
73-
drawingConfiguration.setHighlightedElementStyle(graphics);
74-
graphics.drawRectByExtend(x, y, width, height);
75-
}
76-
}
77-
78-
79-
62+
public void drawHorizontalLine(Scalar y) {
63+
drawingConfiguration.setLinesStyle(graphics);
64+
graphics.drawHorizontalLine(y.intValue(), extend.getX().intValue());
65+
}
8066

67+
public void saveDrawing() {
8168
try {
8269
ImageIO.write(drawings, "png", drawingsOutput);
8370
} catch (IOException e) {
8471
throw new RuntimeException("Writing file failed for " + drawingsOutput , e);
8572
}
8673

8774
drawings.getGraphics().dispose();
88-
8975
}
9076

91-
public void drawRootElement(UIElement rootElement) {
77+
public void drawRoot(UIElement rootElement) {
9278
drawingConfiguration.setRootElementStyle(graphics);
93-
int x = rootElement.getX().intValue();
94-
int y = rootElement.getY().intValue();
95-
graphics.drawRectByExtend(x, y, rootElement.getWidth().intValue(), rootElement.getHeight().intValue());
79+
basicDraw(rootElement);
80+
}
81+
82+
public void draw(UIElement element) {
83+
drawingConfiguration.setHighlightedElementStyle(graphics);
84+
basicDraw(element);
85+
}
86+
87+
private void basicDraw(UIElement element) {
88+
int x = element.getOrigin().getX().intValue();
89+
int y = element.getOrigin().getY().intValue();
90+
int width = element.getWidth().intValue();
91+
int height = element.getHeight().intValue();
92+
graphics.drawRectByExtend(x, y, width, height);
9693
}
9794
}

src/main/java/net/itarray/automotion/internal/DriverFacade.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@
33
import io.appium.java_client.AppiumDriver;
44
import io.appium.java_client.android.AndroidDriver;
55
import io.appium.java_client.ios.IOSDriver;
6+
import net.itarray.automotion.internal.geometry.Vector;
67
import org.openqa.selenium.*;
78
import org.openqa.selenium.chrome.ChromeDriver;
89
import org.openqa.selenium.firefox.FirefoxDriver;
910
import org.openqa.selenium.phantomjs.PhantomJSDriver;
1011
import org.openqa.selenium.remote.RemoteWebDriver;
1112

13+
import javax.imageio.ImageIO;
14+
import java.awt.image.BufferedImage;
1215
import java.io.File;
1316
import java.io.FileOutputStream;
1417
import java.io.IOException;
@@ -38,6 +41,19 @@ public void takeScreenshot(File file) {
3841
}
3942
}
4043

44+
public Vector getExtend(File screenshotName) {
45+
try {
46+
BufferedImage img = ImageIO.read(screenshotName);
47+
48+
int width = img.getWidth();
49+
int height = img.getHeight();
50+
return new Vector(width, height);
51+
} catch (IOException e) {
52+
throw new RuntimeException(e);
53+
}
54+
}
55+
56+
4157
public WebDriver getDriver() {
4258
return driver;
4359
}

src/main/java/net/itarray/automotion/internal/Errors.java

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -9,48 +9,20 @@ public class Errors {
99

1010
private final JSONArray messages = new JSONArray();
1111
private String lastMessage;
12-
private UIElement lastElement;
1312

1413
public String getLastMessage() {
1514
return lastMessage;
1615
}
1716

18-
public UIElement getLastElement() {
19-
return lastElement;
20-
}
21-
2217
public void add(String message) {
2318
lastMessage = message;
24-
lastElement = null;
2519
JSONObject details = new JSONObject();
2620
JSONObject messageObject = new JSONObject();
2721
messageObject.put(MESSAGE, message);
2822
details.put(REASON, messageObject);
2923
messages.add(details);
3024
}
3125

32-
public void add(String message, UIElement element) {
33-
lastMessage = message;
34-
lastElement = element;
35-
float xContainer = element.getX().intValue();
36-
float yContainer = element.getY().intValue();
37-
float widthContainer = element.getWidth().intValue();
38-
float heightContainer = element.getHeight().intValue();
39-
40-
JSONObject details = new JSONObject();
41-
JSONObject elDetails = new JSONObject();
42-
elDetails.put(X, xContainer);
43-
elDetails.put(Y, yContainer);
44-
elDetails.put(WIDTH, widthContainer);
45-
elDetails.put(HEIGHT, heightContainer);
46-
JSONObject mes = new JSONObject();
47-
mes.put(MESSAGE, message);
48-
mes.put(ELEMENT, elDetails);
49-
details.put(REASON, mes);
50-
messages.add(details);
51-
}
52-
53-
5426
public boolean hasMessages() {
5527
return !messages.isEmpty();
5628
}

src/main/java/net/itarray/automotion/internal/OffsetLineCommands.java

Lines changed: 0 additions & 43 deletions
This file was deleted.

0 commit comments

Comments
 (0)