From dc3dacdea7ca99ecbe5112ed8a3b1bd587b981a0 Mon Sep 17 00:00:00 2001 From: James Fredley Date: Fri, 28 Feb 2025 16:21:27 -0500 Subject: [PATCH] Add tests for trimToNull() method --- .../grails/util/GrailsStringUtilsSpec.groovy | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/grails-core/src/test/groovy/grails/util/GrailsStringUtilsSpec.groovy b/grails-core/src/test/groovy/grails/util/GrailsStringUtilsSpec.groovy index 09073e32167..2f9e71c7d6a 100644 --- a/grails-core/src/test/groovy/grails/util/GrailsStringUtilsSpec.groovy +++ b/grails-core/src/test/groovy/grails/util/GrailsStringUtilsSpec.groovy @@ -23,6 +23,39 @@ import spock.lang.Specification */ class GrailsStringUtilsSpec extends Specification{ + private static final String FOO = "foo"; + static final String WHITESPACE; + static final String NON_WHITESPACE; + static final String HARD_SPACE; + static final String TRIMMABLE; + static final String NON_TRIMMABLE; + + static { + final StringBuilder ws = new StringBuilder(); + final StringBuilder nws = new StringBuilder(); + final String hs = String.valueOf((char) 160); + final StringBuilder tr = new StringBuilder(); + final StringBuilder ntr = new StringBuilder(); + for (int i = 0; i < Character.MAX_VALUE; i++) { + if (Character.isWhitespace((char) i)) { + ws.append((char) i); + if (i > 32) { + ntr.append((char) i); + } + } else if (i < 40) { + nws.append((char) i); + } + } + for (int i = 0; i <= 32; i++) { + tr.append((char) i); + } + WHITESPACE = ws.toString(); + NON_WHITESPACE = nws.toString(); + HARD_SPACE = hs; + TRIMMABLE = tr.toString(); + NON_TRIMMABLE = ntr.toString(); + } + void "Test toBoolean"() { expect: GrailsStringUtils.toBoolean("on") == true @@ -63,4 +96,17 @@ class GrailsStringUtilsSpec extends Specification{ GrailsStringUtils.trimStart("abc", "ab") == 'c' GrailsStringUtils.trimStart("abc", "c") == 'abc' } + + void "Test trimToNull method"() { + expect: + GrailsStringUtils.trimToNull(FOO + " ") == FOO + GrailsStringUtils.trimToNull(" " + FOO + " ") == FOO + GrailsStringUtils.trimToNull(" " + FOO) == FOO + GrailsStringUtils.trimToNull(FOO + "") == FOO + GrailsStringUtils.trimToNull(" \t\r\n\b ") == null + GrailsStringUtils.trimToNull(TRIMMABLE) == null + GrailsStringUtils.trimToNull(NON_TRIMMABLE) == NON_TRIMMABLE + GrailsStringUtils.trimToNull("") == null + GrailsStringUtils.trimToNull(null) == null + } }