Skip to content

Commit 739dd2b

Browse files
authored
Merge pull request #692 from javiertuya/689-report-scenario-invalid-chars
ISSUE-689 # Sanitize json report file name
2 parents 9be3dba + 9dd130e commit 739dd2b

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

core/src/main/java/org/jsmart/zerocode/core/domain/builders/ZeroCodeIoWriteBuilder.java

+2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import java.util.concurrent.Executors;
1717

1818
import static org.jsmart.zerocode.core.constants.ZeroCodeReportConstants.TARGET_REPORT_DIR;
19+
import static org.jsmart.zerocode.core.utils.SmartUtils.sanitizeReportFileName;
1920
import static org.slf4j.LoggerFactory.getLogger;
2021

2122
public class ZeroCodeIoWriteBuilder {
@@ -60,6 +61,7 @@ public synchronized void printToFile(String fileName) {
6061

6162
final ObjectMapper mapper = new ObjectMapperProvider().get();
6263

64+
fileName = sanitizeReportFileName(fileName);
6365
File file = new File(TARGET_REPORT_DIR + fileName);
6466
file.getParentFile().mkdirs();
6567
mapper.writeValue(file, this.built);

core/src/main/java/org/jsmart/zerocode/core/utils/SmartUtils.java

+4
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ public Map<String, Object> readJsonStringAsMap(String json) throws IOException {
8787
return map;
8888
}
8989

90+
public static String sanitizeReportFileName(String fileName) {
91+
return fileName.replaceAll("[^A-Za-z0-9 \\-_.]", "_");
92+
}
93+
9094
public static List<String> getAllEndPointFiles(String packageName) {
9195
if(isValidAbsolutePath(packageName)){
9296
return retrieveScenariosByAbsPath(packageName);

core/src/test/java/org/jsmart/zerocode/core/utils/SmartUtilsTest.java

+8
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.util.Map;
2424

2525
import static org.hamcrest.CoreMatchers.containsString;
26+
import static org.hamcrest.CoreMatchers.equalTo;
2627
import static org.hamcrest.CoreMatchers.is;
2728
import static org.hamcrest.CoreMatchers.notNullValue;
2829
import static org.hamcrest.MatcherAssert.assertThat;
@@ -236,6 +237,13 @@ public void testSuiteFolder_symAbsolutePath() {
236237
assertThat(allScenarios.get(0), containsString("cherry_pick_tests/folder_b/test_case_2.json"));
237238
}
238239

240+
@Test
241+
public void testSanitizeReportFile() {
242+
String orig = "file !#$%&'()*+,-./09:;<=>?@AZ[]^_`az{|}~\"\\";
243+
String dest = "file ___________-._09_______AZ_____az______";
244+
assertThat(SmartUtils.sanitizeReportFileName(orig), equalTo(dest));
245+
}
246+
239247
// Move this to File Util class
240248
private static File createCascadeIfNotExisting(String fileName) {
241249
try {

0 commit comments

Comments
 (0)