diff --git a/.github/workflows/ci-actions.yml b/.github/workflows/ci-actions.yml index e1c74dbe9e..e763fbdbc7 100644 --- a/.github/workflows/ci-actions.yml +++ b/.github/workflows/ci-actions.yml @@ -3,7 +3,6 @@ name: Jakarta Contexts and Dependency Injection TCK CI on: workflow_dispatch: pull_request: - branches: [ master ] permissions: contents: read diff --git a/impl/src/main/resources/tck-tests-previous.xml b/impl/src/main/resources/tck-tests-previous.xml deleted file mode 100644 index 03c9ed11af..0000000000 --- a/impl/src/main/resources/tck-tests-previous.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/pom.xml b/pom.xml index b86b457bee..06ae8e7a23 100644 --- a/pom.xml +++ b/pom.xml @@ -112,7 +112,8 @@ 1.0.1.Final 3.1 2.50.0 - 4.7.2 + 4.7.2 + 2.9.1 ${project.version} 5.1.2.Final @@ -192,12 +193,12 @@ org.seleniumhq.selenium selenium-chrome-driver ${selenium.version} - + io.github.bonigarcia - webdrivermanager - 5.3.1 + webdrivermanager + 5.3.1 diff --git a/web/pom.xml b/web/pom.xml index b816d012f7..0a3c380e87 100644 --- a/web/pom.xml +++ b/web/pom.xml @@ -186,6 +186,13 @@ 2.2 test + + + org.xmlunit + xmlunit-core + ${xmlunit.version} + test + diff --git a/web/src/main/resources/tck-tests-previous.xml b/web/src/main/resources/tck-tests-previous.xml deleted file mode 100644 index 03c9ed11af..0000000000 --- a/web/src/main/resources/tck-tests-previous.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/web/src/main/resources/tck-tests.xml b/web/src/main/resources/tck-tests.xml index 2921a0e7a1..d320a955f2 100644 --- a/web/src/main/resources/tck-tests.xml +++ b/web/src/main/resources/tck-tests.xml @@ -1,5 +1,5 @@ - + @@ -23,6 +23,12 @@ + + + + + + diff --git a/web/src/test/java/org/jboss/cdi/tck/test/ExclusionListsTest.java b/web/src/test/java/org/jboss/cdi/tck/test/ExclusionListsTest.java new file mode 100644 index 0000000000..cc6e45cc7b --- /dev/null +++ b/web/src/test/java/org/jboss/cdi/tck/test/ExclusionListsTest.java @@ -0,0 +1,53 @@ +package org.jboss.cdi.tck.test; + +import org.testng.annotations.Test; +import org.xmlunit.builder.DiffBuilder; +import org.xmlunit.diff.ComparisonResult; +import org.xmlunit.diff.ComparisonType; +import org.xmlunit.diff.Diff; +import org.xmlunit.diff.DifferenceEvaluators; + +import java.io.IOException; +import java.net.URL; +import java.util.ArrayList; +import java.util.List; + +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; + +public class ExclusionListsTest { + @Test + public void compareExclusionLists() throws IOException { + List xmls = new ArrayList<>(); + ExclusionListsTest.class.getClassLoader().getResources("tck-tests.xml").asIterator().forEachRemaining(xmls::add); + assertEquals(xmls.size(), 2); + URL control = xmls.stream().filter(it -> !it.toString().contains("web")).findFirst().orElseThrow(); + URL test = xmls.stream().filter(it -> it.toString().contains("web")).findFirst().orElseThrow(); + + Diff diff = DiffBuilder.compare(control) + .withTest(test) + .checkForSimilar() + .ignoreComments() + .ignoreWhitespace() + .withDifferenceEvaluator(DifferenceEvaluators.chain( + DifferenceEvaluators.Default, + (comparison, outcome) -> { + if (outcome != ComparisonResult.DIFFERENT) { + return outcome; + } + if (comparison.getType() == ComparisonType.CHILD_NODELIST_LENGTH + && (Integer) comparison.getControlDetails().getValue() < (Integer) comparison.getTestDetails().getValue()) { + return ComparisonResult.SIMILAR; + } + if (comparison.getType() == ComparisonType.CHILD_LOOKUP + && comparison.getControlDetails().getValue() == null + && comparison.getTestDetails().getValue() != null) { + return ComparisonResult.SIMILAR; + } + return outcome; + })) + .build(); + assertFalse(diff.hasDifferences(), + "Exclusion list in `web` must contain the exclusion list in `impl` as a prefix:\n" + diff.fullDescription()); + } +}