Fix Emoji test
This commit is contained in:
parent
a1b60a26ad
commit
a0205cf1e9
2 changed files with 19 additions and 15 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue