in aws-synthetics-canary/src/main/java/com/amazon/synthetics/canary/ModelHelper.java [258:292]
public static boolean visualReferenceNeedsUpdate(VisualReferenceOutput existingVisualReference, VisualReference newVisualReference) {
if (newVisualReference == null) {
return false;
}
if (existingVisualReference == null
|| newVisualReference.getBaseScreenshots() == null
|| existingVisualReference.baseScreenshots() != null && existingVisualReference.baseScreenshots().size() != newVisualReference.getBaseScreenshots().size()
|| newVisualReference.getBaseCanaryRunId() != existingVisualReference.baseCanaryRunId()) {
return true;
}
for(int item = 0; item < newVisualReference.getBaseScreenshots().size(); item++) {
// Screenshots
if (newVisualReference.getBaseScreenshots().get(item).getScreenshotName() != existingVisualReference.baseScreenshots().get(item).screenshotName()){
return true;
}
// Ignore boundaries
if (existingVisualReference.baseScreenshots().get(item).ignoreCoordinates() == null) {
continue;
}
if (existingVisualReference.baseScreenshots().get(item).ignoreCoordinates() != null
&& existingVisualReference.baseScreenshots().get(item).ignoreCoordinates().size() != newVisualReference.getBaseScreenshots().get(item).getIgnoreCoordinates().size()){
return true;
}
for(int ignoreItem = 0; ignoreItem < existingVisualReference.baseScreenshots().get(item).ignoreCoordinates().size(); ignoreItem++) {
if (existingVisualReference.baseScreenshots().get(item).ignoreCoordinates().get(ignoreItem) != newVisualReference.getBaseScreenshots().get(item).getIgnoreCoordinates().get(ignoreItem)) {
return true;
}
}
}
return false;
}