diff --git a/pom.xml b/pom.xml index be05267f..51f49581 100644 --- a/pom.xml +++ b/pom.xml @@ -218,6 +218,12 @@ SOFTWARE. 6.5 test + + com.jcabi + jcabi-matchers + 1.8.0 + test + diff --git a/src/main/resources/org/eolang/funcs/escape.xsl b/src/main/resources/org/eolang/funcs/escape.xsl index fc712d66..8bf026fa 100644 --- a/src/main/resources/org/eolang/funcs/escape.xsl +++ b/src/main/resources/org/eolang/funcs/escape.xsl @@ -22,7 +22,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> - + diff --git a/src/test/java/org/eolang/lints/LtByXslTest.java b/src/test/java/org/eolang/lints/LtByXslTest.java index 619fc98a..383445db 100644 --- a/src/test/java/org/eolang/lints/LtByXslTest.java +++ b/src/test/java/org/eolang/lints/LtByXslTest.java @@ -23,6 +23,7 @@ */ package org.eolang.lints; +import com.jcabi.matchers.XhtmlMatchers; import com.jcabi.xml.XMLDocument; import java.io.IOException; import java.nio.file.Files; @@ -31,6 +32,8 @@ import java.util.Set; import java.util.stream.Collectors; import org.cactoos.io.InputOf; +import org.cactoos.text.TextOf; +import org.cactoos.text.UncheckedText; import org.eolang.jeo.Disassembler; import org.eolang.jucs.ClasspathSource; import org.eolang.parser.EoSyntax; @@ -176,6 +179,27 @@ void checksFileNaming() throws IOException { ); } + @Test + void checksIdsInXslStylesheets() throws IOException { + Files.walk(Paths.get("src/main/resources/org/eolang/lints")) + .filter(Files::isRegularFile) + .filter(file -> file.getFileName().toString().endsWith(".xsl")) + .forEach( + path -> MatcherAssert.assertThat( + String.format("@id is wrong in: %s", path), + XhtmlMatchers.xhtml( + new UncheckedText(new TextOf(path)).asString() + ), + XhtmlMatchers.hasXPath( + String.format( + "/xsl:stylesheet[@id='%s']", + path.getFileName().toString().replaceAll("\\.xsl$", "") + ) + ) + ) + ); + } + @Test @Timeout(30L) void checksEmptyObjectOnLargeXmirInReasonableTime(@TempDir final Path tmp) throws IOException {