Loading packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/irecording/IssueRecordingDataInteractorTest.kt +12 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.qs.tiles.impl.irecording import android.os.Handler import android.os.UserHandle import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest Loading @@ -28,6 +29,7 @@ import com.android.systemui.qs.tiles.base.interactor.DataUpdateTrigger import com.android.systemui.recordissue.IssueRecordingState import com.android.systemui.settings.fakeUserFileManager import com.android.systemui.settings.userTracker import com.android.systemui.util.settings.fakeGlobalSettings import com.google.common.truth.Truth import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.flowOf Loading @@ -51,7 +53,14 @@ class IssueRecordingDataInteractorTest : SysuiTestCase() { @Before fun setup() { state = IssueRecordingState(userTracker, userFileManager) state = IssueRecordingState( userTracker, userFileManager, Handler.getMain(), mContext.contentResolver, kosmos.fakeGlobalSettings, ) underTest = IssueRecordingDataInteractor(state, kosmos.testScope.testScheduler) } Loading @@ -67,10 +76,12 @@ class IssueRecordingDataInteractorTest : SysuiTestCase() { Truth.assertThat(data?.isRecording).isFalse() state.isRecording = true state.onRecordingChangeListener.onChange(true) runCurrent() Truth.assertThat(data?.isRecording).isTrue() state.isRecording = false state.onRecordingChangeListener.onChange(true) runCurrent() Truth.assertThat(data?.isRecording).isFalse() } Loading packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/irecording/IssueRecordingUserActionInteractorTest.kt +9 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.qs.tiles.impl.irecording import android.os.Handler import android.os.UserHandle import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest Loading @@ -38,6 +39,7 @@ import com.android.systemui.settings.userFileManager import com.android.systemui.settings.userTracker import com.android.systemui.statusbar.phone.KeyguardDismissUtil import com.android.systemui.statusbar.policy.keyguardStateController import com.android.systemui.util.settings.fakeGlobalSettings import com.google.common.truth.Truth import kotlinx.coroutines.test.runTest import org.junit.Before Loading Loading @@ -83,7 +85,13 @@ class IssueRecordingUserActionInteractorTest : SysuiTestCase() { underTest = IssueRecordingUserActionInteractor( testDispatcher, IssueRecordingState(userTracker, userFileManager), IssueRecordingState( userTracker, userFileManager, Handler.getMain(), mContext.contentResolver, kosmos.fakeGlobalSettings, ), KeyguardDismissUtil( keyguardStateController, statusBarStateController, Loading packages/SystemUI/multivalentTests/src/com/android/systemui/recordissue/IssueRecordingServiceSessionTest.kt +9 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.recordissue import android.app.IActivityManager import android.app.NotificationManager import android.net.Uri import android.os.Handler import android.os.UserHandle import android.testing.TestableLooper import androidx.test.ext.junit.runners.AndroidJUnit4 Loading @@ -33,6 +34,7 @@ import com.android.systemui.qs.pipeline.domain.interactor.PanelInteractor import com.android.systemui.settings.UserContextProvider import com.android.systemui.settings.userFileManager import com.android.systemui.settings.userTracker import com.android.systemui.util.settings.fakeGlobalSettings import com.android.traceur.TraceConfig import com.google.common.truth.Truth import org.junit.Before Loading @@ -55,7 +57,13 @@ class IssueRecordingServiceSessionTest : SysuiTestCase() { private val dialogTransitionAnimator: DialogTransitionAnimator = kosmos.dialogTransitionAnimator private lateinit var traceurConnection: TraceurConnection private val issueRecordingState = IssueRecordingState(kosmos.userTracker, kosmos.userFileManager) IssueRecordingState( kosmos.userTracker, kosmos.userFileManager, Handler.getMain(), mContext.contentResolver, kosmos.fakeGlobalSettings, ) private val iActivityManager = mock<IActivityManager>() private val notificationManager = mock<NotificationManager>() Loading packages/SystemUI/multivalentTests/src/com/android/systemui/recordissue/IssueRecordingStateTest.kt +60 −24 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.recordissue import android.content.ContentResolver import android.os.Handler import android.testing.TestableLooper import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest Loading @@ -23,11 +25,15 @@ import com.android.systemui.SysuiTestCase import com.android.systemui.kosmos.Kosmos import com.android.systemui.settings.userFileManager import com.android.systemui.settings.userTracker import com.android.systemui.util.settings.fakeGlobalSettings import com.google.common.truth.Truth import java.util.concurrent.CountDownLatch import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mock import org.mockito.MockitoAnnotations import org.mockito.kotlin.any import org.mockito.kotlin.verify @SmallTest @RunWith(AndroidJUnit4::class) Loading @@ -36,10 +42,19 @@ class IssueRecordingStateTest : SysuiTestCase() { private val kosmos = Kosmos() private lateinit var underTest: IssueRecordingState @Mock private lateinit var resolver: ContentResolver @Before fun setup() { underTest = IssueRecordingState(kosmos.userTracker, kosmos.userFileManager) MockitoAnnotations.initMocks(this) underTest = IssueRecordingState( kosmos.userTracker, kosmos.userFileManager, Handler.getMain(), resolver, kosmos.fakeGlobalSettings, ) } @Test Loading @@ -47,7 +62,14 @@ class IssueRecordingStateTest : SysuiTestCase() { val expected = true underTest.takeBugreport = expected underTest = IssueRecordingState(kosmos.userTracker, kosmos.userFileManager) underTest = IssueRecordingState( kosmos.userTracker, kosmos.userFileManager, Handler.getMain(), resolver, kosmos.fakeGlobalSettings, ) Truth.assertThat(underTest.takeBugreport).isEqualTo(expected) } Loading @@ -57,7 +79,14 @@ class IssueRecordingStateTest : SysuiTestCase() { val expected = true underTest.recordScreen = expected underTest = IssueRecordingState(kosmos.userTracker, kosmos.userFileManager) underTest = IssueRecordingState( kosmos.userTracker, kosmos.userFileManager, Handler.getMain(), resolver, kosmos.fakeGlobalSettings, ) Truth.assertThat(underTest.recordScreen).isEqualTo(expected) } Loading @@ -65,7 +94,14 @@ class IssueRecordingStateTest : SysuiTestCase() { @Test fun hasUserApprovedScreenRecording_isTrue_afterBeingMarkedAsCompleted() { underTest.markUserApprovalForScreenRecording() underTest = IssueRecordingState(kosmos.userTracker, kosmos.userFileManager) underTest = IssueRecordingState( kosmos.userTracker, kosmos.userFileManager, Handler.getMain(), resolver, kosmos.fakeGlobalSettings, ) Truth.assertThat(underTest.hasUserApprovedScreenRecording).isEqualTo(true) } Loading @@ -75,35 +111,35 @@ class IssueRecordingStateTest : SysuiTestCase() { val expected = setOf("a", "b", "c") underTest.tagTitles = expected underTest = IssueRecordingState(kosmos.userTracker, kosmos.userFileManager) underTest = IssueRecordingState( kosmos.userTracker, kosmos.userFileManager, Handler.getMain(), resolver, kosmos.fakeGlobalSettings, ) Truth.assertThat(underTest.tagTitles).isEqualTo(expected) } @Test fun isRecording_callsListeners_onTheValueChanging() { val count = CountDownLatch(1) val listener = Runnable { count.countDown() } fun addListener_registersContentObserver_ifListOfListenersIsNotEmpty() { val listener = Runnable { /* No-op */ } underTest.addListener(listener) underTest.isRecording = true Truth.assertThat(count.count).isEqualTo(0) verify(resolver).registerContentObserver(any(), any(), any()) } @Test fun isRecording_callsOnlyListeners_whoHaveNotBeenRemoved() { val count1 = CountDownLatch(1) val count2 = CountDownLatch(1) val listener1 = Runnable { count1.countDown() } val listener2 = Runnable { count2.countDown() } underTest.addListener(listener1) underTest.removeListener(listener1) underTest.addListener(listener2) underTest.isRecording = true Truth.assertThat(count1.count).isEqualTo(1) Truth.assertThat(count2.count).isEqualTo(0) fun removeListener_unRegistersContentObserver_ifListOfListenersIsEmpty() { val listener = Runnable { /* No-op */ } underTest.addListener(listener) underTest.removeListener(listener) verify(resolver).registerContentObserver(any(), any(), any()) verify(resolver).unregisterContentObserver(any()) } } packages/SystemUI/src/com/android/systemui/qs/tiles/RecordIssueTile.kt +6 −4 Original line number Diff line number Diff line Loading @@ -111,12 +111,14 @@ constructor( override fun handleSetListening(listening: Boolean) { super.handleSetListening(listening) bgExecutor.execute { if (listening) { issueRecordingState.addListener(onRecordingChangeListener) } else { issueRecordingState.removeListener(onRecordingChangeListener) } } } override fun handleDestroy() { super.handleDestroy() Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/irecording/IssueRecordingDataInteractorTest.kt +12 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.qs.tiles.impl.irecording import android.os.Handler import android.os.UserHandle import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest Loading @@ -28,6 +29,7 @@ import com.android.systemui.qs.tiles.base.interactor.DataUpdateTrigger import com.android.systemui.recordissue.IssueRecordingState import com.android.systemui.settings.fakeUserFileManager import com.android.systemui.settings.userTracker import com.android.systemui.util.settings.fakeGlobalSettings import com.google.common.truth.Truth import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.flowOf Loading @@ -51,7 +53,14 @@ class IssueRecordingDataInteractorTest : SysuiTestCase() { @Before fun setup() { state = IssueRecordingState(userTracker, userFileManager) state = IssueRecordingState( userTracker, userFileManager, Handler.getMain(), mContext.contentResolver, kosmos.fakeGlobalSettings, ) underTest = IssueRecordingDataInteractor(state, kosmos.testScope.testScheduler) } Loading @@ -67,10 +76,12 @@ class IssueRecordingDataInteractorTest : SysuiTestCase() { Truth.assertThat(data?.isRecording).isFalse() state.isRecording = true state.onRecordingChangeListener.onChange(true) runCurrent() Truth.assertThat(data?.isRecording).isTrue() state.isRecording = false state.onRecordingChangeListener.onChange(true) runCurrent() Truth.assertThat(data?.isRecording).isFalse() } Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/irecording/IssueRecordingUserActionInteractorTest.kt +9 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.qs.tiles.impl.irecording import android.os.Handler import android.os.UserHandle import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest Loading @@ -38,6 +39,7 @@ import com.android.systemui.settings.userFileManager import com.android.systemui.settings.userTracker import com.android.systemui.statusbar.phone.KeyguardDismissUtil import com.android.systemui.statusbar.policy.keyguardStateController import com.android.systemui.util.settings.fakeGlobalSettings import com.google.common.truth.Truth import kotlinx.coroutines.test.runTest import org.junit.Before Loading Loading @@ -83,7 +85,13 @@ class IssueRecordingUserActionInteractorTest : SysuiTestCase() { underTest = IssueRecordingUserActionInteractor( testDispatcher, IssueRecordingState(userTracker, userFileManager), IssueRecordingState( userTracker, userFileManager, Handler.getMain(), mContext.contentResolver, kosmos.fakeGlobalSettings, ), KeyguardDismissUtil( keyguardStateController, statusBarStateController, Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/recordissue/IssueRecordingServiceSessionTest.kt +9 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.recordissue import android.app.IActivityManager import android.app.NotificationManager import android.net.Uri import android.os.Handler import android.os.UserHandle import android.testing.TestableLooper import androidx.test.ext.junit.runners.AndroidJUnit4 Loading @@ -33,6 +34,7 @@ import com.android.systemui.qs.pipeline.domain.interactor.PanelInteractor import com.android.systemui.settings.UserContextProvider import com.android.systemui.settings.userFileManager import com.android.systemui.settings.userTracker import com.android.systemui.util.settings.fakeGlobalSettings import com.android.traceur.TraceConfig import com.google.common.truth.Truth import org.junit.Before Loading @@ -55,7 +57,13 @@ class IssueRecordingServiceSessionTest : SysuiTestCase() { private val dialogTransitionAnimator: DialogTransitionAnimator = kosmos.dialogTransitionAnimator private lateinit var traceurConnection: TraceurConnection private val issueRecordingState = IssueRecordingState(kosmos.userTracker, kosmos.userFileManager) IssueRecordingState( kosmos.userTracker, kosmos.userFileManager, Handler.getMain(), mContext.contentResolver, kosmos.fakeGlobalSettings, ) private val iActivityManager = mock<IActivityManager>() private val notificationManager = mock<NotificationManager>() Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/recordissue/IssueRecordingStateTest.kt +60 −24 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.recordissue import android.content.ContentResolver import android.os.Handler import android.testing.TestableLooper import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest Loading @@ -23,11 +25,15 @@ import com.android.systemui.SysuiTestCase import com.android.systemui.kosmos.Kosmos import com.android.systemui.settings.userFileManager import com.android.systemui.settings.userTracker import com.android.systemui.util.settings.fakeGlobalSettings import com.google.common.truth.Truth import java.util.concurrent.CountDownLatch import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mock import org.mockito.MockitoAnnotations import org.mockito.kotlin.any import org.mockito.kotlin.verify @SmallTest @RunWith(AndroidJUnit4::class) Loading @@ -36,10 +42,19 @@ class IssueRecordingStateTest : SysuiTestCase() { private val kosmos = Kosmos() private lateinit var underTest: IssueRecordingState @Mock private lateinit var resolver: ContentResolver @Before fun setup() { underTest = IssueRecordingState(kosmos.userTracker, kosmos.userFileManager) MockitoAnnotations.initMocks(this) underTest = IssueRecordingState( kosmos.userTracker, kosmos.userFileManager, Handler.getMain(), resolver, kosmos.fakeGlobalSettings, ) } @Test Loading @@ -47,7 +62,14 @@ class IssueRecordingStateTest : SysuiTestCase() { val expected = true underTest.takeBugreport = expected underTest = IssueRecordingState(kosmos.userTracker, kosmos.userFileManager) underTest = IssueRecordingState( kosmos.userTracker, kosmos.userFileManager, Handler.getMain(), resolver, kosmos.fakeGlobalSettings, ) Truth.assertThat(underTest.takeBugreport).isEqualTo(expected) } Loading @@ -57,7 +79,14 @@ class IssueRecordingStateTest : SysuiTestCase() { val expected = true underTest.recordScreen = expected underTest = IssueRecordingState(kosmos.userTracker, kosmos.userFileManager) underTest = IssueRecordingState( kosmos.userTracker, kosmos.userFileManager, Handler.getMain(), resolver, kosmos.fakeGlobalSettings, ) Truth.assertThat(underTest.recordScreen).isEqualTo(expected) } Loading @@ -65,7 +94,14 @@ class IssueRecordingStateTest : SysuiTestCase() { @Test fun hasUserApprovedScreenRecording_isTrue_afterBeingMarkedAsCompleted() { underTest.markUserApprovalForScreenRecording() underTest = IssueRecordingState(kosmos.userTracker, kosmos.userFileManager) underTest = IssueRecordingState( kosmos.userTracker, kosmos.userFileManager, Handler.getMain(), resolver, kosmos.fakeGlobalSettings, ) Truth.assertThat(underTest.hasUserApprovedScreenRecording).isEqualTo(true) } Loading @@ -75,35 +111,35 @@ class IssueRecordingStateTest : SysuiTestCase() { val expected = setOf("a", "b", "c") underTest.tagTitles = expected underTest = IssueRecordingState(kosmos.userTracker, kosmos.userFileManager) underTest = IssueRecordingState( kosmos.userTracker, kosmos.userFileManager, Handler.getMain(), resolver, kosmos.fakeGlobalSettings, ) Truth.assertThat(underTest.tagTitles).isEqualTo(expected) } @Test fun isRecording_callsListeners_onTheValueChanging() { val count = CountDownLatch(1) val listener = Runnable { count.countDown() } fun addListener_registersContentObserver_ifListOfListenersIsNotEmpty() { val listener = Runnable { /* No-op */ } underTest.addListener(listener) underTest.isRecording = true Truth.assertThat(count.count).isEqualTo(0) verify(resolver).registerContentObserver(any(), any(), any()) } @Test fun isRecording_callsOnlyListeners_whoHaveNotBeenRemoved() { val count1 = CountDownLatch(1) val count2 = CountDownLatch(1) val listener1 = Runnable { count1.countDown() } val listener2 = Runnable { count2.countDown() } underTest.addListener(listener1) underTest.removeListener(listener1) underTest.addListener(listener2) underTest.isRecording = true Truth.assertThat(count1.count).isEqualTo(1) Truth.assertThat(count2.count).isEqualTo(0) fun removeListener_unRegistersContentObserver_ifListOfListenersIsEmpty() { val listener = Runnable { /* No-op */ } underTest.addListener(listener) underTest.removeListener(listener) verify(resolver).registerContentObserver(any(), any(), any()) verify(resolver).unregisterContentObserver(any()) } }
packages/SystemUI/src/com/android/systemui/qs/tiles/RecordIssueTile.kt +6 −4 Original line number Diff line number Diff line Loading @@ -111,12 +111,14 @@ constructor( override fun handleSetListening(listening: Boolean) { super.handleSetListening(listening) bgExecutor.execute { if (listening) { issueRecordingState.addListener(onRecordingChangeListener) } else { issueRecordingState.removeListener(onRecordingChangeListener) } } } override fun handleDestroy() { super.handleDestroy() Loading