15e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan// Copyright 2016 The Android Open Source Project 25e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan// 35e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan// Licensed under the Apache License, Version 2.0 (the "License"); 45e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan// you may not use this file except in compliance with the License. 55e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan// You may obtain a copy of the License at 65e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan// 75e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan// http://www.apache.org/licenses/LICENSE-2.0 85e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan// 95e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan// Unless required by applicable law or agreed to in writing, software 105e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan// distributed under the License is distributed on an "AS IS" BASIS, 115e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 125e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan// See the License for the specific language governing permissions and 135e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan// limitations under the License. 145e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan// 155e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan 165e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan// Mock of AudioDeviceHandler. 175e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan 185e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan#ifndef BRILLO_AUDIO_AUDIOSERVICE_TEST_AUDIO_DEVICE_HANDLER_MOCK_H_ 195e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan#define BRILLO_AUDIO_AUDIOSERVICE_TEST_AUDIO_DEVICE_HANDLER_MOCK_H_ 205e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan 215e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan#include <base/files/file_path.h> 225e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan#include <gmock/gmock.h> 235e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan#include <gtest/gtest_prod.h> 245e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan#include <system/audio.h> 255e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan#include <system/audio_policy.h> 265e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan 275e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan#include "audio_device_handler.h" 285e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan 295e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathannamespace brillo { 305e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan 315e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathanclass AudioDeviceHandlerMock : public AudioDeviceHandler { 325e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan public: 335e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan AudioDeviceHandlerMock() = default; 345e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan ~AudioDeviceHandlerMock() {} 355e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan 365e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan // Reset all local data. 375e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan void Reset() { 385e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan connected_input_devices_.clear(); 395e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan connected_output_devices_.clear(); 405e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan headphone_ = false; 415e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan microphone_ = false; 425e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan } 435e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan 445e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan private: 455e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan friend class AudioDeviceHandlerTest; 465e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, 475e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan DisconnectAllSupportedDevicesCallsDisconnect); 485e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, InitCallsDisconnectAllSupportedDevices); 495e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, InitialAudioStateMic); 505e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, InitialAudioStateHeadphone); 515e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, InitialAudioStateHeadset); 525e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, InitialAudioStateNone); 535e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, InitialAudioStateInvalid); 545e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, InitCallsDisconnect); 555e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, ProcessEventEmpty); 565e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, ProcessEventMicrophonePresent); 575e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, ProcessEventHeadphonePresent); 585e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, ProcessEventMicrophoneNotPresent); 595e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, ProcessEventHeadphoneNotPresent); 605e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, ProcessEventInvalid); 615e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, UpdateAudioSystemNone); 625e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, UpdateAudioSystemConnectMic); 635e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, UpdateAudioSystemConnectHeadphone); 645e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, UpdateAudioSystemConnectHeadset); 655e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, UpdateAudioSystemDisconnectMic); 665e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, UpdateAudioSystemDisconnectHeadphone); 675e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, UpdateAudioSystemDisconnectHeadset); 685e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, ConnectAudioDeviceInput); 695e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, ConnectAudioDeviceOutput); 705e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, DisconnectAudioDeviceInput); 715e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan FRIEND_TEST(AudioDeviceHandlerTest, DisconnectAudioDeviceOutput); 725e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan 735e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan MOCK_METHOD2(NotifyAudioPolicyService, 745e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan void(audio_devices_t device, audio_policy_dev_state_t state)); 75b3d2a54300808bfe93b5dadfcc2b75b6347e5adaRalph Nathan MOCK_METHOD1(TriggerCallback, void(DeviceConnectionState)); 765e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan}; 775e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan 785e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan} // namespace brillo 795e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan 805e788b5ea5a8d47bb96b3a0ab9fbac8a89e94174Ralph Nathan#endif // BRILLO_AUDIO_AUDIOSERVICE_TEST_AUDIO_DEVICE_HANDLER_MOCK_H_ 81