Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2ec87b11 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Update more tests to use a real TableLogBuffer instead of a mock." into main

parents 784188cf ef2f5580
Loading
Loading
Loading
Loading
+3 −4
Original line number Original line Diff line number Diff line
@@ -31,12 +31,11 @@ import com.android.systemui.kosmos.applicationCoroutineScope
import com.android.systemui.kosmos.testDispatcher
import com.android.systemui.kosmos.testDispatcher
import com.android.systemui.kosmos.testScope
import com.android.systemui.kosmos.testScope
import com.android.systemui.log.core.FakeLogBuffer
import com.android.systemui.log.core.FakeLogBuffer
import com.android.systemui.log.table.TableLogBuffer
import com.android.systemui.log.table.logcatTableLogBuffer
import com.android.systemui.testKosmos
import com.android.systemui.testKosmos
import com.android.systemui.util.mockito.argumentCaptor
import com.android.systemui.util.mockito.argumentCaptor
import com.android.systemui.util.mockito.capture
import com.android.systemui.util.mockito.capture
import com.android.systemui.util.mockito.eq
import com.android.systemui.util.mockito.eq
import com.android.systemui.util.mockito.mock
import com.android.systemui.util.mockito.whenever
import com.android.systemui.util.mockito.whenever
import com.google.common.truth.Truth.assertThat
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -78,7 +77,7 @@ class ScreenBrightnessDisplayManagerRepositoryTest : SysuiTestCase() {
                displayId,
                displayId,
                displayManager,
                displayManager,
                FakeLogBuffer.Factory.create(),
                FakeLogBuffer.Factory.create(),
                mock<TableLogBuffer>(),
                logcatTableLogBuffer(kosmos, "screenBrightness"),
                kosmos.applicationCoroutineScope,
                kosmos.applicationCoroutineScope,
                kosmos.testDispatcher,
                kosmos.testDispatcher,
            )
            )
@@ -163,7 +162,7 @@ class ScreenBrightnessDisplayManagerRepositoryTest : SysuiTestCase() {


                changeBrightnessInfoAndNotify(
                changeBrightnessInfoAndNotify(
                    BrightnessInfo(0.5f, 0.1f, 0.7f),
                    BrightnessInfo(0.5f, 0.1f, 0.7f),
                    listenerCaptor.value
                    listenerCaptor.value,
                )
                )
                runCurrent()
                runCurrent()


+4 −5
Original line number Original line Diff line number Diff line
@@ -27,9 +27,8 @@ import com.android.systemui.brightness.shared.model.LinearBrightness
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.kosmos.applicationCoroutineScope
import com.android.systemui.kosmos.applicationCoroutineScope
import com.android.systemui.kosmos.testScope
import com.android.systemui.kosmos.testScope
import com.android.systemui.log.table.TableLogBuffer
import com.android.systemui.log.table.logcatTableLogBuffer
import com.android.systemui.testKosmos
import com.android.systemui.testKosmos
import com.android.systemui.util.mockito.mock
import com.google.common.truth.Truth.assertThat
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.runCurrent
import kotlinx.coroutines.test.runCurrent
@@ -49,7 +48,7 @@ class ScreenBrightnessInteractorTest : SysuiTestCase() {
            ScreenBrightnessInteractor(
            ScreenBrightnessInteractor(
                screenBrightnessRepository,
                screenBrightnessRepository,
                applicationCoroutineScope,
                applicationCoroutineScope,
                mock<TableLogBuffer>()
                logcatTableLogBuffer(this, "screenBrightness"),
            )
            )
        }
        }


@@ -112,7 +111,7 @@ class ScreenBrightnessInteractorTest : SysuiTestCase() {
                    BrightnessUtils.convertGammaToLinearFloat(
                    BrightnessUtils.convertGammaToLinearFloat(
                        gammaBrightness,
                        gammaBrightness,
                        min.floatValue,
                        min.floatValue,
                        max.floatValue
                        max.floatValue,
                    )
                    )
                assertThat(temporaryBrightness!!.floatValue)
                assertThat(temporaryBrightness!!.floatValue)
                    .isWithin(1e-5f)
                    .isWithin(1e-5f)
@@ -136,7 +135,7 @@ class ScreenBrightnessInteractorTest : SysuiTestCase() {
                    BrightnessUtils.convertGammaToLinearFloat(
                    BrightnessUtils.convertGammaToLinearFloat(
                        gammaBrightness,
                        gammaBrightness,
                        min.floatValue,
                        min.floatValue,
                        max.floatValue
                        max.floatValue,
                    )
                    )
                assertThat(brightness!!.floatValue).isWithin(1e-5f).of(expectedBrightness)
                assertThat(brightness!!.floatValue).isWithin(1e-5f).of(expectedBrightness)
            }
            }
+3 −7
Original line number Original line Diff line number Diff line
@@ -21,7 +21,7 @@ import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.SysuiTestCase
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.kosmos.testScope
import com.android.systemui.kosmos.testScope
import com.android.systemui.log.table.TableLogBuffer
import com.android.systemui.log.table.logcatTableLogBuffer
import com.android.systemui.media.controls.domain.pipeline.MediaDataManager
import com.android.systemui.media.controls.domain.pipeline.MediaDataManager
import com.android.systemui.media.controls.shared.model.MediaData
import com.android.systemui.media.controls.shared.model.MediaData
import com.android.systemui.testKosmos
import com.android.systemui.testKosmos
@@ -44,7 +44,6 @@ import org.mockito.kotlin.mock
class CommunalMediaRepositoryImplTest : SysuiTestCase() {
class CommunalMediaRepositoryImplTest : SysuiTestCase() {
    private val mediaDataManager = mock<MediaDataManager>()
    private val mediaDataManager = mock<MediaDataManager>()
    private val mediaData = mock<MediaData>()
    private val mediaData = mock<MediaData>()
    private val tableLogBuffer = mock<TableLogBuffer>()


    private lateinit var underTest: CommunalMediaRepositoryImpl
    private lateinit var underTest: CommunalMediaRepositoryImpl


@@ -52,14 +51,11 @@ class CommunalMediaRepositoryImplTest : SysuiTestCase() {


    private val kosmos = testKosmos()
    private val kosmos = testKosmos()
    private val testScope = kosmos.testScope
    private val testScope = kosmos.testScope
    private val tableLogBuffer = logcatTableLogBuffer(kosmos, "CommunalMediaRepositoryImplTest")


    @Before
    @Before
    fun setUp() {
    fun setUp() {
        underTest =
        underTest = CommunalMediaRepositoryImpl(mediaDataManager, tableLogBuffer)
            CommunalMediaRepositoryImpl(
                mediaDataManager,
                tableLogBuffer,
            )
    }
    }


    @Test
    @Test
+12 −29
Original line number Original line Diff line number Diff line
@@ -50,8 +50,8 @@ import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.flags.FakeFeatureFlagsClassic
import com.android.systemui.flags.FakeFeatureFlagsClassic
import com.android.systemui.flags.Flags
import com.android.systemui.flags.Flags
import com.android.systemui.log.LogBuffer
import com.android.systemui.log.LogBuffer
import com.android.systemui.log.table.TableLogBuffer
import com.android.systemui.log.table.TableLogBufferFactory
import com.android.systemui.log.table.TableLogBufferFactory
import com.android.systemui.log.table.logcatTableLogBuffer
import com.android.systemui.statusbar.connectivity.WifiPickerTrackerFactory
import com.android.systemui.statusbar.connectivity.WifiPickerTrackerFactory
import com.android.systemui.statusbar.pipeline.airplane.data.repository.FakeAirplaneModeRepository
import com.android.systemui.statusbar.pipeline.airplane.data.repository.FakeAirplaneModeRepository
import com.android.systemui.statusbar.pipeline.mobile.data.MobileInputLogger
import com.android.systemui.statusbar.pipeline.mobile.data.MobileInputLogger
@@ -66,6 +66,7 @@ import com.android.systemui.statusbar.pipeline.shared.data.repository.Connectivi
import com.android.systemui.statusbar.pipeline.shared.data.repository.ConnectivityRepositoryImpl
import com.android.systemui.statusbar.pipeline.shared.data.repository.ConnectivityRepositoryImpl
import com.android.systemui.statusbar.pipeline.wifi.data.repository.WifiRepository
import com.android.systemui.statusbar.pipeline.wifi.data.repository.WifiRepository
import com.android.systemui.statusbar.pipeline.wifi.data.repository.prod.WifiRepositoryImpl
import com.android.systemui.statusbar.pipeline.wifi.data.repository.prod.WifiRepositoryImpl
import com.android.systemui.testKosmos
import com.android.systemui.util.concurrency.FakeExecutor
import com.android.systemui.util.concurrency.FakeExecutor
import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.argumentCaptor
import com.android.systemui.util.mockito.argumentCaptor
@@ -104,6 +105,7 @@ import org.mockito.kotlin.whenever
// to run the callback and this makes the looper place nicely with TestScope etc.
// to run the callback and this makes the looper place nicely with TestScope etc.
@TestableLooper.RunWithLooper
@TestableLooper.RunWithLooper
class MobileConnectionsRepositoryTest : SysuiTestCase() {
class MobileConnectionsRepositoryTest : SysuiTestCase() {
    private val kosmos = testKosmos()


    private val flags =
    private val flags =
        FakeFeatureFlagsClassic().also { it.set(Flags.ROAMING_INDICATOR_VIA_DISPLAY_INFO, true) }
        FakeFeatureFlagsClassic().also { it.set(Flags.ROAMING_INDICATOR_VIA_DISPLAY_INFO, true) }
@@ -120,13 +122,13 @@ class MobileConnectionsRepositoryTest : SysuiTestCase() {
    @Mock private lateinit var subscriptionManager: SubscriptionManager
    @Mock private lateinit var subscriptionManager: SubscriptionManager
    @Mock private lateinit var telephonyManager: TelephonyManager
    @Mock private lateinit var telephonyManager: TelephonyManager
    @Mock private lateinit var logger: MobileInputLogger
    @Mock private lateinit var logger: MobileInputLogger
    @Mock private lateinit var summaryLogger: TableLogBuffer
    private val summaryLogger = logcatTableLogBuffer(kosmos, "summaryLogger")
    @Mock private lateinit var logBufferFactory: TableLogBufferFactory
    @Mock private lateinit var logBufferFactory: TableLogBufferFactory
    @Mock private lateinit var updateMonitor: KeyguardUpdateMonitor
    @Mock private lateinit var updateMonitor: KeyguardUpdateMonitor
    @Mock private lateinit var wifiManager: WifiManager
    @Mock private lateinit var wifiManager: WifiManager
    @Mock private lateinit var wifiPickerTrackerFactory: WifiPickerTrackerFactory
    @Mock private lateinit var wifiPickerTrackerFactory: WifiPickerTrackerFactory
    @Mock private lateinit var wifiPickerTracker: WifiPickerTracker
    @Mock private lateinit var wifiPickerTracker: WifiPickerTracker
    @Mock private lateinit var wifiTableLogBuffer: TableLogBuffer
    private val wifiTableLogBuffer = logcatTableLogBuffer(kosmos, "wifiTableLog")


    private val mobileMappings = FakeMobileMappingsProxy()
    private val mobileMappings = FakeMobileMappingsProxy()
    private val subscriptionManagerProxy = FakeSubscriptionManagerProxy()
    private val subscriptionManagerProxy = FakeSubscriptionManagerProxy()
@@ -153,7 +155,7 @@ class MobileConnectionsRepositoryTest : SysuiTestCase() {
        }
        }


        whenever(logBufferFactory.getOrCreate(anyString(), anyInt())).thenAnswer { _ ->
        whenever(logBufferFactory.getOrCreate(anyString(), anyInt())).thenAnswer { _ ->
            mock<TableLogBuffer>()
            logcatTableLogBuffer(kosmos, "test")
        }
        }


        whenever(wifiPickerTrackerFactory.create(any(), capture(wifiPickerTrackerCallback), any()))
        whenever(wifiPickerTrackerFactory.create(any(), capture(wifiPickerTrackerCallback), any()))
@@ -606,10 +608,7 @@ class MobileConnectionsRepositoryTest : SysuiTestCase() {


            // WHEN an appropriate intent gets sent out
            // WHEN an appropriate intent gets sent out
            val intent = serviceStateIntent(subId = -1)
            val intent = serviceStateIntent(subId = -1)
            fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
            fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(context, intent)
                context,
                intent,
            )
            runCurrent()
            runCurrent()


            // THEN the repo's state is updated despite no listeners
            // THEN the repo's state is updated despite no listeners
@@ -636,10 +635,7 @@ class MobileConnectionsRepositoryTest : SysuiTestCase() {


            // GIVEN a broadcast goes out for the appropriate subID
            // GIVEN a broadcast goes out for the appropriate subID
            val intent = serviceStateIntent(subId = -1)
            val intent = serviceStateIntent(subId = -1)
            fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
            fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(context, intent)
                context,
                intent,
            )
            runCurrent()
            runCurrent()


            // THEN the device is in ECM, because one of the service states is
            // THEN the device is in ECM, because one of the service states is
@@ -666,10 +662,7 @@ class MobileConnectionsRepositoryTest : SysuiTestCase() {


            // GIVEN a broadcast goes out for the appropriate subID
            // GIVEN a broadcast goes out for the appropriate subID
            val intent = serviceStateIntent(subId = -1)
            val intent = serviceStateIntent(subId = -1)
            fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
            fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(context, intent)
                context,
                intent,
            )
            runCurrent()
            runCurrent()


            // THEN the device is in ECM, because one of the service states is
            // THEN the device is in ECM, because one of the service states is
@@ -820,17 +813,9 @@ class MobileConnectionsRepositoryTest : SysuiTestCase() {


            // Get repos to trigger creation
            // Get repos to trigger creation
            underTest.getRepoForSubId(SUB_1_ID)
            underTest.getRepoForSubId(SUB_1_ID)
            verify(logBufferFactory)
            verify(logBufferFactory).getOrCreate(eq(tableBufferLogName(SUB_1_ID)), anyInt())
                .getOrCreate(
                    eq(tableBufferLogName(SUB_1_ID)),
                    anyInt(),
                )
            underTest.getRepoForSubId(SUB_2_ID)
            underTest.getRepoForSubId(SUB_2_ID)
            verify(logBufferFactory)
            verify(logBufferFactory).getOrCreate(eq(tableBufferLogName(SUB_2_ID)), anyInt())
                .getOrCreate(
                    eq(tableBufferLogName(SUB_2_ID)),
                    anyInt(),
                )
        }
        }


    @Test
    @Test
@@ -1578,9 +1563,7 @@ class MobileConnectionsRepositoryTest : SysuiTestCase() {
         * To properly mimic telephony manager, create a service state, and then turn it into an
         * To properly mimic telephony manager, create a service state, and then turn it into an
         * intent
         * intent
         */
         */
        private fun serviceStateIntent(
        private fun serviceStateIntent(subId: Int): Intent {
            subId: Int,
        ): Intent {
            return Intent(Intent.ACTION_SERVICE_STATE).apply {
            return Intent(Intent.ACTION_SERVICE_STATE).apply {
                putExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, subId)
                putExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, subId)
            }
            }
+6 −4
Original line number Original line Diff line number Diff line
@@ -26,19 +26,20 @@ import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.SysuiTestCase
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.log.LogBuffer
import com.android.systemui.log.LogBuffer
import com.android.systemui.log.table.TableLogBuffer
import com.android.systemui.log.table.logcatTableLogBuffer
import com.android.systemui.statusbar.connectivity.WifiPickerTrackerFactory
import com.android.systemui.statusbar.connectivity.WifiPickerTrackerFactory
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
import com.android.systemui.statusbar.pipeline.wifi.data.repository.prod.WifiRepositoryImpl.Companion.WIFI_NETWORK_DEFAULT
import com.android.systemui.statusbar.pipeline.wifi.data.repository.prod.WifiRepositoryImpl.Companion.WIFI_NETWORK_DEFAULT
import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiScanEntry
import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiScanEntry
import com.android.systemui.testKosmos
import com.android.systemui.util.concurrency.FakeExecutor
import com.android.systemui.util.concurrency.FakeExecutor
import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.argumentCaptor
import com.android.systemui.util.mockito.argumentCaptor
import com.android.systemui.util.mockito.capture
import com.android.systemui.util.mockito.capture
import com.android.systemui.util.mockito.mock
import com.android.systemui.util.mockito.mock
import com.android.systemui.util.mockito.whenever
import com.android.systemui.util.mockito.whenever
import com.android.systemui.util.time.FakeSystemClock
import com.android.systemui.util.time.fakeSystemClock
import com.android.wifitrackerlib.HotspotNetworkEntry
import com.android.wifitrackerlib.HotspotNetworkEntry
import com.android.wifitrackerlib.HotspotNetworkEntry.DeviceType
import com.android.wifitrackerlib.HotspotNetworkEntry.DeviceType
import com.android.wifitrackerlib.MergedCarrierEntry
import com.android.wifitrackerlib.MergedCarrierEntry
@@ -67,6 +68,7 @@ import org.mockito.Mockito.verify
@SmallTest
@SmallTest
@TestableLooper.RunWithLooper(setAsMainLooper = true)
@TestableLooper.RunWithLooper(setAsMainLooper = true)
class WifiRepositoryImplTest : SysuiTestCase() {
class WifiRepositoryImplTest : SysuiTestCase() {
    private val kosmos = testKosmos()


    // Using lazy means that the class will only be constructed once it's fetched. Because the
    // Using lazy means that the class will only be constructed once it's fetched. Because the
    // repository internally sets some values on construction, we need to set up some test
    // repository internally sets some values on construction, we need to set up some test
@@ -84,9 +86,9 @@ class WifiRepositoryImplTest : SysuiTestCase() {
        )
        )
    }
    }


    private val executor = FakeExecutor(FakeSystemClock())
    private val executor = FakeExecutor(kosmos.fakeSystemClock)
    private val logger = LogBuffer("name", maxSize = 100, logcatEchoTracker = mock())
    private val logger = LogBuffer("name", maxSize = 100, logcatEchoTracker = mock())
    private val tableLogger = mock<TableLogBuffer>()
    private val tableLogger = logcatTableLogBuffer(kosmos, "WifiRepositoryImplTest")
    private val wifiManager =
    private val wifiManager =
        mock<WifiManager>().apply { whenever(this.maxSignalLevel).thenReturn(10) }
        mock<WifiManager>().apply { whenever(this.maxSignalLevel).thenReturn(10) }
    private val wifiPickerTrackerFactory = mock<WifiPickerTrackerFactory>()
    private val wifiPickerTrackerFactory = mock<WifiPickerTrackerFactory>()
Loading