Merge "Prevent NPE in ControlsListingControllerImpl" into rvc-dev am: 976c089ff7

Change-Id: I87db275ef69031ceb273cfec8eb92e2688970c08
This commit is contained in:
Fabian Kozynski
2020-05-05 13:54:54 +00:00
committed by Automerger Merge Worker
2 changed files with 19 additions and 3 deletions

View File

@@ -66,6 +66,8 @@ class ControlsListingControllerImpl @VisibleForTesting constructor(
)
private var serviceListing = serviceListingBuilder(context)
// All operations in background thread
private val callbacks = mutableSetOf<ControlsListingController.ControlsListingCallback>()
companion object {
private const val TAG = "ControlsListingControllerImpl"
@@ -116,9 +118,6 @@ class ControlsListingControllerImpl @VisibleForTesting constructor(
}
}
// All operations in background thread
private val callbacks = mutableSetOf<ControlsListingController.ControlsListingCallback>()
/**
* Adds a callback to this controller.
*

View File

@@ -38,10 +38,12 @@ import org.mockito.Mock
import org.mockito.Mockito
import org.mockito.Mockito.`when`
import org.mockito.Mockito.inOrder
import org.mockito.Mockito.mock
import org.mockito.Mockito.never
import org.mockito.Mockito.reset
import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations
import java.util.concurrent.Executor
@SmallTest
@RunWith(AndroidTestingRunner::class)
@@ -103,6 +105,21 @@ class ControlsListingControllerImplTest : SysuiTestCase() {
verify(mockSL).reload()
}
@Test
fun testImmediateListingReload_doesNotCrash() {
val exec = Executor { it.run() }
val mockServiceListing = mock(ServiceListing::class.java)
var callback: ServiceListing.Callback? = null
`when`(mockServiceListing.addCallback(any<ServiceListing.Callback>())).then {
callback = it.getArgument(0)
Unit
}
`when`(mockServiceListing.reload()).then {
callback?.onServicesReloaded(listOf(serviceInfo))
}
ControlsListingControllerImpl(mContext, exec, { mockServiceListing })
}
@Test
fun testStartsOnUser() {
assertEquals(user, controller.currentUserId)