import java.io.*;
import javafx.embed.swing.SwingFXUtils;
import javafx.scene.Node;
import javafx.scene.image.WritableImage;
import javax.imageio.ImageIO;
import org.jpedal.PdfDecoderFX;
import static org.junit.Assert.*;
public class BaseClassJavaFX {
protected String outputFolder = "";
protected String inputFolder = "";
protected String baselineFolder = "";
public BaseClassJavaFX() {
}
public void testFiles() {
try {
/**
* open all files
*/
File filesToTest = new File(inputFolder);
String[] fileList = filesToTest.list();
//check we have some files
if (fileList == null) {
fail("No files in " + inputFolder);
}
for (String fileName : fileList) {
test(fileName);
}
//Compare all output and check for changes
if (compareImages(outputFolder, baselineFolder)) {
fail("Current output does not match baseline.");
}
} catch (Exception e) {
e.printStackTrace();
fail(e.toString());
}
}
public void getScreenshot(Node node, String filename) {
WritableImage img = node.getScene().snapshot(new WritableImage((int) ((PdfDecoderFX) node).getScene().getWidth(),
(int) ((PdfDecoderFX) node).getScene().getHeight()));
File file = new File(filename);
try {
ImageIO.write(SwingFXUtils.fromFXImage(img, null), "png", file);
} catch (Exception s) {
}
}
private boolean compareImages(String output, String baseline) {
/*
ADD CODE TO GET FILES FROM FOLDER NAMES AND COMPARE THEM
*/
return false;
}
public void test(String testFile) {
//Do nothing for generic test
}
}