summaryrefslogtreecommitdiff
path: root/Settings/tests/robotests/src/com/android/tv/settings/device/displaysound/AdvancedVolumeFragmentTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'Settings/tests/robotests/src/com/android/tv/settings/device/displaysound/AdvancedVolumeFragmentTest.java')
-rw-r--r--Settings/tests/robotests/src/com/android/tv/settings/device/displaysound/AdvancedVolumeFragmentTest.java97
1 files changed, 96 insertions, 1 deletions
diff --git a/Settings/tests/robotests/src/com/android/tv/settings/device/displaysound/AdvancedVolumeFragmentTest.java b/Settings/tests/robotests/src/com/android/tv/settings/device/displaysound/AdvancedVolumeFragmentTest.java
index 569219e93..a1ce37670 100644
--- a/Settings/tests/robotests/src/com/android/tv/settings/device/displaysound/AdvancedVolumeFragmentTest.java
+++ b/Settings/tests/robotests/src/com/android/tv/settings/device/displaysound/AdvancedVolumeFragmentTest.java
@@ -61,7 +61,8 @@ import java.util.stream.IntStream;
@RunWith(RobolectricTestRunner.class)
public class AdvancedVolumeFragmentTest {
- @Spy private AudioManager mAudioManager;
+ @Spy
+ private AudioManager mAudioManager;
@Before
public void setUp() {
@@ -161,6 +162,100 @@ public class AdvancedVolumeFragmentTest {
}
@Test
+ public void testOnPreferenceTreeClick_withDTSFormatsDisabled_disablesFormatInAudioManager() {
+ Map<Integer, Boolean> formats = ImmutableMap.of(
+ AudioFormat.ENCODING_DTS_HD, true,
+ AudioFormat.ENCODING_DTS_HD_MA, true,
+ AudioFormat.ENCODING_DTS_UHD_P1, true,
+ AudioFormat.ENCODING_DTS_UHD_P2, true);
+ List<Integer> reportedFormats = Arrays.asList(
+ AudioFormat.ENCODING_DTS_HD,
+ AudioFormat.ENCODING_DTS_HD_MA,
+ AudioFormat.ENCODING_DTS_UHD_P1,
+ AudioFormat.ENCODING_DTS_UHD_P2);
+ AdvancedVolumeFragment fragment =
+ createAdvancedVolumeFragmentWithAudioManagerReturning(formats, reportedFormats);
+
+ Preference preference = fragment.findPreference(KEY_SURROUND_SOUND_MANUAL);
+ fragment.onPreferenceTreeClick(preference);
+
+ SwitchPreference pref = (SwitchPreference) fragment.findPreference(
+ KEY_SURROUND_SOUND_FORMAT_PREFIX + AudioFormat.ENCODING_DTS_HD);
+ pref.setChecked(false);
+ fragment.onPreferenceTreeClick(pref);
+
+ pref = (SwitchPreference) fragment.findPreference(
+ KEY_SURROUND_SOUND_FORMAT_PREFIX + AudioFormat.ENCODING_DTS_UHD_P1);
+ pref.setChecked(false);
+ fragment.onPreferenceTreeClick(pref);
+
+ ArgumentCaptor<Integer> audioFormat = ArgumentCaptor.forClass(Integer.class);
+ ArgumentCaptor<Boolean> formatEnabled = ArgumentCaptor.forClass(Boolean.class);
+ verify(mAudioManager, times(8)).setSurroundFormatEnabled(
+ audioFormat.capture(), formatEnabled.capture());
+ List<Integer> expectedFormats = Arrays.asList(
+ AudioFormat.ENCODING_DTS_HD,
+ AudioFormat.ENCODING_DTS_HD_MA,
+ AudioFormat.ENCODING_DTS_UHD_P1,
+ AudioFormat.ENCODING_DTS_UHD_P2,
+ AudioFormat.ENCODING_DTS_HD,
+ AudioFormat.ENCODING_DTS_HD_MA,
+ AudioFormat.ENCODING_DTS_UHD_P1,
+ AudioFormat.ENCODING_DTS_UHD_P2);
+ List<Boolean> expectedValues = Arrays.asList(
+ true, true, true, true, false, false, false, false);
+ assertThat(audioFormat.getAllValues()).containsExactlyElementsIn(expectedFormats);
+ assertThat(formatEnabled.getAllValues()).containsExactlyElementsIn(expectedValues);
+ }
+
+ @Test
+ public void testOnPreferenceTreeClick_withDTSFormatsEnabled_enablesFormatInAudioManager() {
+ Map<Integer, Boolean> formats = ImmutableMap.of(
+ AudioFormat.ENCODING_DTS_HD, false,
+ AudioFormat.ENCODING_DTS_HD_MA, false,
+ AudioFormat.ENCODING_DTS_UHD_P1, false,
+ AudioFormat.ENCODING_DTS_UHD_P2, false);
+ List<Integer> reportedFormats = Arrays.asList(
+ AudioFormat.ENCODING_DTS_HD,
+ AudioFormat.ENCODING_DTS_HD_MA,
+ AudioFormat.ENCODING_DTS_UHD_P1,
+ AudioFormat.ENCODING_DTS_UHD_P2);
+ AdvancedVolumeFragment fragment =
+ createAdvancedVolumeFragmentWithAudioManagerReturning(formats, reportedFormats);
+
+ Preference preference = fragment.findPreference(KEY_SURROUND_SOUND_MANUAL);
+ fragment.onPreferenceTreeClick(preference);
+
+ SwitchPreference pref = (SwitchPreference) fragment.findPreference(
+ KEY_SURROUND_SOUND_FORMAT_PREFIX + AudioFormat.ENCODING_DTS_HD);
+ pref.setChecked(true);
+ fragment.onPreferenceTreeClick(pref);
+
+ pref = (SwitchPreference) fragment.findPreference(
+ KEY_SURROUND_SOUND_FORMAT_PREFIX + AudioFormat.ENCODING_DTS_UHD_P1);
+ pref.setChecked(true);
+ fragment.onPreferenceTreeClick(pref);
+
+ ArgumentCaptor<Integer> audioFormat = ArgumentCaptor.forClass(Integer.class);
+ ArgumentCaptor<Boolean> formatEnabled = ArgumentCaptor.forClass(Boolean.class);
+ verify(mAudioManager, times(8)).setSurroundFormatEnabled(
+ audioFormat.capture(), formatEnabled.capture());
+ List<Integer> expectedFormats = Arrays.asList(
+ AudioFormat.ENCODING_DTS_HD,
+ AudioFormat.ENCODING_DTS_HD_MA,
+ AudioFormat.ENCODING_DTS_UHD_P1,
+ AudioFormat.ENCODING_DTS_UHD_P2,
+ AudioFormat.ENCODING_DTS_HD,
+ AudioFormat.ENCODING_DTS_HD_MA,
+ AudioFormat.ENCODING_DTS_UHD_P1,
+ AudioFormat.ENCODING_DTS_UHD_P2);
+ List<Boolean> expectedValues = Arrays.asList(
+ true, true, true, true, true, true, true, true);
+ assertThat(audioFormat.getAllValues()).containsExactlyElementsIn(expectedFormats);
+ assertThat(formatEnabled.getAllValues()).containsExactlyElementsIn(expectedValues);
+ }
+
+ @Test
public void testGetPreferenceScreen_whenManual_returnsFormatsInCorrectPreferenceGroup() {
Map<Integer, Boolean> formats = ImmutableMap.of(
AudioFormat.ENCODING_DTS, true,