diff --git a/runtests/test/stdlib/testall/CollectionTestAllTest.java b/runtests/test/stdlib/testall/CollectionTestAllTest.java index 367f346064e..7c35873be61 100644 --- a/runtests/test/stdlib/testall/CollectionTestAllTest.java +++ b/runtests/test/stdlib/testall/CollectionTestAllTest.java @@ -18,11 +18,12 @@ package stdlib.testall; import junit.framework.TestSuite; import test.collections.*; +import test.string.*; /** */ public class CollectionTestAllTest { public static TestSuite suite() { - return new TestSuite(CollectionTest.class, MapTest.class); + return new TestSuite(StringTest.class, CollectionTest.class, MapTest.class); } } diff --git a/stdlib/ktSrc/String.kt b/stdlib/ktSrc/String.kt index bf383cd2dd6..6f6ac6540f0 100644 --- a/stdlib/ktSrc/String.kt +++ b/stdlib/ktSrc/String.kt @@ -162,3 +162,6 @@ inline fun String.subSequence(beginIndex : Int, endIndex : Int) = (this as java. inline fun String.toLowerCase(locale : java.util.Locale) = (this as java.lang.String).toLowerCase(locale).sure() inline fun String.toUpperCase(locale : java.util.Locale) = (this as java.lang.String).toUpperCase(locale).sure() + +/** Returns the string if it is not null or the empty string if its null */ +inline fun String?.orEmpty(): String = this ?: "" \ No newline at end of file diff --git a/testlib/test/StringTest.kt b/testlib/test/StringTest.kt index dcde6bf4b3d..f6c381b4158 100644 --- a/testlib/test/StringTest.kt +++ b/testlib/test/StringTest.kt @@ -1,4 +1,4 @@ -package testString +package test.string import kotlin.io.* import kotlin.test.* @@ -25,4 +25,12 @@ class StringTest() : TestCase() { sum += (c.toInt() - '0'.toInt()) assertTrue(sum == 14) } + + fun testOrEmpty() { + val s: String? = "hey" + val ns: String? = null + + assertEquals("hey", s.orEmpty()) + assertEquals("", ns.orEmpty()) + } }