This is an automated email from the ASF dual-hosted git repository. jamesfredley pushed a commit to branch chore/remove-jodd-wot in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 19fc2a11d7bd1c026cba87c5d4f9d906a277a573 Author: James Fredley <[email protected]> AuthorDate: Fri Jul 10 16:24:42 2026 -0400 Remove jodd-wot from fields tests Replace the Jerry-based spec assertions with direct output checks and remove the unused jodd-wot test dependency wiring. Assisted-by: opencode:gpt-5.5 --- gradle.properties | 1 - grails-fields/build.gradle | 6 +- .../formfields/DefaultFieldTemplateSpec.groovy | 78 +++++++++------------- 3 files changed, 33 insertions(+), 52 deletions(-) diff --git a/gradle.properties b/gradle.properties index bfcdd8de1a..a9caae06f5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -39,7 +39,6 @@ gradleToolingApiVersion=9.6.0 greenmailVersion=2.1.2 javassistVersion=3.30.2-GA jnrPosixVersion=3.1.20 -joddWotVersion=3.3.8 joptSimpleVersion=5.0.4 jspApiVersion=4.0.0 openTest4jVersion=1.3.0 diff --git a/grails-fields/build.gradle b/grails-fields/build.gradle index 57cf832b32..070dc273fd 100644 --- a/grails-fields/build.gradle +++ b/grails-fields/build.gradle @@ -54,10 +54,6 @@ dependencies { testImplementation project(':grails-testing-support-datamapping') testImplementation project(':grails-testing-support-web') testImplementation "org.javassist:javassist:$javassistVersion" - testImplementation("org.jodd:jodd-wot:$joddWotVersion") { - exclude module: 'slf4j-api' - exclude module: 'asm' - } testRuntimeOnly 'org.objenesis:objenesis' // Required by Spock for mocking classes without default constructor } @@ -66,4 +62,4 @@ apply { from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle') from rootProject.layout.projectDirectory.file('gradle/test-config.gradle') from rootProject.layout.projectDirectory.file('gradle/grails-extension-gradle-config.gradle') -} \ No newline at end of file +} diff --git a/grails-fields/src/test/groovy/grails/plugin/formfields/DefaultFieldTemplateSpec.groovy b/grails-fields/src/test/groovy/grails/plugin/formfields/DefaultFieldTemplateSpec.groovy index fe0604d164..3c205cfb78 100644 --- a/grails-fields/src/test/groovy/grails/plugin/formfields/DefaultFieldTemplateSpec.groovy +++ b/grails-fields/src/test/groovy/grails/plugin/formfields/DefaultFieldTemplateSpec.groovy @@ -19,13 +19,11 @@ package grails.plugin.formfields import grails.testing.web.taglib.TagLibUnitTest -import jodd.lagarto.dom.jerry.Jerry import spock.lang.Specification -import static jodd.lagarto.dom.jerry.Jerry.jerry class DefaultFieldTemplateSpec extends Specification implements TagLibUnitTest<FormFieldsTagLib> { - - Map model = [:] + + Map model = [:] void setup() { model.invalid = false @@ -46,54 +44,42 @@ class DefaultFieldTemplateSpec extends Specification implements TagLibUnitTest<F <%= widget %> </div>''' } - - static Jerry $(String html) { - jerry(html).children() - } - - void "default rendering"() { - when: - def output = tagLib.renderDefaultField(model) - then: - def root = $(output.toString()) - root.is('div.fieldcontain') + void "default rendering"() { + when: + String output = tagLib.renderDefaultField(model).toString() + + then: + output.contains('<div class="fieldcontain">') - and: - def label = root.find('label') - label.text() == 'label' - label.attr('for') == 'property' - - and: - label.next().is('input[name=property]') - } + and: + output.contains('<label class="" for="property">label</label>') + output.indexOf('<label class="" for="property">label</label>') < output.indexOf('<input name="property">') + } - void "container marked as invalid"() { - given: - model.invalid = true + void "container marked as invalid"() { + given: + model.invalid = true - when: - def output = tagLib.renderDefaultField(model) - - then: - $(output.toString()).hasClass('error') - } + when: + String output = tagLib.renderDefaultField(model).toString() - void "container marked as required"() { - given: - model.required = true + then: + output.contains('<div class="fieldcontain error">') + } - when: - def output = tagLib.renderDefaultField(model) + void "container marked as required"() { + given: + model.required = true - then: - def root = $(output.toString()) - root.hasClass('required') - - and: - def indicator = root.find('label .required-indicator') - indicator.size() - indicator.text() == '*' - } + when: + String output = tagLib.renderDefaultField(model).toString() + + then: + output.contains('<div class="fieldcontain required">') + + and: + output.contains('<span class="required-indicator">*</span>') + } }
