Skip to content

Commit c56470f

Browse files
Added fixing links when saving actual and expected pages.
1 parent 5e98000 commit c56470f

File tree

3 files changed

+29
-6
lines changed

3 files changed

+29
-6
lines changed

Demos/demos-api-tests/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,7 @@ SET FILES_DIR=C:\api-viewer-tests
2929
```
3030

3131
Also, keep in mind that Spring and Dropwizard samples have cache functionality, so you should remove `cache` folder in `FILES_DIR` directory
32+
33+
### Known problems
34+
*
35+
* External tests were configured using Spring, so when they are run using Dropwizard, there are minor differences which forces tests to fail. It is recommended to perceive them not as failed, but as tests which are required manual check (result files are saved into `target` directory).

Demos/demos-api-tests/src/main/java/com/groupdocs/ui/viewer/demosapitests/common/Utils.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ public static String normalizeDataBeforeComparing(String inputData) {
88
return inputData
99
.replace("\r\n", "\n")
1010
.replaceAll("(\\d+)\\.\\d+(em|pt|px)", "$1$2")
11-
.replaceAll("Date: \\d{1,2}/\\d{1,2}/\\d{4} \\d{1,2}:\\d{2} \\w{2}", "Date: XX/YY/ZZZ XX:YY ZZ")
11+
.replaceAll("\\d{1,2}/\\d{1,2}/\\d{4} \\d{1,2}:\\d{2} \\w{2}", "XX/YY/ZZZ XX:YY ZZ")
12+
.replaceAll("\\p{L}{2} \\d{1,2}\\.\\d{2}\\.\\d{2}", "XX XX.YY.ZZ")
13+
.replaceAll("\\w{3} \\d{1,2}/\\d{2}/\\d{2}", "XX XX.YY.ZZ")
1214
.replaceAll("font-family:\\s?\"\\w+\\+([^\"']+)\"", "font-family:\"AAAAA+$1\"")
1315
.replaceAll("id=\"cp_\\d+\"", "id=\"cp_1234\"")
1416
.replaceAll("class=\"(p+\\d+)-\\w+-(\\s)", "class=\"$1-SOMEUID-$2")

Demos/demos-api-tests/src/test/java/com/groupdocs/ui/viewer/demosapitests/external/LoadExternalDocumentDescriptionApiTests.java

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public class LoadExternalDocumentDescriptionApiTests {
3333
public static final int ERROR_MESSAGE_DATA_LOOK_BACK = 16;
3434
private static final Logger LOGGER = LoggerFactory.getLogger(LoadExternalDocumentDescriptionApiTests.class);
3535
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
36-
private final Pattern EXTERNAL_LINK_PATTERN = Pattern.compile("(?:src|href)=[\"']([^\"']+)[\"']");
36+
private final Pattern EXTERNAL_LINK_PATTERN = Pattern.compile("(?:src|href|data)=[\"']([^\"']+)[\"']");
3737
private final List<String> SKIP_RESOURCES_NAMES = Arrays.asList("filelist.xml", "editdata.mso", "oledata.mso");
3838

3939
@DataProvider(name = "testLoadDocumentDescription_ExternalResources_DataProvider")
@@ -214,18 +214,35 @@ public void testLoadDocumentDescription(String caseFile) throws IOException {
214214
for (int n = 0; n < Math.max(expectedPages.size(), actualPages.size()); n++) {
215215
if (expectedPages.size() > n) {
216216
final LoadDocumentDescription.PageDescriptionEntity expectedPageDescriptionEntity = expectedPages.get(n);
217-
final Path expectedTempFile = Files.createTempFile(Paths.get("target"), "LoadDocumentDescription-" + fileName.substring(0, fileName.lastIndexOf('.')) + "-expected-page-" + expectedPageDescriptionEntity.getNumber() + "-", ".html");
218-
FileUtils.write(expectedTempFile.toFile(), expectedPageDescriptionEntity.getData(), StandardCharsets.UTF_8);
217+
final Path expectedTempFile = Files.createTempFile(Paths.get("target"), "LoadDocumentDescription-" + fileName.substring(0, fileName.lastIndexOf('.')) + "-page-" + expectedPageDescriptionEntity.getNumber() + "-expected-", ".html");
218+
final String expectedData = expectedPageDescriptionEntity.getData();
219+
// Fix links
220+
final Matcher matcher = EXTERNAL_LINK_PATTERN.matcher(expectedData);
221+
String expectedDataWithFixedLinks = expectedData;
222+
while (matcher.find()) {
223+
final String nextLink = matcher.group(1);
224+
expectedDataWithFixedLinks = expectedDataWithFixedLinks.replace(nextLink, Constants.URL_BASE + nextLink);
225+
}
226+
FileUtils.write(expectedTempFile.toFile(), expectedDataWithFixedLinks, StandardCharsets.UTF_8);
219227
LOGGER.info("Expected data for page {} was written:\t'{}'", n + 1, expectedTempFile);
220228
}
221229
if (actualPages.size() > n) {
222230
final LoadDocumentDescription.PageDescriptionEntity actualPageDescriptionEntity = actualPages.get(n);
223-
final Path actualTempFile = Files.createTempFile(Paths.get("target"), "LoadDocumentDescription-" + fileName.substring(0, fileName.lastIndexOf('.')) + "-actual-page-" + actualPageDescriptionEntity.getNumber() + "-", ".html");
224-
FileUtils.write(actualTempFile.toFile(), actualPageDescriptionEntity.getData(), StandardCharsets.UTF_8);
231+
final Path actualTempFile = Files.createTempFile(Paths.get("target"), "LoadDocumentDescription-" + fileName.substring(0, fileName.lastIndexOf('.')) + "-page-" + actualPageDescriptionEntity.getNumber() + "-actual-", ".html");
232+
final String actualData = actualPageDescriptionEntity.getData();
233+
// Fix links
234+
final Matcher matcher = EXTERNAL_LINK_PATTERN.matcher(actualData);
235+
String actualDataWithFixedLinks = actualData;
236+
while (matcher.find()) {
237+
final String nextLink = matcher.group(1);
238+
actualDataWithFixedLinks = actualDataWithFixedLinks.replace(nextLink, Constants.URL_BASE + nextLink);
239+
}
240+
FileUtils.write(actualTempFile.toFile(), actualDataWithFixedLinks, StandardCharsets.UTF_8);
225241
LOGGER.info("Actual data for page {} was written:\t'{}'", n + 1, actualTempFile);
226242
}
227243
}
228244
}
245+
System.out.println("IT IS RECOMMENDED TO CHECK EXPECTED AND ACTUAL FILES OF FAILED TESTS MANUALLY");
229246
throw e;
230247
} finally {
231248
System.out.println();

0 commit comments

Comments
 (0)