Recently Written · git

assistkey

Hardware key remapper for the Viwoods AiPaper Reader: AI key, volume keys and power, with multi-tap, hold and chords

git clone https://github.com/equwal/assistkey

Log | Files | Refs


app/src/test/java/dev/equwal/assistkey/model/ComponentPayloadTest.kt (1541 bytes)

1 package dev.equwal.assistkey.model
2 
3 import org.junit.Assert.assertEquals
4 import org.junit.Test
5 import java.util.Random
6 
7 class ComponentPayloadTest {
8 
9     @Test fun `a payload from before has no extras and reads as it did`() {
10         val old = "com.viwoods.viwoodsai/com.wisky.wiskyai.AIActivity"
11         assertEquals(ComponentPayload.Parts(old, emptyMap()), ComponentPayload.parse(old))
12     }
13 
14     @Test fun `the Viwoods voice prompt carries its one extra`() {
15         val parts = ComponentPayload.parse(
16             "com.viwoods.viwoodsai/com.wisky.wiskyai.WebViewAiActivity?recodeKey=recode_key_start"
17         )
18         assertEquals("com.viwoods.viwoodsai/com.wisky.wiskyai.WebViewAiActivity", parts.component)
19         assertEquals(mapOf("recodeKey" to "recode_key_start"), parts.extras)
20     }
21 
22     @Test fun `junk after the question mark is skipped, not thrown`() {
23         assertEquals(mapOf("a" to "1"), ComponentPayload.parse("p/c?&=x&novalue&a=1").extras)
24         assertEquals(mapOf("a" to "b=c"), ComponentPayload.parse("p/c?a=b=c").extras)
25     }
26 
27     @Test fun `parse gives back what format was given`() {
28         val r = Random(21)
29         val letters = "abcXYZ019_."
30         fun word() = (0..r.nextInt(6)).map { letters[r.nextInt(letters.length)] }.joinToString("")
31         repeat(500) {
32             val extras = (0 until r.nextInt(4)).associate { word() to word() }
33             val parts = ComponentPayload.parse(ComponentPayload.format("pkg/" + word(), extras))
34             assertEquals(extras, parts.extras)
35         }
36     }
37 }