diff --git a/src/main/java/com/applitools/imagetester/lib/EyesFactory.java b/src/main/java/com/applitools/imagetester/lib/EyesFactory.java index dfabda1..705c187 100644 --- a/src/main/java/com/applitools/imagetester/lib/EyesFactory.java +++ b/src/main/java/com/applitools/imagetester/lib/EyesFactory.java @@ -225,6 +225,10 @@ public EyesFactory imageCut(String[] cutArgs) { public EyesFactory accSettings(String[] settings) { if (settings == null) return this; + // commons-cli 1.6.0 ignores valueSeparator(':') on options with optionalArg(true), + // so "-ac AA:WCAG_2_1" arrives here as one unsplit token — split it ourselves. + if (settings.length == 1 && settings[0].contains(":")) + settings = settings[0].split(":", 2); AccessibilityLevel level = AccessibilityLevel.AA; AccessibilityGuidelinesVersion version = AccessibilityGuidelinesVersion.WCAG_2_0; if (settings.length > 2) diff --git a/src/test/java/com/applitools/imagetester/EyesFactoryTest.java b/src/test/java/com/applitools/imagetester/EyesFactoryTest.java index 539eefd..dae7012 100644 --- a/src/test/java/com/applitools/imagetester/EyesFactoryTest.java +++ b/src/test/java/com/applitools/imagetester/EyesFactoryTest.java @@ -2,6 +2,8 @@ import com.applitools.imagetester.lib.EyesFactory; import com.applitools.imagetester.lib.Logger; +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.DefaultParser; import org.junit.Test; import static org.junit.Assert.*; @@ -64,6 +66,26 @@ public void accSettings_null_isNoOp() { assertNotNull(factory); } + @Test + public void accSettings_combinedLevelColonVersionToken_enablesValidation() { + EyesFactory factory = createFactory().accSettings(new String[]{"AA:WCAG_2_1"}); + assertTrue(factory.hasAccessibilityValidation()); + } + + @Test + public void accSettings_combinedTokenWithBlankLevel_enablesValidation() { + EyesFactory factory = createFactory().accSettings(new String[]{":WCAG_2_1"}); + assertTrue(factory.hasAccessibilityValidation()); + } + + @Test + public void accSettings_cliParsedColonSeparatedValue_enablesValidation() throws Exception { + CommandLine cmd = new DefaultParser().parse(ImageTester.getOptions(), + new String[]{"-ac", "AA:WCAG_2_1"}); + EyesFactory factory = createFactory().accSettings(cmd.getOptionValues("ac")); + assertTrue(factory.hasAccessibilityValidation()); + } + @Test(expected = IllegalArgumentException.class) public void accSettings_moreThanTwoValues_throws() { createFactory().accSettings(new String[]{"AA", "WCAG_2_1", "extra"});