11package org .verapdf .wcag .regression .tests ;
22
33import org .junit .Assert ;
4+ import org .verapdf .pdfa .flavours .PDFAFlavour ;
45import org .verapdf .pdfa .qa .FailedPolicyCheck ;
56import org .verapdf .pdfa .qa .RegressionTestingHelper ;
67import org .verapdf .pdfa .validation .profiles .Profiles ;
1011import java .io .IOException ;
1112import java .io .InputStream ;
1213import java .net .URL ;
13- import java .util .HashMap ;
14- import java .util .List ;
15- import java .util .Map ;
14+ import java .util .*;
15+ import java .util .stream .Collectors ;
1616
1717public class WCAGRegressionTestUtils {
18- private static final String wcagProfileUrl = "https://github.com/veraPDF/veraPDF-validation-profiles/raw/integration/PDF_UA/WCAG-2-2-Complete.xml" ;
18+ private static final String WCAG_FOLDER = "https://github.com/veraPDF/veraPDF-validation-profiles/raw/integration/PDF_UA/" ;
19+ private static final String WCAG_PROFILE_URL = WCAG_FOLDER + "WCAG-2-2-Complete.xml" ;
20+ private static final String WCAG_2_0_PROFILE_URL = WCAG_FOLDER + "WCAG-2-2-Complete-PDF20.xml" ;
21+ private static final EnumMap <PDFAFlavour , Set <String >> filesByFlavour = new EnumMap <>(PDFAFlavour .class );
22+ private static final Map <PDFAFlavour , String > map = new HashMap <>();
23+
24+ static {
25+ map .put (PDFAFlavour .WCAG_2_2_HUMAN , WCAG_PROFILE_URL );
26+ map . put (PDFAFlavour .WCAG_2_2_PDF_2_0_HUMAN , WCAG_2_0_PROFILE_URL );
27+ }
1928
2029 public static void main (String [] args ) {
2130 test ();
@@ -24,17 +33,33 @@ public static void main(String[] args) {
2433 public static void test () {
2534 try {
2635 RegressionTestingHelper helper = new RegressionTestingHelper (true );
27- ValidationProfile customProfile ;
28- try ( InputStream is = ( new URL ( wcagProfileUrl )).openStream ()) {
29- customProfile = Profiles . profileFromXml ( is );
36+ for ( PDFAFlavour flavour : map . keySet ()) {
37+ Set < String > toAdd = helper . getPdfFileNames (). stream (). filter ( s -> checkWCAGFlavour ( s , flavour )).collect ( Collectors . toSet ());
38+ filesByFlavour . put ( flavour , toAdd );
3039 }
3140 Map <String , List <FailedPolicyCheck >> failedFiles = new HashMap <>();
32- helper .getFailedPolicyComplianceFiles (failedFiles , null , customProfile , helper .getPdfFileNames ());
41+ for (Map .Entry <PDFAFlavour , String > entry : map .entrySet ()) {
42+ ValidationProfile customProfile ;
43+ try (InputStream is = (new URL (entry .getValue ())).openStream ()) {
44+ customProfile = Profiles .profileFromXml (is );
45+ }
46+ helper .getFailedPolicyComplianceFiles (failedFiles , null , customProfile , filesByFlavour .get (entry .getKey ()));
47+ }
3348 RegressionTestingHelper .printResult (failedFiles );
3449 Assert .assertEquals (0 , failedFiles .size ());
3550 } catch (IOException | JAXBException e ) {
3651 Assert .fail ("Some tests are fallen due to an error" );
3752 e .printStackTrace ();
3853 }
3954 }
55+
56+ private static boolean checkWCAGFlavour (final String item , final PDFAFlavour flavour ) {
57+ if (flavour == PDFAFlavour .WCAG_2_2_HUMAN ) {
58+ return item .contains ("1.7" );
59+ }
60+ if (flavour == PDFAFlavour .WCAG_2_2_PDF_2_0_HUMAN ) {
61+ return item .contains ("2.0" );
62+ }
63+ return false ;
64+ }
4065}
0 commit comments