Update jumbomoji processing and downloading.

This commit is contained in:
Cody Henthorne
2022-01-21 10:31:43 -05:00
committed by GitHub
parent 2b021f5237
commit bfdedd57d1
21 changed files with 351 additions and 54 deletions

View File

@@ -51,6 +51,30 @@ private const val SAMPLE_JSON_WITH_OBSOLETE = """
}
"""
private const val SAMPLE_JSON_WITH_JUMBOS = """
{
"emoji": {
"Places_1": [["0002"], ["0003", "0004", "0005"]],
"Places_2": [["0003"], ["0008", "0009", "0000"]],
"Foods": [["0001"], ["0002", "0003", "0004"]]
},
"jumbomoji": {
"People_0": ["d83dde00","d83dde03","d83dde04", "d83dde01"],
"People_1": ["ad83dde00","ad83dde03","ad83dde04", "ad83dde01"]
},
"obsolete": [
{"obsoleted": "0012", "replace_with": "0023"}
],
"metrics": {
"raw_height": 64,
"raw_width": 64,
"per_row": 16
},
"densities": [ "xhdpi" ],
"format": "png"
}
"""
private val SAMPLE_JSON_WITHOUT_OBSOLETE_EXPECTED = listOf(
StaticEmojiPageModel(EmojiCategory.FOODS, listOf(Emoji("\u0001"), Emoji("\u0002", "\u0003", "\u0004")), Uri.parse("file:///Foods")),
StaticEmojiPageModel(EmojiCategory.PLACES, listOf(Emoji("\ud83c\udf0d"), Emoji("\u0003", "\u0004", "\u0005")), Uri.parse("file:///Places"))
@@ -128,6 +152,23 @@ class EmojiJsonParserTest {
Assert.assertEquals(result.format, "png")
}
@Test
fun `Given sample with jumbo, when I parse, then I expect source with jumbo map`() {
val result: ParsedEmojiData = EmojiJsonParser.parse(SAMPLE_JSON_WITH_JUMBOS.byteInputStream(), this::uriFactory).getOrThrow()
val jumboPages = result.jumboPages
Assert.assertEquals("People_0", jumboPages["d83dde00"])
Assert.assertEquals("People_0", jumboPages["d83dde03"])
Assert.assertEquals("People_0", jumboPages["d83dde04"])
Assert.assertEquals("People_0", jumboPages["d83dde01"])
Assert.assertEquals("People_1", jumboPages["ad83dde00"])
Assert.assertEquals("People_1", jumboPages["ad83dde03"])
Assert.assertEquals("People_1", jumboPages["ad83dde04"])
Assert.assertEquals("People_1", jumboPages["ad83dde01"])
}
private fun uriFactory(sprite: String, format: String) = Uri.parse("file:///$sprite")
private fun EmojiPageModel.isSameAs(other: EmojiPageModel) =

View File

@@ -10,7 +10,7 @@ class EmojiSourceTest {
@Test
fun `Given a bunch of data pages with max value 100100, when I get the maxEmojiLength, then I expect 6`() {
val emojiDataFake = ParsedEmojiData(EmojiMetrics(-1, -1, -1), listOf(), "png", listOf(), dataPages = generatePages(), listOf())
val emojiDataFake = ParsedEmojiData(EmojiMetrics(-1, -1, -1), listOf(), "png", listOf(), dataPages = generatePages(), emptyMap(), listOf())
val testSubject = EmojiSource(0f, emojiDataFake) { uri -> EmojiPage.Disk(uri) }
Assert.assertEquals(6, testSubject.maxEmojiLength)