summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Wenyu Zhang <zhangwenyu@google.com> 2024-10-16 14:33:49 +0000
committer Wenyu Zhang <zhangwenyu@google.com> 2024-10-16 14:33:49 +0000
commite8f934d8ce771ddf63b10ab5a0d17e8cbc3ac90f (patch)
treea333fa7a79fb3b6bf146d764db533a76a9c58f1a
parentffda9a50c92dea3fa7f0435e2b3d1c5313a6fb30 (diff)
Add test to AudioSlidersInteractor
Test in call mode, the voice call stream should be above the music stream. Change-Id: Ia30fa177379d1a5f5fb9f1d2a05d6ad7d5ffca42 Bug: b/373729625 Test: AudioSlidersInteractorTest Flag: EXEMPT add test
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/volume/panel/component/volume/domain/interactor/AudioSlidersInteractorTest.kt94
1 files changed, 94 insertions, 0 deletions
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/volume/panel/component/volume/domain/interactor/AudioSlidersInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/volume/panel/component/volume/domain/interactor/AudioSlidersInteractorTest.kt
new file mode 100644
index 000000000000..7361de7d21b0
--- /dev/null
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/volume/panel/component/volume/domain/interactor/AudioSlidersInteractorTest.kt
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2024 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.volume.panel.component.volume.domain.interactor
+
+import android.media.AudioManager
+import android.testing.TestableLooper
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.settingslib.volume.shared.model.AudioStream
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.coroutines.collectLastValue
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.testScope
+import com.android.systemui.testKosmos
+import com.android.systemui.volume.data.repository.audioRepository
+import com.android.systemui.volume.panel.component.volume.domain.model.SliderType
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.test.runCurrent
+import kotlinx.coroutines.test.runTest
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@OptIn(ExperimentalCoroutinesApi::class)
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+@TestableLooper.RunWithLooper(setAsMainLooper = true)
+class AudioSlidersInteractorTest : SysuiTestCase() {
+
+ private val kosmos = testKosmos()
+
+ private lateinit var underTest: AudioSlidersInteractor
+
+ @Before
+ fun setUp() =
+ with(kosmos) {
+ audioRepository.setMode(AudioManager.MODE_NORMAL)
+ underTest = audioSlidersInteractor
+ }
+
+ @Test
+ fun shouldAddAllStreams_notInCall() =
+ with(kosmos) {
+ testScope.runTest {
+ val sliders by collectLastValue(underTest.volumePanelSliders)
+ runCurrent()
+
+ assertThat(sliders).isEqualTo(
+ mutableListOf(
+ AudioManager.STREAM_MUSIC,
+ AudioManager.STREAM_VOICE_CALL,
+ AudioManager.STREAM_RING,
+ AudioManager.STREAM_NOTIFICATION,
+ AudioManager.STREAM_ALARM
+ ).map { SliderType.Stream(AudioStream(it)) })
+ }
+ }
+
+ @Test
+ fun shouldAddAllStreams_inCall() =
+ with(kosmos) {
+ testScope.runTest {
+ audioRepository.setMode(AudioManager.MODE_IN_CALL)
+
+ val sliders by collectLastValue(underTest.volumePanelSliders)
+ runCurrent()
+
+ // Call stream is before music stream while in call.
+ assertThat(sliders).isEqualTo(
+ mutableListOf(
+ AudioManager.STREAM_VOICE_CALL,
+ AudioManager.STREAM_MUSIC,
+ AudioManager.STREAM_RING,
+ AudioManager.STREAM_NOTIFICATION,
+ AudioManager.STREAM_ALARM
+ ).map { SliderType.Stream(AudioStream(it)) })
+ }
+ }
+}