Merge "Persists bubbles to disk (part 5)" into rvc-dev am: 7e8d487ea4
Change-Id: I5dbdbb2a0f5235600ec2ffac9cc222ce486a67d3
This commit is contained in:
@@ -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())
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user