Amy | 2a6c3dc | 2018-06-05 17:31:55 -0700 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (C) 2018 The Android Open Source Project |
| 3 | * |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | * you may not use this file except in compliance with the License. |
| 6 | * You may obtain a copy of the License at |
| 7 | * |
| 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
| 9 | * |
| 10 | * Unless required by applicable law or agreed to in writing, software |
| 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
| 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. |
| 15 | */ |
| 16 | package com.android.server.hdmi; |
| 17 | |
| 18 | import static com.android.server.hdmi.Constants.ADDR_AUDIO_SYSTEM; |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 19 | import static com.android.server.hdmi.Constants.ADDR_BROADCAST; |
Amy | 2a6c3dc | 2018-06-05 17:31:55 -0700 | [diff] [blame] | 20 | import static com.android.server.hdmi.Constants.ADDR_TV; |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 21 | import static com.android.server.hdmi.HdmiControlService.INITIATED_BY_ENABLE_CEC; |
Amy | b887fa0 | 2018-06-21 11:22:13 -0700 | [diff] [blame] | 22 | import static com.android.server.hdmi.HdmiControlService.STANDBY_SCREEN_OFF; |
Amy | 6506bd6 | 2018-07-02 17:29:36 -0700 | [diff] [blame] | 23 | import static com.google.common.truth.Truth.assertThat; |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 24 | import static junit.framework.Assert.assertFalse; |
Amy | 2a6c3dc | 2018-06-05 17:31:55 -0700 | [diff] [blame] | 25 | import static junit.framework.Assert.assertTrue; |
| 26 | import static junit.framework.Assert.assertEquals; |
| 27 | |
| 28 | import android.media.AudioManager; |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 29 | import android.os.Looper; |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 30 | import android.os.test.TestLooper; |
Amy | 2a6c3dc | 2018-06-05 17:31:55 -0700 | [diff] [blame] | 31 | import android.support.test.filters.SmallTest; |
Nick Chalko | 7206f3b | 2018-06-19 10:17:03 -0700 | [diff] [blame] | 32 | |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 33 | import java.util.ArrayList; |
Amy | 2a6c3dc | 2018-06-05 17:31:55 -0700 | [diff] [blame] | 34 | import org.junit.Before; |
| 35 | import org.junit.Test; |
| 36 | import org.junit.runner.RunWith; |
| 37 | import org.junit.runners.JUnit4; |
| 38 | |
| 39 | @SmallTest |
| 40 | @RunWith(JUnit4.class) |
| 41 | /** |
| 42 | * Tests for {@link HdmiCecLocalDeviceAudioSystem} class. |
| 43 | */ |
| 44 | public class HdmiCecLocalDeviceAudioSystemTest { |
| 45 | |
Amy | b887fa0 | 2018-06-21 11:22:13 -0700 | [diff] [blame] | 46 | private static final String TAG = "HdmiCecLocalDeviceAudioSystemTest"; |
Amy | 2a6c3dc | 2018-06-05 17:31:55 -0700 | [diff] [blame] | 47 | private HdmiControlService mHdmiControlService; |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 48 | private HdmiCecController mHdmiCecController; |
Amy | 2a6c3dc | 2018-06-05 17:31:55 -0700 | [diff] [blame] | 49 | private HdmiCecLocalDeviceAudioSystem mHdmiCecLocalDeviceAudioSystem; |
Nick Chalko | 7206f3b | 2018-06-19 10:17:03 -0700 | [diff] [blame] | 50 | private FakeNativeWrapper mNativeWrapper; |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 51 | private Looper mMyLooper; |
| 52 | private TestLooper mTestLooper = new TestLooper(); |
| 53 | private ArrayList<HdmiCecLocalDevice> mLocalDevices = new ArrayList<>(); |
Amy | 2a6c3dc | 2018-06-05 17:31:55 -0700 | [diff] [blame] | 54 | private int mMusicVolume; |
| 55 | private int mMusicMaxVolume; |
| 56 | private boolean mMusicMute; |
Amy | 0fd41e3 | 2018-06-21 13:40:27 -0700 | [diff] [blame] | 57 | private boolean isAwake; |
Amy | 2a6c3dc | 2018-06-05 17:31:55 -0700 | [diff] [blame] | 58 | |
| 59 | @Before |
| 60 | public void SetUp() { |
Amy | 0fd41e3 | 2018-06-21 13:40:27 -0700 | [diff] [blame] | 61 | isAwake = false; |
Amy | 2a6c3dc | 2018-06-05 17:31:55 -0700 | [diff] [blame] | 62 | mHdmiControlService = new HdmiControlService(null) { |
| 63 | @Override |
| 64 | AudioManager getAudioManager() { |
| 65 | return new AudioManager() { |
| 66 | @Override |
| 67 | public int getStreamVolume(int streamType) { |
| 68 | switch (streamType) { |
| 69 | case STREAM_MUSIC: |
| 70 | return mMusicVolume; |
| 71 | default: |
| 72 | return 0; |
| 73 | } |
| 74 | } |
| 75 | |
| 76 | @Override |
| 77 | public boolean isStreamMute(int streamType) { |
| 78 | switch (streamType) { |
| 79 | case STREAM_MUSIC: |
| 80 | return mMusicMute; |
| 81 | default: |
| 82 | return false; |
| 83 | } |
| 84 | } |
| 85 | |
| 86 | @Override |
| 87 | public int getStreamMaxVolume(int streamType) { |
| 88 | switch (streamType) { |
| 89 | case STREAM_MUSIC: |
| 90 | return mMusicMaxVolume; |
| 91 | default: |
| 92 | return 100; |
| 93 | } |
| 94 | } |
Amy | 2a6c3dc | 2018-06-05 17:31:55 -0700 | [diff] [blame] | 95 | |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 96 | @Override |
| 97 | public void adjustStreamVolume(int streamType, int direction, int flags) { |
| 98 | switch (streamType) { |
| 99 | case STREAM_MUSIC: |
| 100 | if (direction == AudioManager.ADJUST_UNMUTE) { |
| 101 | mMusicMute = false; |
| 102 | } else if (direction == AudioManager.ADJUST_MUTE) { |
| 103 | mMusicMute = true; |
| 104 | } |
| 105 | default: |
| 106 | } |
| 107 | } |
| 108 | }; |
Amy | 2a6c3dc | 2018-06-05 17:31:55 -0700 | [diff] [blame] | 109 | } |
Amy | 0fd41e3 | 2018-06-21 13:40:27 -0700 | [diff] [blame] | 110 | |
| 111 | @Override |
| 112 | void wakeUp() { |
| 113 | isAwake = true; |
| 114 | } |
Amy | 2a6c3dc | 2018-06-05 17:31:55 -0700 | [diff] [blame] | 115 | }; |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 116 | mMyLooper = mTestLooper.getLooper(); |
Amy | 2a6c3dc | 2018-06-05 17:31:55 -0700 | [diff] [blame] | 117 | mHdmiCecLocalDeviceAudioSystem = new HdmiCecLocalDeviceAudioSystem(mHdmiControlService); |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 118 | mHdmiCecLocalDeviceAudioSystem.init(); |
| 119 | mHdmiControlService.setIoLooper(mMyLooper); |
| 120 | |
Nick Chalko | 7206f3b | 2018-06-19 10:17:03 -0700 | [diff] [blame] | 121 | mNativeWrapper = new FakeNativeWrapper(); |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 122 | mHdmiCecController = HdmiCecController.createWithNativeWrapper( |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 123 | mHdmiControlService, mNativeWrapper); |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 124 | mHdmiControlService.setCecController(mHdmiCecController); |
| 125 | mHdmiControlService.setHdmiMhlController(HdmiMhlControllerStub.create(mHdmiControlService)); |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 126 | mHdmiControlService.setMessageValidator(new HdmiCecMessageValidator(mHdmiControlService)); |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 127 | |
| 128 | mLocalDevices.add(mHdmiCecLocalDeviceAudioSystem); |
| 129 | mHdmiControlService.initPortInfo(); |
Amy | fc56efb | 2018-07-09 16:37:07 -0700 | [diff] [blame] | 130 | // No TV device interacts with AVR so system audio control won't be turned on here |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 131 | mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC); |
| 132 | |
| 133 | mTestLooper.dispatchAll(); |
Amy | 2a6c3dc | 2018-06-05 17:31:55 -0700 | [diff] [blame] | 134 | } |
| 135 | |
| 136 | @Test |
| 137 | public void handleGiveAudioStatus_volume_10_mute_true() { |
| 138 | mMusicVolume = 10; |
| 139 | mMusicMute = true; |
| 140 | mMusicMaxVolume = 20; |
| 141 | int scaledVolume = VolumeControlAction.scaleToCecVolume(10, mMusicMaxVolume); |
| 142 | HdmiCecMessage expectMessage = HdmiCecMessageBuilder.buildReportAudioStatus( |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 143 | ADDR_AUDIO_SYSTEM, ADDR_TV, scaledVolume, true); |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 144 | HdmiCecMessage messageGive = HdmiCecMessageBuilder.buildGiveAudioStatus( |
Amy | 2a6c3dc | 2018-06-05 17:31:55 -0700 | [diff] [blame] | 145 | ADDR_TV, ADDR_AUDIO_SYSTEM); |
Amy | 2a6c3dc | 2018-06-05 17:31:55 -0700 | [diff] [blame] | 146 | |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 147 | assertTrue(mHdmiCecLocalDeviceAudioSystem.handleGiveAudioStatus(messageGive)); |
| 148 | mTestLooper.dispatchAll(); |
| 149 | assertEquals(expectMessage, mNativeWrapper.getResultMessage()); |
Amy | 2a6c3dc | 2018-06-05 17:31:55 -0700 | [diff] [blame] | 150 | } |
Amy | 87eda82 | 2018-06-06 17:56:39 -0700 | [diff] [blame] | 151 | |
| 152 | @Test |
Amy | fc56efb | 2018-07-09 16:37:07 -0700 | [diff] [blame] | 153 | public void handleGiveSystemAudioModeStatus_originalOff() { |
Amy | 87eda82 | 2018-06-06 17:56:39 -0700 | [diff] [blame] | 154 | HdmiCecMessage expectMessage = HdmiCecMessageBuilder |
Amy | fc56efb | 2018-07-09 16:37:07 -0700 | [diff] [blame] | 155 | .buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, false); |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 156 | HdmiCecMessage messageGive = HdmiCecMessageBuilder |
Amy | 87eda82 | 2018-06-06 17:56:39 -0700 | [diff] [blame] | 157 | .buildGiveSystemAudioModeStatus(ADDR_TV, ADDR_AUDIO_SYSTEM); |
Amy | 87eda82 | 2018-06-06 17:56:39 -0700 | [diff] [blame] | 158 | |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 159 | assertTrue(mHdmiCecLocalDeviceAudioSystem.handleGiveSystemAudioModeStatus(messageGive)); |
| 160 | mTestLooper.dispatchAll(); |
| 161 | assertEquals(expectMessage, mNativeWrapper.getResultMessage()); |
Amy | 87eda82 | 2018-06-06 17:56:39 -0700 | [diff] [blame] | 162 | } |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 163 | |
| 164 | @Test |
| 165 | public void handleRequestArcInitiate() { |
| 166 | // TODO(b/80296911): Add tests when finishing handler impl. |
| 167 | HdmiCecMessage expectMessage = HdmiCecMessageBuilder |
| 168 | .buildInitiateArc(ADDR_AUDIO_SYSTEM, ADDR_TV); |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 169 | HdmiCecMessage message = HdmiCecMessageBuilder |
| 170 | .buildRequestArcInitiation(ADDR_TV, ADDR_AUDIO_SYSTEM); |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 171 | |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 172 | assertTrue(mHdmiCecLocalDeviceAudioSystem.handleRequestArcInitiate(message)); |
| 173 | mTestLooper.dispatchAll(); |
| 174 | assertEquals(expectMessage, mNativeWrapper.getResultMessage()); |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 175 | } |
| 176 | |
| 177 | @Test |
| 178 | public void handleRequestArcTermination() { |
| 179 | // TODO(b/80297105): Add tests when finishing handler impl. |
| 180 | HdmiCecMessage expectMessage = HdmiCecMessageBuilder |
| 181 | .buildTerminateArc(ADDR_AUDIO_SYSTEM, ADDR_TV); |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 182 | HdmiCecMessage messageRequestOff = HdmiCecMessageBuilder |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 183 | .buildRequestArcTermination(ADDR_TV, ADDR_AUDIO_SYSTEM); |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 184 | |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 185 | assertTrue(mHdmiCecLocalDeviceAudioSystem.handleRequestArcTermination(messageRequestOff)); |
| 186 | mTestLooper.dispatchAll(); |
| 187 | assertEquals(expectMessage, mNativeWrapper.getResultMessage()); |
| 188 | } |
| 189 | |
| 190 | @Test |
Amy | fc56efb | 2018-07-09 16:37:07 -0700 | [diff] [blame] | 191 | public void handleSetSystemAudioMode_setOn_orignalOff() { |
| 192 | mMusicMute = true; |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 193 | HdmiCecMessage messageSet = HdmiCecMessageBuilder |
Amy | fc56efb | 2018-07-09 16:37:07 -0700 | [diff] [blame] | 194 | .buildSetSystemAudioMode(ADDR_TV, ADDR_AUDIO_SYSTEM, true); |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 195 | HdmiCecMessage messageGive = HdmiCecMessageBuilder |
| 196 | .buildGiveSystemAudioModeStatus(ADDR_TV, ADDR_AUDIO_SYSTEM); |
| 197 | |
Amy | fc56efb | 2018-07-09 16:37:07 -0700 | [diff] [blame] | 198 | // Check if originally off |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 199 | HdmiCecMessage expectMessage = HdmiCecMessageBuilder |
Amy | fc56efb | 2018-07-09 16:37:07 -0700 | [diff] [blame] | 200 | .buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, false); |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 201 | |
| 202 | assertTrue(mHdmiCecLocalDeviceAudioSystem.handleGiveSystemAudioModeStatus(messageGive)); |
| 203 | mTestLooper.dispatchAll(); |
| 204 | assertEquals(expectMessage, mNativeWrapper.getResultMessage()); |
| 205 | |
Amy | fc56efb | 2018-07-09 16:37:07 -0700 | [diff] [blame] | 206 | // Check if correctly turned on |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 207 | expectMessage = HdmiCecMessageBuilder |
Amy | fc56efb | 2018-07-09 16:37:07 -0700 | [diff] [blame] | 208 | .buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, true); |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 209 | |
| 210 | assertTrue(mHdmiCecLocalDeviceAudioSystem.handleSetSystemAudioMode(messageSet)); |
| 211 | mTestLooper.dispatchAll(); |
| 212 | assertTrue(mHdmiCecLocalDeviceAudioSystem.handleGiveSystemAudioModeStatus(messageGive)); |
| 213 | mTestLooper.dispatchAll(); |
| 214 | assertEquals(expectMessage, mNativeWrapper.getResultMessage()); |
Amy | fc56efb | 2018-07-09 16:37:07 -0700 | [diff] [blame] | 215 | assertFalse(mMusicMute); |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 216 | } |
| 217 | |
| 218 | @Test |
Amy | 0fd41e3 | 2018-06-21 13:40:27 -0700 | [diff] [blame] | 219 | public void handleSystemAudioModeRequest_turnOffByTv() { |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 220 | assertFalse(mMusicMute); |
| 221 | |
| 222 | // Check if feature correctly turned off |
Amy | 0fd41e3 | 2018-06-21 13:40:27 -0700 | [diff] [blame] | 223 | HdmiCecMessage messageGive = HdmiCecMessageBuilder |
| 224 | .buildGiveSystemAudioModeStatus(ADDR_TV, ADDR_AUDIO_SYSTEM); |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 225 | HdmiCecMessage messageRequestOff = HdmiCecMessageBuilder |
| 226 | .buildSystemAudioModeRequest(ADDR_TV, ADDR_AUDIO_SYSTEM, 2, false); |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 227 | |
Amy | 0fd41e3 | 2018-06-21 13:40:27 -0700 | [diff] [blame] | 228 | HdmiCecMessage expectMessage = HdmiCecMessageBuilder |
| 229 | .buildSetSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 230 | assertTrue(mHdmiCecLocalDeviceAudioSystem.handleSystemAudioModeRequest(messageRequestOff)); |
| 231 | mTestLooper.dispatchAll(); |
Amy | 0fd41e3 | 2018-06-21 13:40:27 -0700 | [diff] [blame] | 232 | assertEquals(expectMessage, mNativeWrapper.getResultMessage()); |
| 233 | |
| 234 | expectMessage = HdmiCecMessageBuilder |
| 235 | .buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, false); |
Amy | 9b91e8c | 2018-06-11 17:26:26 -0700 | [diff] [blame] | 236 | assertTrue(mHdmiCecLocalDeviceAudioSystem.handleGiveSystemAudioModeStatus(messageGive)); |
| 237 | mTestLooper.dispatchAll(); |
| 238 | assertEquals(expectMessage, mNativeWrapper.getResultMessage()); |
| 239 | assertTrue(mMusicMute); |
Amy | 4e7ff1a | 2018-06-07 16:24:31 -0700 | [diff] [blame] | 240 | } |
Amy | b887fa0 | 2018-06-21 11:22:13 -0700 | [diff] [blame] | 241 | |
| 242 | @Test |
| 243 | public void onStandbyAudioSystem_currentSystemAudioControlOn() { |
| 244 | // Set system audio control on first |
| 245 | mHdmiCecLocalDeviceAudioSystem.setSystemAudioMode(true); |
| 246 | |
| 247 | // Check if standby correctly turns off the feature |
| 248 | mHdmiCecLocalDeviceAudioSystem.onStandby(false, STANDBY_SCREEN_OFF); |
| 249 | mTestLooper.dispatchAll(); |
| 250 | HdmiCecMessage expectMessage = HdmiCecMessageBuilder |
| 251 | .buildSetSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); |
| 252 | assertEquals(expectMessage, mNativeWrapper.getResultMessage()); |
| 253 | assertTrue(mMusicMute); |
| 254 | } |
Amy | 6506bd6 | 2018-07-02 17:29:36 -0700 | [diff] [blame] | 255 | |
| 256 | @Test |
| 257 | public void systemAudioControlOnPowerOn_alwaysOn() { |
| 258 | mHdmiCecLocalDeviceAudioSystem.removeAction( |
| 259 | SystemAudioInitiationActionFromAvr.class); |
| 260 | mHdmiCecLocalDeviceAudioSystem.systemAudioControlOnPowerOn( |
| 261 | Constants.ALWAYS_SYSTEM_AUDIO_CONTROL_ON_POWER_ON, true); |
| 262 | |
| 263 | assertThat(mHdmiCecLocalDeviceAudioSystem |
| 264 | .getActions(SystemAudioInitiationActionFromAvr.class)).isNotEmpty(); |
| 265 | } |
| 266 | |
| 267 | @Test |
| 268 | public void systemAudioControlOnPowerOn_neverOn() { |
| 269 | mHdmiCecLocalDeviceAudioSystem.removeAction( |
| 270 | SystemAudioInitiationActionFromAvr.class); |
| 271 | mHdmiCecLocalDeviceAudioSystem.systemAudioControlOnPowerOn( |
| 272 | Constants.NEVER_SYSTEM_AUDIO_CONTROL_ON_POWER_ON, false); |
| 273 | |
| 274 | assertThat(mHdmiCecLocalDeviceAudioSystem |
| 275 | .getActions(SystemAudioInitiationActionFromAvr.class)).isEmpty(); |
| 276 | } |
| 277 | |
| 278 | @Test |
| 279 | public void systemAudioControlOnPowerOn_useLastState_off() { |
| 280 | mHdmiCecLocalDeviceAudioSystem.removeAction( |
| 281 | SystemAudioInitiationActionFromAvr.class); |
| 282 | mHdmiCecLocalDeviceAudioSystem.systemAudioControlOnPowerOn( |
| 283 | Constants.USE_LAST_STATE_SYSTEM_AUDIO_CONTROL_ON_POWER_ON, false); |
| 284 | |
| 285 | assertThat(mHdmiCecLocalDeviceAudioSystem |
| 286 | .getActions(SystemAudioInitiationActionFromAvr.class)).isEmpty(); |
| 287 | } |
| 288 | |
| 289 | @Test |
| 290 | public void systemAudioControlOnPowerOn_useLastState_on() { |
| 291 | mHdmiCecLocalDeviceAudioSystem.removeAction( |
| 292 | SystemAudioInitiationActionFromAvr.class); |
| 293 | mHdmiCecLocalDeviceAudioSystem.systemAudioControlOnPowerOn( |
| 294 | Constants.USE_LAST_STATE_SYSTEM_AUDIO_CONTROL_ON_POWER_ON, true); |
| 295 | |
| 296 | assertThat(mHdmiCecLocalDeviceAudioSystem |
| 297 | .getActions(SystemAudioInitiationActionFromAvr.class)).isNotEmpty(); |
| 298 | } |
Amy | 2a6c3dc | 2018-06-05 17:31:55 -0700 | [diff] [blame] | 299 | } |