1 // Copyright 2016 The Android Open Source Project
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //      http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 //
15 
16 // Mock of AudioDeviceHandler.
17 
18 #ifndef BRILLO_AUDIO_AUDIOSERVICE_TEST_AUDIO_DEVICE_HANDLER_MOCK_H_
19 #define BRILLO_AUDIO_AUDIOSERVICE_TEST_AUDIO_DEVICE_HANDLER_MOCK_H_
20 
21 #include <base/files/file_path.h>
22 #include <gmock/gmock.h>
23 #include <gtest/gtest_prod.h>
24 #include <system/audio.h>
25 #include <system/audio_policy.h>
26 
27 #include "audio_device_handler.h"
28 
29 namespace brillo {
30 
31 class AudioDeviceHandlerMock : public AudioDeviceHandler {
32  public:
33   AudioDeviceHandlerMock() = default;
~AudioDeviceHandlerMock()34   ~AudioDeviceHandlerMock() {}
35 
36   // Reset all local data.
Reset()37   void Reset() {
38     connected_input_devices_.clear();
39     connected_output_devices_.clear();
40     headphone_ = false;
41     microphone_ = false;
42   }
43 
44  private:
45   friend class AudioDeviceHandlerTest;
46   FRIEND_TEST(AudioDeviceHandlerTest,
47               DisconnectAllSupportedDevicesCallsDisconnect);
48   FRIEND_TEST(AudioDeviceHandlerTest, InitCallsDisconnectAllSupportedDevices);
49   FRIEND_TEST(AudioDeviceHandlerTest, InitialAudioStateMic);
50   FRIEND_TEST(AudioDeviceHandlerTest, InitialAudioStateHeadphone);
51   FRIEND_TEST(AudioDeviceHandlerTest, InitialAudioStateHeadset);
52   FRIEND_TEST(AudioDeviceHandlerTest, InitialAudioStateNone);
53   FRIEND_TEST(AudioDeviceHandlerTest, InitialAudioStateInvalid);
54   FRIEND_TEST(AudioDeviceHandlerTest, InitCallsDisconnect);
55   FRIEND_TEST(AudioDeviceHandlerTest, ProcessEventEmpty);
56   FRIEND_TEST(AudioDeviceHandlerTest, ProcessEventMicrophonePresent);
57   FRIEND_TEST(AudioDeviceHandlerTest, ProcessEventHeadphonePresent);
58   FRIEND_TEST(AudioDeviceHandlerTest, ProcessEventMicrophoneNotPresent);
59   FRIEND_TEST(AudioDeviceHandlerTest, ProcessEventHeadphoneNotPresent);
60   FRIEND_TEST(AudioDeviceHandlerTest, ProcessEventInvalid);
61   FRIEND_TEST(AudioDeviceHandlerTest, UpdateAudioSystemNone);
62   FRIEND_TEST(AudioDeviceHandlerTest, UpdateAudioSystemConnectMic);
63   FRIEND_TEST(AudioDeviceHandlerTest, UpdateAudioSystemConnectHeadphone);
64   FRIEND_TEST(AudioDeviceHandlerTest, UpdateAudioSystemConnectHeadset);
65   FRIEND_TEST(AudioDeviceHandlerTest, UpdateAudioSystemDisconnectMic);
66   FRIEND_TEST(AudioDeviceHandlerTest, UpdateAudioSystemDisconnectHeadphone);
67   FRIEND_TEST(AudioDeviceHandlerTest, UpdateAudioSystemDisconnectHeadset);
68   FRIEND_TEST(AudioDeviceHandlerTest, ConnectAudioDeviceInput);
69   FRIEND_TEST(AudioDeviceHandlerTest, ConnectAudioDeviceOutput);
70   FRIEND_TEST(AudioDeviceHandlerTest, DisconnectAudioDeviceInput);
71   FRIEND_TEST(AudioDeviceHandlerTest, DisconnectAudioDeviceOutput);
72 
73   MOCK_METHOD2(NotifyAudioPolicyService,
74                void(audio_devices_t device, audio_policy_dev_state_t state));
75   MOCK_METHOD1(TriggerCallback, void(DeviceConnectionState));
76 };
77 
78 }  // namespace brillo
79 
80 #endif  // BRILLO_AUDIO_AUDIOSERVICE_TEST_AUDIO_DEVICE_HANDLER_MOCK_H_
81