package il.co.topq.difido; import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Robot; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import org.apache.commons.io.FileUtils; import org.junit.Test; import jsystem.framework.TestProperties; import jsystem.framework.report.ReporterHelper; import junit.framework.SystemTestCase4; public class TestsWithFiles extends SystemTestCase4 { @Test @TestProperties(name = "Adding text file to the report and adding link") public void testAddWithLinkFile() throws Exception { File file = createFile(); try { ReporterHelper.copyFileToReporterAndAddLink(report, file, "A general text file"); } finally { file.delete(); } } @Test @TestProperties(name = "Adding text file to the report and adding property") public void testAddFileWithProperty() throws IOException { File file = createFile(); try { report.saveFile(file.getName(), FileUtils.readFileToByteArray(file)); report.addProperty("file", "<a href='" + file.getName() + "'>" + file.getName() + "</a>"); } finally { file.delete(); } } private File createFile() throws IOException { String content = "Lorem ipsum dolor sit amet, " + "consectetur adipiscing elit. Nunc id justo ac lacus finibus venenatis" + ". Nunc imperdiet nunc purus, non aliquam mi sagittis et. " + "Suspendisse metus erat, interdum at tincidunt vel, " + "euismod fermentum ipsum. Ut sapien arcu, tempus et ultricies a, " + "aliquet id elit. Phasellus et libero non lorem auctor malesuada " + "feugiat sed lectus. Morbi faucibus scelerisque felis, scelerisque volutpat risus " + "dapibus ac. Morbi nec sem aliquet, feugiat ex id, porttitor purus. " + "Duis mattis volutpat orci quis lobortis. Interdum et malesuada fames ac ante ipsum primis in faucibus. " + "Morbi eu ex felis. Donec semper interdum eros, sed varius dolor finibus in. " + "Curabitur neque est, iaculis non quam in, posuere pellentesque nunc. " + "Mauris purus diam, pharetra et justo eget, congue tristique purus. " + "In vulputate mi justo, in volutpat magna porttitor a."; File tempFile = File.createTempFile("tempTestingFile", ".txt"); FileUtils.write(tempFile, content); return tempFile; } @Test @TestProperties(name = "Adding screenshot to the report") public void testAddScreenshot() throws Exception { Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Rectangle screenRectangle = new Rectangle(screenSize); Robot robot = new Robot(); BufferedImage image = robot.createScreenCapture(screenRectangle); File imgFile = File.createTempFile("screenshot_file", "png"); ImageIO.write(image, "png", imgFile); ReporterHelper.copyFileToReporterAndAddLink(report, imgFile, "My screenshot file"); imgFile.delete(); } }