class VideoPlayBack(TestCaseBase): """ @summary: Test Video PlayBack """ def setUp(self): """ @summary: set up @return: None """ super(VideoPlayBack, self).setUp() self.d = g_common_obj.get_device() self._test_name = __name__ self.x = self.d.info["displayWidth"] self.y = self.d.info["displayHeight"] print "[Setup]: %s" % self._test_name g_common_obj.stop_app_am( "videoplayer.app.instrument.otc.intel.com.otcvideoplayer") # Unlock screen g_common_obj.adb_cmd_capture_msg("input keyevent 82") def tearDown(self): """ @summary: tear tearDown @return: None """ super(VideoPlayBack, self).tearDown() print "[Teardown]: %s" % self._test_name g_common_obj.stop_exp_handle() time.sleep(3) g_common_obj.stop_app_am( "videoplayer.app.instrument.otc.intel.com.otcvideoplayer") time.sleep(3) def appPrepare(self, case_name, model=1): self.cfg_file = os.path.join(os.environ.get('TEST_DATA_ROOT', ''), \ 'tests.tablet.mum_auto_video.conf') self.video = PhotosImpl(\ self.config.read(self.cfg_file, case_name)) g_common_obj.adb_cmd_capture_msg(" rm -rf /sdcard/DCIM/Camera/*") self.multimedia_handle = MultiMediaHandle() self.multimedia_setting = MultiMediaSetting(self.cfg_file) self.multimedia_setting.clearFolder(self.video.cfg.get("remove_video")) time.sleep(2) if model == 1: self.push_path = self.multimedia_setting.push_file( self.video.cfg.get("push_video"), self.video.cfg.get("datapath")) self.multimedia_setting.install_apk("video_apk") self.multimedia_setting.install_apk("alarm_apk") self.video.set_orientation_n() # Unlock screen g_common_obj.adb_cmd_capture_msg("input keyevent 82") def getNormalWifi(self): conf = self.config.read('tests.tablet.dut_init.conf', 'wifisetting') ssid = conf.get("ssid") passwd = conf.get("passwd") security = conf.get("security") print ssid, passwd, security return ssid, passwd, security def getRTPWifi(self): rtp_wifisetting = PhotosImpl( self.config.read(self.cfg_file, "rtp_wifisetting")) ssid = rtp_wifisetting.cfg.get("ssid") passwd = rtp_wifisetting.cfg.get("passwd") security = rtp_wifisetting.cfg.get("security") print ssid, passwd, security return ssid, passwd, security def launchRecordAPP(self): SystemUI().unlock_screen() for _ in range(3): g_common_obj.launch_app_am("com.intel.vpg.tool", \ "com.intel.vpg.tool.ConfActivity") time.sleep(3) if self.d(textContains="Vpg Media Tool").exists: return assert self.d( textContains="Vpg Media Tool").exists, "launch record app failed!" def wait_boot_completed(self, timeout=1000): ''' wait Android boot_completed args: timeout -- optional timeout in second, default 180s ''' count = 0 sleep_time = 5 while count < timeout: prop_val = adb.adb_cmd_capture_msg('getprop sys.boot_completed') if '1' in prop_val: print 'boot_completed' return count += sleep_time time.sleep(sleep_time) raise Exception('%ds timeout waiting for boot_completed' % timeout) def clickRecordButton(self): self.d(className="android.widget.Button").click() def deleteCameraRecordFile(self): cmd = "shell rm /storage/emulated/legacy/Android/data/com.example.android.camera2video/files/video.mp4" g_common_obj.adb_cmd_common(cmd) def checkCameraRecordFile(self, flag=1): cmd = "shell ls /storage/emulated/legacy/Android/data/com.example.android.camera2video/files/video.mp4" result = g_common_obj.adb_cmd_common(cmd) assert ("No such file or directory" not in result.stdout.read() ) == flag, "Record file status error! Flag=%s" % (flag) def enterBrowseVideo(self, path): self.d(className="android.widget.ImageButton").click() time.sleep(1) self.d(text="Browse Video").click() for _ in range(10): if self.d(textContains="Open").exists: break time.sleep(1) time.sleep(3) self.d.press.back() time.sleep(1) if self.multimedia_setting.getcheckIputMethod() != '': self.d.press.back() self.d(className="android.widget.EditText").set_text(path) time.sleep(1) if self.multimedia_setting.getcheckIputMethod() != '': self.d.press.back() self.d(text="OK").click() for _ in range(5): if self.d(text=path).exists: break time.sleep(5) assert self.d(text=path).exists, "can't enter path:%s" % path def setTimeToSec(self, time): time = time.split(":") i = 1 temp = 0 for s in time[::-1]: temp += int(s) * i i *= 60 return int(temp) def setRotation(self, mode): self.d(className="android.widget.ImageButton").click() time.sleep(1) self.d(text=mode).click() time.sleep(1) def videoPlayBack(self, push_path=""): if push_path == "": push_path = self.push_path return self.multimedia_handle.videoPlayBack(push_path) def streamingVideoPlayBack(self, path="", flag=1): if path == "": path = self.video.cfg.get("video_path") return self.multimedia_handle.streamingVideoPlayBack(path, flag) def checkVideoPlayBack(self, s=60): return self.multimedia_handle.checkVideoPlayBack(s) def checkVideoPlayBackWithComparePicture(self, stoptime, bigfileskiptime=0): return self.multimedia_handle.checkVideoPlayBackWithComparePicture( stoptime, bigfileskiptime) def checkVideoPlayBackComplete(self, s=900): return self.multimedia_handle.checkVideoPlayBackComplete(s) def checkVideoFileExist(self, file_name): assert self.d(text=file_name).exists, file_name + "file not find!" def deleteVideoFile(self, file_name): assert self.d(text=file_name).exists, file_name + "file not find!" self.d(text=file_name).long_click() time.sleep(1) self.d(text="Delete").click() time.sleep(1) self.d(text="Yes").click() time.sleep(1) assert not self.d( text=file_name).exists, file_name + "file delete failed!" def checkVideoDetail(self, file_name): assert self.d(text=file_name).exists, file_name + "file not find!" self.d(text=file_name).long_click() time.sleep(1) self.d(text="Detail").click() time.sleep(1) assert self.d( textContains=file_name).exists, file_name + "check detail failed!" def renameVideoFile(self, file_name, new_name): assert self.d(text=file_name).exists, file_name + "file not find!" self.d(text=file_name).long_click() time.sleep(1) self.d(text="Rename").click() for _ in range(10): if self.d(textContains="Open").exists: break time.sleep(1) time.sleep(3) if self.multimedia_setting.getcheckIputMethod() != '': self.d.press.back() self.d(className="android.widget.EditText").set_text(new_name) time.sleep(1) if self.multimedia_setting.getcheckIputMethod() != '': self.d.press.back() self.d(text="OK").click() time.sleep(1) assert self.d( textContains=new_name).exists, file_name + "check detail failed!" def interuptionVideoPlayBack(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name) self.multimedia_handle.launchVideoApp() time.sleep(2) self.videoPlayBack() self.checkVideoPlayBack() time.sleep(1) hardware = self.multimedia_setting.get_paltform_hardware() if 'bxtp_abl' or 'gordon_peak' in hardware: # For BXT use relay card press power to sleep self.multimedia_setting.pressPowerKey() time.sleep(10) self.multimedia_setting.pressPowerKey() # elif 'gordon_peak' in hardware: # self.logger.error("Case failed due OAM-48191: adb lost in host when resume from S3") # assert False, "case " + str(case_name) + " is Fail" else: self.d.press.power() time.sleep(2) self.d.press.power() self.lock = SystemUI() self.lock.unlock_screen() time.sleep(1) self.checkVideoPlayBack() print "case " + str(case_name) + " is pass" def interuptionStreamingVideoPlayBack(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name, 2) self.multimedia_handle.launchVideoApp() time.sleep(2) self.streamingVideoPlayBack() self.checkVideoPlayBack() time.sleep(1) hardware = self.multimedia_setting.get_paltform_hardware() if 'bxtp_abl' or 'gordon_peak' in hardware: # For BXT use relay card press power to sleep self.multimedia_setting.pressPowerKey() time.sleep(10) self.multimedia_setting.pressPowerKey() # elif 'gordon_peak' in hardware: # self.logger.error("Case failed due OAM-48191: adb lost in host when resume from S3") # assert False, "case " + str(case_name) + " is Fail" else: self.d.press.power() time.sleep(2) self.d.press.power() self.lock = SystemUI() self.lock.unlock_screen() time.sleep(1) self.checkVideoPlayBack() print "case " + str(case_name) + " is pass" def testVideoPlayBack(self, case_name): MultiMediaBasicTestCase().testVideoPlayBack(case_name) def testStreamingVideoPlayBack(self, case_name): MultiMediaBasicTestCase().testStreamingVideoPlayBack(case_name) def testRTPStreamingVideoPlayBack(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name, 2) self.multimedia_handle.launchVideoApp() time.sleep(2) self.streamingVideoPlayBack() self.checkVideoPlayBack() print "case " + str(case_name) + " is pass" def testStreamingVideoPlayBackWithPowerOff(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name, 2) self.multimedia_handle.launchVideoApp() time.sleep(2) self.streamingVideoPlayBack() self.checkVideoPlayBack() adb.reboot_device() self.wait_boot_completed() time.sleep(20) self.lock = SystemUI() self.lock.unlock_screen() print "case " + str(case_name) + " is pass" def streamingVideoPlayControlProcess(self, case_name): MultiMediaBasicTestCase().streamingVideoPlayControlProcessLong( case_name) def lowAndHighFramestreamingVideoPlayControlProcess(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name, 2) self.multimedia_handle.launchVideoApp() time.sleep(2) self.streamingVideoPlayBack() time.sleep(10) self.checkVideoPlayBack() self.d.press.volume_up() self.checkVideoPlayBack() self.d.press.volume_down() self.checkVideoPlayBack() self.multimedia_setting.set_play_time(0.5) self.checkVideoPlayBack() self.d(resourceId="android:id/rew").click() self.checkVideoPlayBack() # self.d(resourceId="android:id/ffwd").click() # self.checkVideoPlayBack() self.d(resourceId="android:id/pause").click() self.checkVideoPlayBack() self.d.press.home() self.multimedia_handle.launchVideoApp() time.sleep(2) self.streamingVideoPlayBack(self.video.cfg.get("video_path_2")) time.sleep(10) self.checkVideoPlayBack() self.d.press.volume_up() self.checkVideoPlayBack() self.d.press.volume_down() self.checkVideoPlayBack() self.multimedia_setting.set_play_time(0.5) self.checkVideoPlayBack() self.d(resourceId="android:id/rew").click() self.checkVideoPlayBack() # self.d(resourceId="android:id/ffwd").click() # self.checkVideoPlayBack() self.d(resourceId="android:id/pause").click() self.checkVideoPlayBack() print "case " + str(case_name) + " is pass" def testVideoDurationThumbnail(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name) self.multimedia_handle.launchVideoApp() time.sleep(2) self.enterBrowseVideo(os.path.split(self.push_path)[0]) time.sleep(2) file_name = os.path.split( self.video.cfg.get("push_video"))[1].strip("\"") self.checkVideoFileExist(file_name) self.d(text=file_name).click() time.sleep(1) self.checkVideoPlayBack() self.d.press.back() if not self.d(text=os.path.split(self.push_path)[0]).exists: self.d.press.back() time.sleep(1) self.checkVideoFileExist(file_name) print "case " + str(case_name) + " is pass" def testStreamingVideoDurationThumbnail(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name, 2) self.multimedia_handle.launchVideoApp() time.sleep(2) self.streamingVideoPlayBack() self.checkVideoPlayBack() self.d.press.back() assert self.d(text="OtcVideoPlayer").exists, "launch video app failed!" print "case " + str(case_name) + " is pass" def interuptionVideoPlayBackSwitchHome(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name) self.multimedia_handle.launchVideoApp() time.sleep(2) self.videoPlayBack() self.checkVideoPlayBack() time.sleep(1) self.d.press.home() self.multimedia_setting.click_recent_app("OtcVideoPlayer") time.sleep(1) self.checkVideoPlayBack() print "case " + str(case_name) + " is pass" def interuptionStreamingVideoPlayBackSwitchHome(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name, 2) self.multimedia_handle.launchVideoApp() time.sleep(2) self.streamingVideoPlayBack() self.checkVideoPlayBack() time.sleep(1) self.d.press.home() self.multimedia_setting.click_recent_app("OtcVideoPlayer") time.sleep(1) self.checkVideoPlayBack() print "case " + str(case_name) + " is pass" def deleteVideoFileCase(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name) self.multimedia_setting.push_file(self.video.cfg.get("push_video_2"), self.video.cfg.get("datapath_2")) self.multimedia_handle.launchVideoApp() time.sleep(2) self.enterBrowseVideo(os.path.split(self.push_path)[0]) time.sleep(2) self.deleteVideoFile( os.path.split(self.video.cfg.get("push_video"))[1].strip("\"")) self.deleteVideoFile( os.path.split(self.video.cfg.get("push_video_2"))[1].strip("\"")) print "case " + str(case_name) + " is pass" def CheckVideoFileInThumbnail(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name) self.multimedia_setting.push_file(self.video.cfg.get("push_video_2"), self.video.cfg.get("datapath")) self.multimedia_setting.push_file(self.video.cfg.get("push_video_3"), self.video.cfg.get("datapath")) self.multimedia_setting.push_file(self.video.cfg.get("push_video_4"), self.video.cfg.get("datapath")) self.multimedia_setting.push_file(self.video.cfg.get("push_video_5"), self.video.cfg.get("datapath")) self.multimedia_handle.launchVideoApp() time.sleep(2) self.enterBrowseVideo(os.path.split(self.push_path)[0]) time.sleep(2) self.checkVideoFileExist( os.path.split(self.video.cfg.get("push_video"))[1].strip("\"")) self.checkVideoFileExist( os.path.split(self.video.cfg.get("push_video_2"))[1].strip("\"")) self.checkVideoFileExist( os.path.split(self.video.cfg.get("push_video_3"))[1].strip("\"")) self.checkVideoFileExist( os.path.split(self.video.cfg.get("push_video_4"))[1].strip("\"")) self.checkVideoFileExist( os.path.split(self.video.cfg.get("push_video_5"))[1].strip("\"")) print "case " + str(case_name) + " is pass" def CheckVideoFileInformationInThumbnail(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name) self.multimedia_handle.launchVideoApp() time.sleep(2) self.enterBrowseVideo(os.path.split(self.push_path)[0]) time.sleep(2) self.checkVideoDetail( os.path.split(self.video.cfg.get("push_video"))[1].strip("\"")) print "case " + str(case_name) + " is pass" def RenameVideoFileInThumbnail(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name) self.multimedia_handle.launchVideoApp() time.sleep(2) self.enterBrowseVideo(os.path.split(self.push_path)[0]) time.sleep(2) self.renameVideoFile( os.path.split(self.video.cfg.get("push_video"))[1].strip("\""), self.video.cfg.get("new_name")) print "case " + str(case_name) + " is pass" def videoPlayBackWithAlarm(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name) self.multimedia_setting.launchAlarmAPP() self.multimedia_setting.setAlarmTime(40) self.multimedia_handle.launchVideoApp() time.sleep(1) self.videoPlayBack() self.checkVideoPlayBack() time.sleep(1) self.multimedia_setting.waitAlarmTriiggered(60, "Snooze") self.multimedia_setting.setAlarmTime(30) self.multimedia_setting.click_recent_app("OtcVideoPlayer") self.checkVideoPlayBack() self.multimedia_setting.waitAlarmTriiggered(50, "Dismiss") self.multimedia_setting.click_recent_app("OtcVideoPlayer") self.checkVideoPlayBack() print "case " + str(case_name) + " is pass" def streamingVideoPlayBackWithAlarm(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name, 2) self.multimedia_setting.launchAlarmAPP() self.multimedia_setting.setAlarmTime(60) self.multimedia_handle.launchVideoApp() time.sleep(1) self.streamingVideoPlayBack() self.checkVideoPlayBack() time.sleep(1) self.multimedia_setting.waitAlarmTriiggered(80, "Snooze") self.multimedia_setting.setAlarmTime(60) self.multimedia_setting.click_recent_app("OtcVideoPlayer") self.checkVideoPlayBack() self.multimedia_setting.waitAlarmTriiggered(80, "Dismiss") self.multimedia_setting.click_recent_app("OtcVideoPlayer") self.checkVideoPlayBack() print "case " + str(case_name) + " is pass" def testVideoPlaybackRotation(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name) self.multimedia_handle.launchVideoApp() time.sleep(2) self.videoPlayBack() self.checkVideoPlayBack() self.d.click(self.x / 2, self.y / 2) self.setRotation("Landscape View") self.checkVideoPlayBack() self.d.click(self.x / 2, self.y / 2) self.setRotation("Portrait View") self.checkVideoPlayBack() print "case " + str(case_name) + " is pass" def testStreamingVideoPlaybackRotation(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name, 2) self.multimedia_handle.launchVideoApp() time.sleep(2) self.streamingVideoPlayBack() self.checkVideoPlayBack() self.d.click(self.x / 2, self.y / 2) self.setRotation("Landscape View") self.checkVideoPlayBack() self.d.click(self.x / 2, self.y / 2) self.setRotation("Portrait View") self.checkVideoPlayBack() print "case " + str(case_name) + " is pass" def testStreamingVideoPlayBackWithDownloadFile(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name, 2) self.multimedia_handle.launchVideoApp() time.sleep(2) self.streamingVideoPlayBack() self.checkVideoPlayBack() self.push_path = self.multimedia_setting.push_file( self.video.cfg.get("push_video"), self.video.cfg.get("datapath")) time.sleep(3) self.checkVideoPlayBack() self.d.press.home() self.multimedia_handle.launchVideoApp() time.sleep(2) self.videoPlayBack() self.checkVideoPlayBack() print "case " + str(case_name) + " is pass" def cameraRecordWithAlarm(self, case_name): print "run case is " + str(case_name) self.deleteCameraRecordFile() self.checkCameraRecordFile(0) self.multimedia_setting.launchAlarmAPP() self.multimedia_setting.setAlarmTime(30) self.launchRecordAPP() time.sleep(1) self.clickRecordButton() self.multimedia_setting.waitAlarmTriiggered(50, "Dismiss") self.multimedia_setting.click_recent_app("Camera2Video") time.sleep(1) self.clickRecordButton() self.checkCameraRecordFile() print "case " + str(case_name) + " is pass" def videoPlayBackLonglasting(self, case_name, bigfileskiptime=0): print "run case is " + str(case_name) self.appPrepare(case_name) lasting_time = int(self.video.cfg.get("lasting_time")) push_folder = os.path.split(os.path.split(self.push_path)[0])[-1] self.video.launchPhotos(push_folder) time.sleep(2) self.multimedia_handle.checkVideoPlayBackWithPhotoApp( lasting_time, bigfileskiptime, 1) print "case " + str(case_name) + " is pass" def testPlaying_streaming_Music_Back(self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video 3. Press back """ self.testStreamingVideoDurationThumbnail("test_API_video_playback_012") def testSHALL_support_H264_video_stream_no_frame_rate_limitation(self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video 3. Start/Stop """ self.lowAndHighFramestreamingVideoPlayControlProcess( "test_API_video_playback_026") def testHTML5_video_playback_MP4_H264_BP(self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video """ self.streamingVideoPlayControlProcess("test_API_video_playback_028") def testPFT_7098_VPG_HW_acceleratiof_HTML5_video_tag_H264(self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video """ self.testStreamingVideoPlayBack("test_API_video_playback_029") def testHTML5_video_playback_MP4_H264_HP(self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video """ self.streamingVideoPlayControlProcess("test_API_video_playback_037") def testLongTime_HTML5_video_playback_MP4_H264(self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video """ self.streamingVideoPlayControlProcess("test_API_video_playback_042") def testPseudo_streaming_clock_alarm(self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video 3. Alarm expired 4. Snooze the alarm 5. Dismiss the alarm """ self.streamingVideoPlayBackWithAlarm("test_API_video_playback_047") def testPseudo_streaming_HTTP_H264_640x480_60fps_NoAudio_mkv(self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video """ self.testStreamingVideoPlayBack("test_API_video_playback_048") def testPseudo_streaming_HTTP_H264_L4_0_HP_720x576_30fps_AAC_160kbps_48KHz( self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video """ self.testStreamingVideoPlayBack("test_API_video_playback_049") def testPseudo_streaming_HTTP_VP8_176x144_15fps_334Kbps_NoAudio_webm(self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video """ self.testStreamingVideoPlayBack("test_API_video_playback_050") def testPlaying_streaming_Music_Power_Off(self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video """ self.testStreamingVideoPlayBackWithPowerOff( "test_API_video_playback_051") def testSHALL_support_H264_video_stream_with_no_size_limitation(self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video 3. Start/Stop """ self.lowAndHighFramestreamingVideoPlayControlProcess( "test_API_video_playback_055") def testPFT_7102_Network_streaming_protocols_HTTP_S_Live_Streaming(self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video """ self.testStreamingVideoPlayBack("test_API_video_playback_086") def testVideo_MPEG4_ASP_L1_720p_30fps_AAC_128kb_48KHz_RTP_streaming(self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video """ self.testStreamingVideoPlayBack("test_API_video_playback_089") def testVideo_H263_CIF_30FPS_AAC_44KHz_127Kbps_RTP_streaming(self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video """ self.testStreamingVideoPlayBack("test_API_video_playback_090") def testVideo_H264_f4v_MP_L3_1_640x480_30fps_AAC_44_1KHz_128kbps_over_WLAN( self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video """ self.testStreamingVideoPlayBack("test_API_video_playback_091") def testVideo_H264_L2_1_BP_CIF_30fps_AAC_Multimedia_56kb_48KHz_RTP_streaming( self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video """ self.testStreamingVideoPlayBack("test_API_video_playback_092") def testPseudo_streaming_HTTP_H264_MP_320x240_15fps_211Kbps_NoAudio_3gp( self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video """ self.testStreamingVideoPlayBack("test_API_video_playback_093") def testPseudo_streaming_HTTP_VP8_CIF_25fps_Vorbis_44_1KHz_128kbps_webm_rotate_sleep_resume( self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video """ self.streamingVideoPlayControlProcess("test_API_video_playback_094") def testPseudo_streaming_file_downloading_in_background(self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video """ self.testStreamingVideoPlayBackWithDownloadFile( "test_API_video_playback_103") def testPFT_7100_Network_streaming_protocols_RTSP_RTP_SDP(self): """ This test used to test Video playback The test case spec is following: 1. Launch play video app 2. Play video """ self.testRTPStreamingVideoPlayBack("test_API_video_playback_109") def testLongTime_video_playback_H264_HP_L4_1_1080P_30fps_4_5Mbps_noAudio_mp4( self): """ This test used to test Video playback The test case spec is following: 1. Launch photos 2. Play video('Long-time Video playback: H264_HP_L4.1_1080P_30fps_4.5Mbps_na.mp4 (10 hours)') 3. Former name: test_video_playback_long_lasting_mum_007 """ self.videoPlayBackLonglasting( "mum_test_video_playback_long_lasting_007", 20) def testLongTime_video_playback_VP8_VGA_20fps_2Mbps_Vorbis_48KHz_128kbps_webm( self): """ This test used to test Video playback The test case spec is following: 1. Launch photos 2. Play video('Long-time Video playback: VP8_VGA_20fps_2Mbps_Vorbis_48KHz_128kbps.webm (10 hours)') 3. Former name: test_video_playback_long_lasting_mum_008 """ self.videoPlayBackLonglasting( "mum_test_video_playback_long_lasting_008", 20)
class ImageAPITest(TestCaseBase): """ @summary: Test Video PlayBack """ def setUp(self): """ @summary: set up @return: None """ super(ImageAPITest, self).setUp() self.d = g_common_obj.get_device() self._test_name = __name__ self.x = self.d.info["displayWidth"] self.y = self.d.info["displayHeight"] self.dpx = self.d.info["displaySizeDpX"] self.dpy = self.d.info["displaySizeDpY"] self.tag = "[Image Decode image_api_test] " self.serial = self.d.server.adb.device_serial() logger.debug(self.tag + "[Setup]: %s" % self._test_name) g_common_obj.stop_app_am("com.intel.otc.instrument.otcphotos") # Unlock screen g_common_obj.adb_cmd_capture_msg("input keyevent 82") def tearDown(self): """ @summary: tear tearDown @return: None """ super(ImageAPITest, self).tearDown() print "[Teardown]: %s" % self._test_name g_common_obj.stop_exp_handle() time.sleep(3) g_common_obj.stop_app_am("com.intel.otc.instrument.otcphotos") time.sleep(1) g_common_obj.adb_cmd_capture_msg(self.video.cfg.get("remove_video")) def setTimeToSec(self, time): time = time.split(":") i = 1 temp = 0 for s in time[::-1]: temp += int(s) * i i *= 60 return int(temp) def getOrientation(self): d = self.get_device() width = d.info["displayWidth"] height = d.info["displayHeight"] if width > height: return 1 else: return 0 def appPrepare(self, case_name, model=1): cfg_file = os.path.join(os.environ.get('TEST_DATA_ROOT', ''), \ 'tests.tablet.mum_auto_image.conf') self.video = PhotosImpl(\ self.config.read(cfg_file, case_name)) self.multimedia_handle = MultiMediaHandle() self.multimedia_setting = MultiMediaSetting(cfg_file) self.multimedia_setting.install_apk("photo_apk") self.multimedia_setting.install_apk("alarm_apk") self.video.set_orientation_n() if self.video.cfg.get("push_picture") is not None: self.multimedia_setting.push_file( self.video.cfg.get("push_picture"), self.video.cfg.get("datapath")) refresh_sd_cmd = self.config.read(cfg_file, 'common_cmd')['refresh_sd'] g_common_obj.adb_cmd_capture_msg(refresh_sd_cmd) # Unlock screen g_common_obj.adb_cmd_capture_msg("input keyevent 82") def launchPhotoAPP(self): logger.debug(self.tag + "launch otcphotos app") SystemUI().unlock_screen() for _ in range(3): g_common_obj.launch_app_am("com.intel.otc.instrument.otcphotos", \ "com.intel.otc.instrument.otcphotos.MainActivity") time.sleep(3) if self.d(textContains="/").exists: return assert self.d(textContains="/").exists, "launch photo app failed!" def checkPhotosBackupAndHandle(self): """ check 'back up & sync' exist and handle it :return: """ for _ in range(3): if self.d(textContains="Update Google Photos").exists: logger.debug("Ignore update google photos") self.d(textMatches="NOT NOW").click() time.sleep(1) if self.d(resourceId= 'com.android.packageinstaller:id/permission_allow_button' ).exists: self.d( resourceId= 'com.android.packageinstaller:id/permission_allow_button' ).click() time.sleep(1) if self.d(textContains='Google Photos uses face').exists and \ self.d(textMatches='[O|o][N|n]').exists: logger.debug("back up & sync display, try to init photos") x = self.d.info['displayHeight'] / 2 y = self.d.info['displayWidth'] / 2 self.d.click(x, y) if self.d(textContains="Keep backup off").exists: self.d(textMatches="Keep off|KEEP OFF").click() if self.d(textStartsWith="Never show").exists: self.d(textStartsWith="Never show").click() if self.d(textMatches="SKIP|Skip").exists: self.d(textMatches="SKIP|Skip").click() if self.d(textMatches="CANCEL|Cancel").exists: self.d(textMatches="CANCEL|Cancel").click() if self.d(description="Photos, selected, tab, 2 of 3").exists or\ self.d(resourceId="com.google.android.apps.photos:id/toolbar").exists: logger.debug("init completed") break def launchPhotoAPPWithShortCut(self): logger.debug(self.tag + "Launch Photos") self.d.press.home() if self.get_android_version() == "7.1.1": logger.debug("DUT android version is 7.1.1") self.d(description="Apps list").click() elif self.get_android_version() < "7.1.1": logger.debug("DUT android version is beloww 7.1.1") if self.d(text="GOT IT").exists: self.d(text="GOT IT").click() self.d(description="Apps").click() elif self.multimedia_setting.get_paltform_hardware() == 'androidia_64': logger.debug("For AIA, Photos in Google folder") self.d(description="Folder: Google").click() self.d(description="Photos").click() self.checkPhotosBackupAndHandle() assert self.d( resourceId="com.google.android.apps.photos:id/toolbar" ).exists, "launch photo app failed!" return True #for N build,firstly go into apps list,skip the tips for _ in range(3): if self.d(textContains="Choose some apps").exists: self.d(text="OK").click() assert not self.d(text="OK").exists, "skip the tips failed!" while not self.d(text="otcphoto-app").exists: self.d(className="android.view.View").swipe.left() self.d(text="otcphoto-app").click() time.sleep(3) assert self.d(textContains="/").exists, "launch photo app failed!" def launchGalleryAPPWithShortCut(self): # for bxtp o car, launch Gallery self.d.press.home() app_list_cmd = "adb -s %s shell input tap '%d' '%d'" % ( self.serial, int(self.dpx * 0.78), int(self.dpy * 0.97)) print app_list_cmd for _ in range(3): os.system(app_list_cmd) if self.d(resourceId= "com.android.support.car.lenspicker:id/dismiss_area" ).wait.exists(timeout=3000): try: self.d(resourceId= "com.android.support.car.lenspicker:id/dismiss_area" ).scroll.vert.to(text='Gallery') except: self.d.swipe(self.x / 2, self.y * 0.75, self.x / 2, self.y * 0.25) self.d(text="Gallery").click() if self.d(resourceId="com.android.gallery3d:id/gl_root_view" ).wait.exists(timeout=3000): logger.debug("Launch Gallery success!") return True logger.debug("Launch Gallery Failed!") return False def get_android_version(self): prop = "ro.build.version.release" buf = g_common_obj.adb_cmd_capture_msg("getprop " + prop) v_str = buf.strip() return v_str def wait_boot_completed(self, timeout=1000): ''' wait Android boot_completed args: timeout -- optional timeout in second, default 180s ''' count = 0 sleep_time = 5 while count < timeout: prop_val = adb.adb_cmd_capture_msg('getprop sys.boot_completed') if '1' in prop_val: print 'boot_completed' return count += sleep_time time.sleep(sleep_time) raise Exception('%ds timeout waiting for boot_completed' % timeout) def enterPhotoPath(self, path): logger.debug(self.tag + "enter picture path :" + path) push_str = path.strip("\"").split("/") if push_str[0] == "" and push_str[1] == "sdcard": push_str = push_str[2:] for t_str in push_str: logger.debug(self.tag + "try to click %s" % t_str) if t_str != "": self.d(text=t_str).click() time.sleep(2) def checkPictureExist(self, file_name): logger.debug(self.tag + "check picture exist, filename:" + file_name) if self.d(text=file_name).exists: logger.debug(self.tag + file_name + " found!") return True else: logger.debug(self.tag + file_name + " not find!") return False def openPictureWithGallery(self, file): print file open_picture_cmd = "shell am start -a android.intent.action.VIEW -d file://%s " \ " -t image/* -n com.android.gallery3d/.app.GalleryActivity" % (file) for _ in range(3): g_common_obj.adb_cmd_common(open_picture_cmd) time.sleep(1) if self.d(resourceId= "com.android.gallery3d:id/photopage_bottom_controls"): return True logger.debug(self.tag + "open %s failed" % file) return False def openPictureWithPhotosCmd(self, file): logger.debug("Try to open %s with command" % file) open_picture_cmd = "shell am start -a android.intent.action.VIEW -d file://%s " \ " -t image/* -n com.google.android.apps.photos/.pager.HostPhotoPagerActivity" % (file) for _ in range(3): g_common_obj.adb_cmd_common(open_picture_cmd) time.sleep(1) if self.d( resourceId= "com.google.android.apps.photos:id/video_player_controller_fragment_container" ): logger.debug(self.tag + 'Open picture success.') return True logger.debug(self.tag + "open %s failed" % file) return False def getPictureSize(self): scaleLabel = self.d( resourceId="com.intel.otc.instrument.otcphotos:id/scaleLabel" ).info["text"] return int(scaleLabel.strip("%")) def checkVideoPlayBack(self, s=60): return self.multimedia_handle.checkVideoPlayBack(s) def imageViewRotatePicture(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name) path = self.video.cfg.get("push_picture").split(" ")[-1].strip("\"") print path self.launchPhotoAPP() self.enterPhotoPath(path) self.checkPictureExist(os.path.split(path)[1]) self.d.orientation = "n" time.sleep(2) self.checkPictureExist(os.path.split(path)[1]) self.video.set_orientation_n() time.sleep(2) self.checkPictureExist(os.path.split(path)[1]) print "case " + str(case_name) + " is pass" def imageViewRotatePictureManyTimes(self, case_name, count): print "run case is " + str(case_name) self.appPrepare(case_name) path = self.video.cfg.get("push_picture").split(" ")[-1].strip("\"") print path self.launchPhotoAPP() self.enterPhotoPath(path) self.checkPictureExist(os.path.split(path)[1]) for _ in range(count): self.d.orientation = "n" time.sleep(2) self.checkPictureExist(os.path.split(path)[1]) self.video.set_orientation_n() time.sleep(2) self.checkPictureExist(os.path.split(path)[1]) print "case " + str(case_name) + " is pass" def imageViewCheck(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name) path = self.video.cfg.get("push_picture").split(" ")[-1].strip("\"") print path self.launchPhotoAPP() self.enterPhotoPath(path) self.checkPictureExist(os.path.split(path)[1]) print "case " + str(case_name) + " is pass" def imageViewCheckAfterDeleteFile(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name) path = self.video.cfg.get("push_picture").split(" ")[-1].strip("\"") print path self.launchPhotoAPP() self.enterPhotoPath(path) file_name = os.path.split(path)[1] self.checkPictureExist(file_name) self.multimedia_setting.clearFolder(self.video.cfg.get("remove_video")) time.sleep(2) self.d.press.back() self.d(text=file_name).click() assert not self.d( resourceId='com.intel.otc.instrument.otcphotos:id/sizeLabel' ).exists, "no warning messsage pop up" for _ in range(3): self.d.press.back() print "case " + str(case_name) + " is pass" def imageViewCheckWithUnlock(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name) path = self.video.cfg.get("push_picture").split(" ")[-1].strip("\"") print path self.launchPhotoAPP() self.enterPhotoPath(path) self.checkPictureExist(os.path.split(path)[1]) if 'bxtp_abl' in self.multimedia_setting.get_paltform_hardware(): # For BXT use relay card press power to sleep self.multimedia_setting.pressPowerKey() time.sleep(10) self.multimedia_setting.pressPowerKey() else: self.d.press.power() time.sleep(2) self.d.press.power() self.lock = SystemUI() self.lock.unlock_screen() time.sleep(1) self.checkPictureExist(os.path.split(path)[1]) print "case " + str(case_name) + " is pass" def imageViewCheckWithRotation(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name) path = self.video.cfg.get("push_picture").split(" ")[-1].strip("\"") print path self.launchPhotoAPP() self.d.orientation = "n" self.d.press.home() self.multimedia_setting.click_recent_app("otcphoto-app") time.sleep(1) assert self.d(textContains="/").exists, "launch photo app failed!" self.multimedia_setting.launchAlarmAPP() self.video.set_orientation_n() self.multimedia_setting.click_recent_app("otcphoto-app") time.sleep(1) assert self.d(textContains="/").exists, "launch photo app failed!" self.enterPhotoPath(path) self.checkPictureExist(os.path.split(path)[1]) print "case " + str(case_name) + " is pass" def imageViewCheckWithInstallApp(self, case_name, flag=1): print "run case is " + str(case_name) self.appPrepare(case_name) path = self.video.cfg.get("push_picture").split(" ")[-1].strip("\"") print path if flag != 1: self.multimedia_setting.push_file( self.video.cfg.get("push_picture_2"), self.video.cfg.get("datapath")) self.launchPhotoAPP() self.enterPhotoPath(path) self.multimedia_setting.install_apk("video_apk") self.checkPictureExist(os.path.split(path)[1]) if flag != 1: self.d(className="android.widget.ImageView").swipe.left() path_2 = self.video.cfg.get("push_picture_2").split(" ")[-1].strip( "\"") self.checkPictureExist(os.path.split(path_2)[1]) self.push_path = self.multimedia_setting.push_file( self.video.cfg.get("push_video_2"), self.video.cfg.get("datapath_2")) self.multimedia_handle.launchVideoApp() time.sleep(2) self.multimedia_handle.videoPlayBack(self.push_path) self.multimedia_setting.install_apk("vpg_apk") self.checkVideoPlayBack(30) adb.adb_cmd_common( 'uninstall videoplayer.app.instrument.otc.intel.com.otcvideoplayer' ) adb.adb_cmd_common('uninstall com.intel.vpg.tool') print "case " + str(case_name) + " is pass" def imageViewCheckWithShortCut(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name) path = self.video.cfg.get("push_picture").split(" ")[-1].strip("\"") if "androidia_64" in self.multimedia_setting.get_paltform_hardware(): self.launchPhotoAPPWithShortCut() assert self.openPictureWithPhotosCmd(path), "Picture not exists!" elif self.multimedia_setting.get_android_version() == "O": self.launchGalleryAPPWithShortCut() assert self.openPictureWithGallery(path), "Picture not exists!" else: self.launchPhotoAPPWithShortCut() self.enterPhotoPath(path) assert self.checkPictureExist( os.path.split(path)[1]), "Picture not exists!" print "case " + str(case_name) + " is pass" def imageViewCheckFolder(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name) path = self.video.cfg.get("push_picture").split(" ")[-1].strip("\"") path_2 = self.video.cfg.get("push_picture_2").split(" ")[-1].strip( "\"") print path, path_2 self.multimedia_setting.push_file(self.video.cfg.get("push_picture_2"), self.video.cfg.get("datapath")) self.launchPhotoAPP() self.enterPhotoPath(path) file_name = os.path.split(path)[1] file_name_2 = os.path.split(path_2)[1] self.checkPictureExist(file_name) self.d.press.back() self.checkPictureExist(file_name) self.checkPictureExist(file_name_2) print "case " + str(case_name) + " is pass" def imageViewCheckSlideShow(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name) path = self.video.cfg.get("push_picture").split(" ")[-1].strip("\"") path_2 = self.video.cfg.get("push_picture_2").split(" ")[-1].strip( "\"") print path, path_2 self.multimedia_setting.push_file(self.video.cfg.get("push_picture_2"), self.video.cfg.get("datapath")) self.launchPhotoAPP() self.enterPhotoPath(path) file_name = os.path.split(path)[1] file_name_2 = os.path.split(path_2)[1] self.checkPictureExist(file_name) self.d(className="android.widget.ImageView").swipe.left() self.checkPictureExist(file_name_2) print "case " + str(case_name) + " is pass" def imageViewTenTimes(self, case_name, t_time=10): print "run case is " + str(case_name) self.appPrepare(case_name) path = self.video.cfg.get("push_picture").split(" ")[-1].strip("\"") print path self.launchPhotoAPP() self.enterPhotoPath(path) file_name = os.path.split(path)[1] self.checkPictureExist(file_name) for _ in range(10): self.d.press.back() self.d(text=file_name).click() self.checkPictureExist(file_name) print "case " + str(case_name) + " is pass" def getCpuConsumption(self): cmd = "shell top -m 1 -n 1" t_pattern = re.compile("User (.*)%, System (.*)%, IOW.*") result = g_common_obj.adb_cmd_common(cmd) print result if t_pattern.findall(result) != []: (t_user, t_system) = t_pattern.findall(result)[0] return int(t_user) + int(t_system) else: return 0 def imageViewWithManyTimes(self, case_name, times): print "run case is " + str(case_name) self.appPrepare(case_name) cpu_1 = self.getCpuConsumption() for iteration in range(times): logger.debug("Execute {0} times, total {1} times".format( iteration + 1, times)) self.launchPhotoAPP() time.sleep(5) g_common_obj.stop_app_am("com.intel.otc.instrument.otcphotos") time.sleep(4) time.sleep(10) cpu_2 = self.getCpuConsumption() logger.info("cpu_1={0}, cpu_2={1}".format(cpu_1, cpu_2)) assert cpu_1 + 10 >= cpu_2, "Cpu Consumption error! cpu_1=%s, cpu_2=%s" % ( cpu_1, cpu_2) print "case " + str(case_name) + " is pass" def imageViewBackHome(self, case_name, flag=1): print "run case is " + str(case_name) self.appPrepare(case_name) path = self.video.cfg.get("push_picture").split(" ")[-1].strip("\"") print path if flag != 1: self.multimedia_setting.push_file( self.video.cfg.get("push_picture_2"), self.video.cfg.get("datapath")) self.launchPhotoAPP() self.enterPhotoPath(path) self.checkPictureExist(os.path.split(path)[1]) self.d.press.home() self.multimedia_setting.click_recent_app("otcphoto-app") time.sleep(1) self.checkPictureExist(os.path.split(path)[1]) if flag != 1: self.d(className="android.widget.ImageView").swipe.left() path_2 = self.video.cfg.get("push_picture_2").split(" ")[-1].strip( "\"") self.checkPictureExist(os.path.split(path_2)[1]) print "case " + str(case_name) + " is pass" def imageViewWithAlarm(self, case_name, flag=1): print "run case is " + str(case_name) self.appPrepare(case_name) path = self.video.cfg.get("push_picture").split(" ")[-1].strip("\"") print path if flag != 1: self.multimedia_setting.push_file( self.video.cfg.get("push_picture_2"), self.video.cfg.get("datapath")) self.multimedia_setting.launchAlarmAPP() self.multimedia_setting.setAlarmTime(30) self.launchPhotoAPP() self.enterPhotoPath(path) self.checkPictureExist(os.path.split(path)[1]) self.multimedia_setting.waitAlarmTriiggered(50, "Snooze") self.multimedia_setting.setAlarmTime(30) self.multimedia_setting.click_recent_app("otcphoto-app") time.sleep(1) self.checkPictureExist(os.path.split(path)[1]) self.multimedia_setting.waitAlarmTriiggered(50, "Dismiss") self.multimedia_setting.click_recent_app("otcphoto-app") time.sleep(1) self.checkPictureExist(os.path.split(path)[1]) if flag != 1: self.d(className="android.widget.ImageView").swipe.left() path_2 = self.video.cfg.get("push_picture_2").split(" ")[-1].strip( "\"") self.checkPictureExist(os.path.split(path_2)[1]) print "case " + str(case_name) + " is pass" def imageViewWithReboot(self, case_name, flag=1): print "run case is " + str(case_name) self.appPrepare(case_name) path = self.video.cfg.get("push_picture").split(" ")[-1].strip("\"") logger.debug(self.tag + "path:" + path) if flag != 1: self.multimedia_setting.push_file( self.video.cfg.get("push_picture_2"), self.video.cfg.get("datapath")) self.launchPhotoAPP() self.enterPhotoPath(path) self.checkPictureExist(os.path.split(path)[1]) adb.reboot_device() self.wait_boot_completed() time.sleep(20) if self.d(textContains="Drive safely").exists: logger.debug(self.tag + "Drive saftely exist , click owner") self.d(text="Owner").click() time.sleep(3) self.lock = SystemUI() self.lock.unlock_screen() self.launchPhotoAPP() self.enterPhotoPath(path) self.checkPictureExist(os.path.split(path)[1]) if flag != 1: self.d(className="android.widget.ImageView").swipe.left() path_2 = self.video.cfg.get("push_picture_2").split(" ")[-1].strip( "\"") self.checkPictureExist(os.path.split(path_2)[1]) print "case " + str(case_name) + " is pass" def imageViewWithInvalidFile(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name) path = self.video.cfg.get("push_picture").split(" ")[-1].strip("\"") logger.debug(self.tag + "test file patch:%s" % path) self.launchPhotoAPP() self.enterPhotoPath(os.path.split(path)[0]) assert not self.d(text=os.path.split(path)[1]).exists, os.path.split( path)[1] + "Invalid file can be find! error!" print "case " + str(case_name) + " is pass" def imageViewZoomIn_ZoomOut(self, case_name): print "run case is " + str(case_name) self.appPrepare(case_name) path = self.video.cfg.get("push_picture").split(" ")[-1].strip("\"") print path self.launchPhotoAPP() self.enterPhotoPath(path) self.checkPictureExist(os.path.split(path)[1]) self.d(className="android.widget.ImageView").gesture( (self.x / 2, self.y / 2 - 20), (self.x / 2, self.y / 2)).to( (self.x / 2, self.y / 4), (self.x / 2, self.y * 3 / 4)) self.checkPictureExist(os.path.split(path)[1]) x1 = self.getPictureSize() assert x1 > 100, "ZoomIn error" time.sleep(2) self.d(className="android.widget.ImageView").gesture( (self.x / 2, self.y / 4), (self.x / 2, self.y * 3 / 4)).to( (self.x / 2, self.y / 2 - 20), (self.x / 2, self.y / 2)) self.checkPictureExist(os.path.split(path)[1]) x2 = self.getPictureSize() assert x1 > x2, "ZoomOut error" print "case " + str(case_name) + " is pass" def testImage_View_RotatePicture(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture 2. Rotate picture to landscape mode 3. Rotate picture to Portrait mode """ self.imageViewRotatePicture("test_API_image_001") def testMultiMedia_Gallery_SlideShow_Continue_Idle(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture 2. Press home """ self.imageViewBackHome("test_API_image_002", 2) def testMultiMedia_Gallery3D_GIF_87a_ZoomIn_ZoomOut(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture 2. Press home """ self.imageViewZoomIn_ZoomOut("test_API_image_004") def testMultiMedia_Gallery3D_GIF_89a_ZoomIn_ZoomOut(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture 2. Press home """ self.imageViewZoomIn_ZoomOut("test_API_image_005") def testImage_ViewMode_Full_And_non_FullScreen_Switch(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewTenTimes("test_API_image_006", 10) def testMultiMedia_Gallery3D_SlideShow_AlarmReminder(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewWithAlarm("test_API_image_007", 2) def testImage_View_InvalidFile(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewWithInvalidFile("test_API_image_008") def testMultiMedia_Gallery_Format_UnSupportPicture(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewWithInvalidFile("test_API_image_009") def testMultiMedia_Gallery_SlideShow_Then_PowerOff_ON(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewWithReboot("test_API_image_010", 2) def testMultiMedia_Gallery_Format_ErrorPicture(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewWithInvalidFile("test_API_image_011") def testMultiMedia_Gallery3D_SlideShow_Multiple_Events(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewWithAlarm("test_API_image_012", 2) def testMultiMedia_MediaFramework_Display_Picture(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewWithInvalidFile("test_API_image_013") def testMultiMedia_Gallery3D_ViewImage_Larger_Than_5_or_8_MB(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewCheck("test_API_image_014") def test_Calendar_Alarm_EmailNote_When_SlideShow(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewWithAlarm("test_API_image_015", 2) def testMultiMedia_Gallery3D_Launch_Exit_30_Times(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewWithManyTimes("test_API_image_016", 30) def testMultiMedia_Gallery_Launch_Exit_100_Times(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewWithManyTimes("test_API_image_017", 100) def testImage_Number_Indicator(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewCheckFolder("test_API_image_018") def testCalendar_Interact_When_View_Picture(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewWithAlarm("test_API_image_019") def testMultiMedia_Gallery_SlideShow_Long_Time(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewCheckSlideShow("test_API_image_020") def testMultiMedia_Gallery_DifferentResolutions_3072x2304(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewCheck("test_API_image_021") def testMultiMedia_MediaFramework_Display_BigSize_Picture(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewCheck("test_API_image_022") def testMultiMedia_MediaFramework_Display_LittleSize_Picture(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewCheck("test_API_image_023") def testMultiMedia_Gallery_Enter_By_ShortCut(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewCheckWithShortCut("test_API_image_024") def testJPEG_HW_Decode(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewCheck("test_API_image_025") def testMultiMedia_Gallery3D_Unsupported_Images_Videos(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewWithInvalidFile("test_API_image_026") def testMultiMedia_Gallery3D_Gesturing_Screen(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewCheckSlideShow("test_API_image_027") def testMultiMedia_Gallery_Panning_Single(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture 2. Press home """ self.imageViewZoomIn_ZoomOut("test_API_image_028") def testApp_Install_When_View_Picture_Video_SlideShow(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewCheckWithInstallApp("test_API_image_029", 2) def testMultiMedia_Gallery_Rotation_Background(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewCheckWithRotation("test_API_image_030") def testMultiMedia_Gallery_Image_Review_SD_USB(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewCheck("test_API_image_031") def testImage_View_RotatePicture_ManyTimes(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewRotatePictureManyTimes("test_API_image_043", 20) def testVideo_NonExist(self): """ This test used to test Image Decode The test case spec is following: 1. Open a picture """ self.imageViewCheckAfterDeleteFile("test_API_image_044")