Fix Emoji test

This commit is contained in:
Benoit Marty 2024-10-08 14:14:39 +02:00
parent a1b60a26ad
commit a0205cf1e9
2 changed files with 19 additions and 15 deletions

View file

@ -22,7 +22,10 @@ import io.element.android.features.messages.impl.timeline.model.event.AN_EMOJI_O
fun String.containsOnlyEmojis(): Boolean { fun String.containsOnlyEmojis(): Boolean {
if (LocalInspectionMode.current) return this == AN_EMOJI_ONLY_TEXT if (LocalInspectionMode.current) return this == AN_EMOJI_ONLY_TEXT
if (isEmpty()) return false if (isEmpty()) return false
return containsOnlyEmojisInternal()
}
internal fun String.containsOnlyEmojisInternal(): Boolean {
val matcher = GraphemeMatcher(this) val matcher = GraphemeMatcher(this)
var m: GraphemeMatchResult? = null var m: GraphemeMatchResult? = null
var contiguous = true var contiguous = true

View file

@ -8,29 +8,30 @@
package io.element.android.features.messages.impl.utils package io.element.android.features.messages.impl.utils
import org.junit.Assert import org.junit.Assert
import org.junit.Assert.assertTrue
import org.junit.Test import org.junit.Test
class EmojiTest { class EmojiTest {
@Test @Test
fun validEmojis() { fun validEmojis() {
// Simple single/multiple single-codepoint emojis per string // Simple single/multiple single-codepoint emojis per string
Assert.assertTrue("👍".containsOnlyEmojis()) assertTrue("👍".containsOnlyEmojisInternal())
Assert.assertTrue("😀".containsOnlyEmojis()) assertTrue("😀".containsOnlyEmojisInternal())
Assert.assertTrue("🙂🙁".containsOnlyEmojis()) assertTrue("🙂🙁".containsOnlyEmojisInternal())
Assert.assertTrue("👁❤️🍝".containsOnlyEmojis()) // 👁 is a pictographic assertTrue("👁❤️🍝".containsOnlyEmojisInternal()) // 👁 is a pictographic
Assert.assertTrue("👨👩👦1⃣🚀👳🏾🪩".containsOnlyEmojis()) assertTrue("👨👩👦1⃣🚀👳🏾🪩".containsOnlyEmojisInternal())
Assert.assertTrue("🌍🌎🌏".containsOnlyEmojis()) assertTrue("🌍🌎🌏".containsOnlyEmojisInternal())
// Awkward multi-codepoint graphemes // Awkward multi-codepoint graphemes
Assert.assertTrue("🧑‍🧑‍🧒‍🧒".containsOnlyEmojis()) assertTrue("🧑‍🧑‍🧒‍🧒".containsOnlyEmojisInternal())
Assert.assertTrue("🏴‍☠".containsOnlyEmojis()) assertTrue("🏴‍☠".containsOnlyEmojisInternal())
Assert.assertTrue("👩🏿‍🔧".containsOnlyEmojis()) assertTrue("👩🏿‍🔧".containsOnlyEmojisInternal())
Assert.assertFalse("".containsOnlyEmojis()) Assert.assertFalse("".containsOnlyEmojisInternal())
Assert.assertFalse(" ".containsOnlyEmojis()) Assert.assertFalse(" ".containsOnlyEmojisInternal())
Assert.assertFalse("🙂 🙁".containsOnlyEmojis()) Assert.assertFalse("🙂 🙁".containsOnlyEmojisInternal())
Assert.assertFalse(" 🙂 🙁 ".containsOnlyEmojis()) Assert.assertFalse(" 🙂 🙁 ".containsOnlyEmojisInternal())
Assert.assertFalse("Hello".containsOnlyEmojis()) Assert.assertFalse("Hello".containsOnlyEmojisInternal())
Assert.assertFalse("Hello 👋".containsOnlyEmojis()) Assert.assertFalse("Hello 👋".containsOnlyEmojisInternal())
} }
} }