• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
15 import logging
16 import time
17 
18 from bluetooth_test import bluetooth_base_test
19 from mobly import asserts
20 from utilities.media_utils import MediaUtils
21 from utilities.common_utils import CommonUtils
22 from utilities.main_utils import common_main
23 from utilities.video_utils_service import VideoRecording
24 
25 
26 class IsMediaSynchronizedForReconnectedDevice(bluetooth_base_test.BluetoothBaseTest):
27 
28     def setup_class(self):
29         super().setup_class()
30         self.media_utils = MediaUtils(self.target, self.discoverer)
31         self.common_utils = CommonUtils(self.target, self.discoverer)
32 
33     def setup_test(self):
34         self.common_utils.grant_local_mac_address_permission()
35         logging.info("\tInitializing video services on Target")
36         self.video_utils_service_target = VideoRecording(self.target,self.__class__.__name__)
37         logging.info("Enabling video recording for phone Target")
38         self.video_utils_service_target.enable_screen_recording()
39         self.common_utils.enable_wifi_on_phone_device()
40         self.bt_utils.pair_primary_to_secondary()
41 
42     def test_is_media_synchronized_after_reconnect_device(self):
43         """Tests validating is Media data synchronized after reconnect device"""
44         # Validate current song is playing on both devices
45         self.media_utils.open_media_app_on_hu()
46         self.media_utils.open_youtube_music_app()
47         current_phone_song_title = self.media_utils.get_song_title_from_phone()
48         current_hu_song_title = self.media_utils.get_song_title_from_hu()
49         asserts.assert_true(current_phone_song_title == current_hu_song_title,
50                             'Invalid song titles. '
51                             'Song title on phone device and HU should be the same')
52 
53         # Disable BT on HU
54         self.call_utils.open_bluetooth_palette()
55         self.bt_utils.click_on_use_bluetooth_toggle()
56         self.call_utils.open_bluetooth_palette()
57         # Assert <Bluetooth Audio disconnected> label is present
58         asserts.assert_true(self.call_utils.is_bluetooth_audio_disconnected_label_visible(),
59                             '<Bluetooth Audio disconnected> label should be present')
60         # Close <Bluetooth Audio disconnected> page
61         self.media_utils.click_on_cancel_bt_audio_connection_button_on_hu()
62         # Enable BT on HU
63         self.discoverer.mbs.btEnable()
64         self.call_utils.wait_with_log(5)
65         # Assert <Bluetooth Audio disconnected> label is NOT present
66         asserts.assert_false(self.call_utils.is_bluetooth_audio_disconnected_label_visible(),
67                              '<Bluetooth Audio disconnected> label should be present')
68         # Assert song title same on both devices after reconnect
69         current_next_phone_song_title = self.media_utils.get_song_title_from_phone()
70         current_next_hu_song_title = self.media_utils.get_song_title_from_hu()
71         asserts.assert_true(current_next_phone_song_title == current_next_hu_song_title,
72                             'Invalid song titles. '
73                             'Song title on phone device and HU should be the same')
74 
75     def teardown_test(self):
76         #  Close YouTube Music app
77         self.media_utils.close_youtube_music_app()
78         self.call_utils.press_home()
79         logging.info("Stopping the screen recording on Target")
80         self.video_utils_service_target.stop_screen_recording()
81         logging.info("Pull the screen recording from Target")
82         self.video_utils_service_target.pull_recording_file(self.log_path)
83         logging.info("delete the screen recording from the Target")
84         self.video_utils_service_target.delete_screen_recording_from_device()
85         super().teardown_test()
86 
87 
88 if __name__ == '__main__':
89     common_main()
90