From b26ba76221fba2b48d86809b14457fde2029f454 Mon Sep 17 00:00:00 2001 From: Helium314 Date: Wed, 26 Mar 2025 20:57:54 +0100 Subject: [PATCH] add test related to GH-1408 --- .../keyboard/latin/StringUtilsTest.kt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/app/src/test/java/helium314/keyboard/latin/StringUtilsTest.kt b/app/src/test/java/helium314/keyboard/latin/StringUtilsTest.kt index e2bf6adb..c7339d04 100644 --- a/app/src/test/java/helium314/keyboard/latin/StringUtilsTest.kt +++ b/app/src/test/java/helium314/keyboard/latin/StringUtilsTest.kt @@ -1,12 +1,23 @@ // SPDX-License-Identifier: GPL-3.0-only package helium314.keyboard.latin +import androidx.test.core.app.ApplicationProvider +import helium314.keyboard.ShadowInputMethodManager2 import helium314.keyboard.latin.common.StringUtils import helium314.keyboard.latin.common.getFullEmojiAtEnd +import helium314.keyboard.latin.common.nonWordCodePointAndNoSpaceBeforeCursor +import helium314.keyboard.latin.settings.SpacingAndPunctuations +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner +import org.robolectric.annotation.Config import kotlin.test.Test import kotlin.test.assertEquals // todo: actually this test could/should be significantly expanded... +@RunWith(RobolectricTestRunner::class) +@Config(shadows = [ + ShadowInputMethodManager2::class, +]) class StringUtilsTest { @Test fun `not inside double quotes without quotes`() { assert(!StringUtils.isInsideDoubleQuoteOrAfterDigit("hello yes")) @@ -41,6 +52,14 @@ class StringUtilsTest { assert(StringUtils.isInsideDoubleQuoteOrAfterDigit("hello \"yes\", \"h")) } + @Test fun `non-word codepoints and no space`() { + val sp = SpacingAndPunctuations(ApplicationProvider.getApplicationContext().resources, false) + assert(!nonWordCodePointAndNoSpaceBeforeCursor("this is", sp)) + assert(!nonWordCodePointAndNoSpaceBeforeCursor("this ", sp)) + assert(!nonWordCodePointAndNoSpaceBeforeCursor("th.is ", sp)) + assert(nonWordCodePointAndNoSpaceBeforeCursor("th.is", sp)) + } + @Test fun detectEmojisAtEnd() { assertEquals("", getFullEmojiAtEnd("\uD83C\uDF83 ")) assertEquals("", getFullEmojiAtEnd("a"))