1#  Copyright (C) 2023 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
15import logging
16
17from bluetooth_test import bluetooth_base_test
18from mobly import asserts
19from utilities.media_utils import MediaUtils
20from utilities.common_utils import CommonUtils
21from utilities.main_utils import common_main
22from utilities.video_utils_service import VideoRecording
23
24
25class IsAbleToPlayMediaFromWidgetTest(bluetooth_base_test.BluetoothBaseTest):
26
27    def setup_class(self):
28        super().setup_class()
29        self.media_utils = MediaUtils(self.target, self.discoverer)
30        self.common_utils = CommonUtils(self.target, self.discoverer)
31
32    def setup_test(self):
33        self.common_utils.grant_local_mac_address_permission()
34        logging.info("\tInitializing video services on Target")
35        self.video_utils_service_target = VideoRecording(self.target,self.__class__.__name__)
36        logging.info("Enabling video recording for phone Target")
37        self.video_utils_service_target.enable_screen_recording()
38        self.common_utils.enable_wifi_on_phone_device()
39        self.bt_utils.pair_primary_to_secondary()
40
41    def test_media_is_song_playing(self):
42        """Tests validating play/pause media on HU"""
43        self.media_utils.open_media_app_on_hu()
44        self.media_utils.open_youtube_music_app()
45        logging.info("Getting song title from phone device: %s", self.media_utils.get_song_title_from_phone())
46        self.media_utils.press_pause_song_button()
47        asserts.assert_false(self.media_utils.is_song_playing_on_hu(),
48                             'Media player should be on PAUSE mode')
49        self.media_utils.play_media_on_hu()
50        asserts.assert_true(self.media_utils.is_song_playing_on_hu(),
51                            'Media player should be on PLAY mode')
52
53    def teardown_test(self):
54        #   Close YouTube Music app
55        self.media_utils.close_youtube_music_app()
56        self.call_utils.press_home()
57        logging.info("Stopping the screen recording on Target")
58        self.video_utils_service_target.stop_screen_recording()
59        logging.info("Pull the screen recording from Target")
60        self.video_utils_service_target.pull_recording_file(self.log_path)
61        logging.info("delete the screen recording from the Target")
62        self.video_utils_service_target.delete_screen_recording_from_device()
63        super().teardown_test()
64
65
66if __name__ == '__main__':
67    common_main()
68