summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/bubbles/storage/BubblePersistentRepositoryTest.kt48
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/bubbles/storage/BubbleVolatileRepositoryTest.kt52
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/bubbles/storage/BubbleXmlHelperTest.kt67
3 files changed, 167 insertions, 0 deletions
diff --git a/packages/SystemUI/tests/src/com/android/systemui/bubbles/storage/BubblePersistentRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/bubbles/storage/BubblePersistentRepositoryTest.kt
new file mode 100644
index 000000000000..d49d0219fa54
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/bubbles/storage/BubblePersistentRepositoryTest.kt
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.bubbles.storage
+
+import android.testing.AndroidTestingRunner
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import junit.framework.Assert.assertEquals
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@SmallTest
+@RunWith(AndroidTestingRunner::class)
+class BubblePersistentRepositoryTest : SysuiTestCase() {
+
+ private val bubbles = listOf(
+ BubbleEntity(0, "com.example.messenger", "shortcut-1"),
+ BubbleEntity(10, "com.example.chat", "alice and bob"),
+ BubbleEntity(0, "com.example.messenger", "shortcut-2")
+ )
+ private lateinit var repository: BubblePersistentRepository
+
+ @Before
+ fun setup() {
+ repository = BubblePersistentRepository(mContext)
+ }
+
+ @Test
+ fun testReadWriteOperation() {
+ repository.persistsToDisk(bubbles)
+ assertEquals(bubbles, repository.readFromDisk())
+ }
+} \ No newline at end of file
diff --git a/packages/SystemUI/tests/src/com/android/systemui/bubbles/storage/BubbleVolatileRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/bubbles/storage/BubbleVolatileRepositoryTest.kt
new file mode 100644
index 000000000000..7acc93712d9b
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/bubbles/storage/BubbleVolatileRepositoryTest.kt
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.bubbles.storage
+
+import android.testing.AndroidTestingRunner
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import junit.framework.Assert.assertEquals
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@SmallTest
+@RunWith(AndroidTestingRunner::class)
+class BubbleVolatileRepositoryTest : SysuiTestCase() {
+
+ private val bubble1 = BubbleEntity(0, "com.example.messenger", "shortcut-1")
+ private val bubble2 = BubbleEntity(10, "com.example.chat", "alice and bob")
+ private val bubble3 = BubbleEntity(0, "com.example.messenger", "shortcut-2")
+ private val bubbles = listOf(bubble1, bubble2, bubble3)
+
+ private lateinit var repository: BubbleVolatileRepository
+
+ @Before
+ fun setup() {
+ repository = BubbleVolatileRepository()
+ }
+
+ @Test
+ fun testAddAndRemoveBubbles() {
+ repository.addBubbles(bubbles)
+ assertEquals(bubbles, repository.bubbles)
+ repository.addBubbles(listOf(bubble1))
+ assertEquals(listOf(bubble2, bubble3, bubble1), repository.bubbles)
+ repository.removeBubbles(listOf(bubble3))
+ assertEquals(listOf(bubble2, bubble1), repository.bubbles)
+ }
+} \ No newline at end of file
diff --git a/packages/SystemUI/tests/src/com/android/systemui/bubbles/storage/BubbleXmlHelperTest.kt b/packages/SystemUI/tests/src/com/android/systemui/bubbles/storage/BubbleXmlHelperTest.kt
new file mode 100644
index 000000000000..ef4580c6b28d
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/bubbles/storage/BubbleXmlHelperTest.kt
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.bubbles.storage
+
+import android.testing.AndroidTestingRunner
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import junit.framework.Assert.assertEquals
+import junit.framework.Assert.assertTrue
+import org.junit.Test
+import org.junit.runner.RunWith
+import java.io.ByteArrayInputStream
+import java.io.ByteArrayOutputStream
+
+@SmallTest
+@RunWith(AndroidTestingRunner::class)
+class BubbleXmlHelperTest : SysuiTestCase() {
+
+ private val bubbles = listOf(
+ BubbleEntity(0, "com.example.messenger", "shortcut-1"),
+ BubbleEntity(10, "com.example.chat", "alice and bob"),
+ BubbleEntity(0, "com.example.messenger", "shortcut-2")
+ )
+
+ @Test
+ fun testWriteXml() {
+ val expectedEntries = """
+ <bb uid="0" pkg="com.example.messenger" sid="shortcut-1" />
+ <bb uid="10" pkg="com.example.chat" sid="alice and bob" />
+ <bb uid="0" pkg="com.example.messenger" sid="shortcut-2" />
+ """.trimIndent()
+ ByteArrayOutputStream().use {
+ writeXml(it, bubbles)
+ val actual = it.toString()
+ assertTrue("cannot find expected entry in \n$actual",
+ actual.contains(expectedEntries))
+ }
+ }
+
+ @Test
+ fun testReadXml() {
+ val src = """
+ <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
+ <bs>
+ <bb uid="0" pkg="com.example.messenger" sid="shortcut-1" />
+ <bb uid="10" pkg="com.example.chat" sid="alice and bob" />
+ <bb uid="0" pkg="com.example.messenger" sid="shortcut-2" />
+ </bs>
+ """.trimIndent()
+ val actual = readXml(ByteArrayInputStream(src.toByteArray(Charsets.UTF_8)))
+ assertEquals("failed parsing bubbles from xml\n$src", bubbles, actual)
+ }
+} \ No newline at end of file