Fixing ControlsRequestDialogTest

ControlsRequestDialogTest was flaky because sometimes mocks were cleared (in SysuiTestCase's @AfterClass) before Activity was fully destroyed.
The solution here is to not use mock for BroadcastDispatcher and instead use FakeBroadcastDispatcher which just waits to be used.

Fixes: 214562366
Test: run ControlsRequestDialogTest 20 times locally without any failures
Change-Id: I7d7b932fe175b1e65c7ed21507b0c67a5f39dcfb
This commit is contained in:
Michal Brzezinski
2022-01-18 17:58:21 +00:00
parent 0eebf348e4
commit 7b422dc1a1

View File

@@ -32,7 +32,6 @@ import androidx.test.filters.MediumTest
import androidx.test.rule.ActivityTestRule
import androidx.test.runner.intercepting.SingleActivityFactory
import com.android.systemui.SysuiTestCase
import com.android.systemui.broadcast.BroadcastDispatcher
import com.android.systemui.controls.controller.ControlInfo
import com.android.systemui.controls.controller.ControlsController
import com.android.systemui.util.mockito.capture
@@ -70,8 +69,6 @@ class ControlsRequestDialogTest : SysuiTestCase() {
@Mock
private lateinit var listingController: ControlsListingController
@Mock
private lateinit var broadcastDispatcher: BroadcastDispatcher
@Mock
private lateinit var iIntentSender: IIntentSender
@Captor
private lateinit var captor: ArgumentCaptor<ControlInfo>
@@ -85,7 +82,7 @@ class ControlsRequestDialogTest : SysuiTestCase() {
override fun create(intent: Intent?): TestControlsRequestDialog {
return TestControlsRequestDialog(
controller,
broadcastDispatcher,
fakeBroadcastDispatcher,
listingController
)
}