From a2f9fb9cfdf01d498253577ad13c47b76d4b25b5 Mon Sep 17 00:00:00 2001 From: Zongle Wang Date: Sun, 12 Jan 2025 08:14:23 -0500 Subject: [PATCH] Standalone XmlAppendingTransformerTest (#1151) * Add XmlAppendingTransformerTest * Add a test for checking META-INF/plugin.xml --- .../shadow/transformers/TransformersTest.kt | 42 ----------- .../XmlAppendingTransformerTest.kt | 75 +++++++++++++++++++ 2 files changed, 75 insertions(+), 42 deletions(-) create mode 100644 src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/XmlAppendingTransformerTest.kt diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/TransformersTest.kt b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/TransformersTest.kt index 551578cce..f16e4265d 100644 --- a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/TransformersTest.kt +++ b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/TransformersTest.kt @@ -48,48 +48,6 @@ class TransformersTest : BaseTransformerTest() { commonAssertions() } - @Test - fun appendXmlFiles() { - val propertiesXml = "properties.xml" - val xmlContent = """ - - - - %s - - """.trimIndent() - - val xml1 = buildJar("xml1.jar") { - insert(propertiesXml, xmlContent.format("key1", "val1")) - } - val xml2 = buildJar("xml2.jar") { - insert(propertiesXml, xmlContent.format("key2", "val2")) - } - - projectScriptPath.appendText( - transform( - shadowJarBlock = fromJar(xml1, xml2), - transformerBlock = """ - resource = 'properties.xml' - """.trimIndent(), - ), - ) - - run(shadowJarTask) - - val content = outputShadowJar.use { it.getContent(propertiesXml) }.trimIndent() - assertThat(content).isEqualTo( - """ - - - - val1 - val2 - - """.trimIndent(), - ) - } - @Issue("https://github.com/GradleUp/shadow/issues/82") @Test fun shadowManifestLeaksToJarManifest() { diff --git a/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/XmlAppendingTransformerTest.kt b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/XmlAppendingTransformerTest.kt new file mode 100644 index 000000000..dded30087 --- /dev/null +++ b/src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/XmlAppendingTransformerTest.kt @@ -0,0 +1,75 @@ +package com.github.jengelman.gradle.plugins.shadow.transformers + +import assertk.assertThat +import assertk.assertions.isEqualTo +import kotlin.io.path.appendText +import org.junit.jupiter.api.Test + +class XmlAppendingTransformerTest : BaseTransformerTest() { + @Test + fun appendXmlFiles() { + val propertiesXml = "properties.xml" + val xmlContent = """ + + + + %s + + """.trimIndent() + + val xml1 = buildJar("xml1.jar") { + insert(propertiesXml, xmlContent.format("key1", "val1")) + } + val xml2 = buildJar("xml2.jar") { + insert(propertiesXml, xmlContent.format("key2", "val2")) + } + + projectScriptPath.appendText( + transform( + shadowJarBlock = fromJar(xml1, xml2), + transformerBlock = """ + resource = 'properties.xml' + """.trimIndent(), + ), + ) + + run(shadowJarTask) + + val content = outputShadowJar.use { it.getContent(propertiesXml) }.trimIndent() + assertThat(content).isEqualTo( + """ + + + + val1 + val2 + + """.trimIndent(), + ) + } + + @Test + fun canBundleMetaInfoPluginXml() { + val xmlEntry = "META-INF/plugin.xml" + val xmlContent = """ + + + my.plugin.id + + """.trimIndent() + val pluginJar = buildJar("plugin.jar") { + insert(xmlEntry, xmlContent) + } + + projectScriptPath.appendText( + transform( + shadowJarBlock = fromJar(pluginJar), + ), + ) + + run(shadowJarTask) + + val content = outputShadowJar.use { it.getContent(xmlEntry) }.trimIndent() + assertThat(content).isEqualTo(xmlContent) + } +}