FilePersister implements Persister { @Override public void saveScreenshot(PersistMetadata metadata, BufferedImage image) { File file = checkParentFileAvailable(getScreenshotImageFile(metadata)); LOG.debug("[Save screenshot start] ({})", file); LOG.trace("[Save screenshot] ({})", metadata); try { ImageIO.write(image, "png", file); LOG.debug("[Save screenshot finished] ({})", file); } catch (IOException e) { LOG.debug("Failed to save screenshot.", e); throw new TestRuntimeException(e); } } FilePersister();  FilePersister(FilePersisterConfig config); @Override void saveDiffImage(PersistMetadata metadata, BufferedImage image); @Override BufferedImage loadDiffImage(PersistMetadata metadata); @Override void saveScreenshot(PersistMetadata metadata, BufferedImage image); @Override InputStream getImageStream(PersistMetadata metadata); @Override BufferedImage loadScreenshot(PersistMetadata metadata); @Override void saveTargetResults(PersistMetadata metadata, List<TargetResult> results); @Override List<TargetResult> loadTargetResults(final PersistMetadata metadata); @Override void saveTestResult(PersistMetadata metadata, TestResult result); @Override TestResult loadTestResult(PersistMetadata metadata); @Override void saveExpectedIds(Map<String, Map<String, String>> expectedIds); @Override Map<String, Map<String, String>> loadExpectedIds(); File getResultDirectoryFile(); File getExpectedIdsFile(); File getTestResultFile(PersistMetadata metadata); File getTargetResultsFile(PersistMetadata metadata); File getScreenshotImageFile(PersistMetadata metadata); File getDiffImageFile(PersistMetadata metadata); String getExpectedIdsFileName(); String getTestResultFileName(); String getTargetResultsFileName(PersistMetadata metadata); String getScreenshotImageFileName(PersistMetadata metadata); String getDiffImageFileName(PersistMetadata metadata); static final String DEFAULT_EXPECTED_IDS_FILE_NAME; static final String DEFAULT_TEST_RESULT_FILE_NAME; }
@Test public void testSaveScreenshot_selector() throws Exception { Map<String, Object> map = new HashMap<String, Object>(); map.put("platform", "WINDOWS"); map.put("browserName", "firefox"); map.put("version", "38"); PtlCapabilities capabilities = new PtlCapabilities(map); IndexDomSelector selector = new IndexDomSelector(SelectorType.CSS_SELECTOR, "main", 0); PersistMetadata metadata = new PersistMetadata("testId", "testClass", "testMethod", "scId", selector, null, capabilities); BufferedImage expected = ImageIO.read(getClass().getResource("FilePersister_Image.png")); persister.saveScreenshot(metadata, expected); File file = new File(BASE_DIRECTORY + "/testId/testClass/testMethod_scId_WINDOWS_firefox_38_CSS_SELECTOR_main_[0].png"); BufferedImage actual = ImageIO.read(file); assertArrayEquals(toRGB(expected), toRGB(actual)); }
@Test public void testSaveScreenshot_rectangle() throws Exception { Map<String, Object> map = new HashMap<String, Object>(); map.put("platform", "WINDOWS"); map.put("browserName", "firefox"); map.put("version", "38"); PtlCapabilities capabilities = new PtlCapabilities(map); RectangleArea rectangle = new RectangleArea(0d, 10d, 100d, 110d); PersistMetadata metadata = new PersistMetadata("testId", "testClass", "testMethod", "scId", null, rectangle, capabilities); BufferedImage expected = ImageIO.read(getClass().getResource("FilePersister_Image.png")); persister.saveScreenshot(metadata, expected); File file = new File(BASE_DIRECTORY + "/testId/testClass/testMethod_scId_WINDOWS_firefox_38_rect_0_10_100_110.png"); BufferedImage actual = ImageIO.read(file); assertArrayEquals(toRGB(expected), toRGB(actual)); }
@Test public void testSaveScreenshot_escape() throws Exception { Map<String, Object> map = new HashMap<String, Object>(); map.put("platform", "WINDOWS"); map.put("browserName", "firefox"); map.put("version", "38"); PtlCapabilities capabilities = new PtlCapabilities(map); IndexDomSelector selector = new IndexDomSelector(SelectorType.CSS_SELECTOR, "1\\\\2/3:4*5?6\"7<8>9|0", 0); PersistMetadata metadata = new PersistMetadata("testId", "testClass", "testMethod", "scId", selector, null, capabilities); BufferedImage expected = ImageIO.read(getClass().getResource("FilePersister_Image.png")); persister.saveScreenshot(metadata, expected); File file = new File(BASE_DIRECTORY + "/testId/testClass/testMethod_scId_WINDOWS_firefox_38_CSS_SELECTOR_1-2-3-4-5-6-7-8-9-0_[0].png"); BufferedImage actual = ImageIO.read(file); assertArrayEquals(toRGB(expected), toRGB(actual)); }