+++ /dev/null
-# test python script must be in same location as aurum_pb2.py
-
-# python3 -m venv v
-# source v/bin/activate
-# pip3 install grpcio grpcio-tools
-#
-# python3 -m grpc_tools.protoc --python_out=. --grpc_python_out=. --proto_path=. aurum.proto
-#
-# python3 <file>.py
-# deactivate
-
-from utils import *
-
-#4 Menu Control Test
-def ST04_MENU_CONTROL():
- print("- Menu Test")
- if SEND_KEY_WAIT_APP_LAUNCHING("XF86SysMenu", "org.tizen.menu", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_CONTENT_LOAD) == False:
- return False
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Return", WAIT_AFTER_KEY)
- SEND_KEY("Return", WAIT_AFTER_KEY)
- SEND_KEY("Return", WAIT_AFTER_KEY)
- TAKE_SCREENSHOT(ST04_MENU_CONTROL.__name__ + '_Menu.png')
- SEND_KEY("XF86Back", WAIT_AFTER_KEY)
- SEND_KEY("XF86Back", WAIT_AFTER_KEY)
- SEND_KEY("XF86Back", WAIT_AFTER_KEY)
-
- HOME()
-
- print("- Broadcasting Info Test")
- if SEND_KEY_WAIT_APP_LAUNCHING("XF86ChannelGuide", "org.tizen.epg", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_LOAD) == False:
- return False
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- TAKE_SCREENSHOT(ST04_MENU_CONTROL.__name__ + '_Broadcasting_Info.png')
-
- HOME()
-
- print("- Channel Info Test")
- SEND_KEY_WAIT_EVENT("Return", "EVENT_WINDOW_ACTIVATE", WAIT_FOR_APP_TRANSFROM)
- #Wait for automatically activated channel info disappear
- time.sleep(WAIT_FOR_APP_CONTENT_LOAD)
- if SEND_KEY_WAIT_APP_LAUNCHING("Return", "org.tizen.hbbtv", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_TRANSFROM) == False:
- return False
- SEND_KEY("Left", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- TAKE_SCREENSHOT(ST04_MENU_CONTROL.__name__ + '_Channel_Info.png')
-
- return True
-
-#8 My content Test
-def ST08_MY_CONTENT():
- print("- My Contents Launching")
- SEND_KEY("Left", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- if SEND_KEY_WAIT_APP_LAUNCHING("Return", "com.samsung.tv.mycontents", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_LOAD) == False:
- RESET_TO_TVPLUS()
- return False
- TAKE_SCREENSHOT(ST08_MY_CONTENT.__name__ + '_Launched.png')
-
- print("- My Contents Video Play")
- SEND_KEY("Return", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- if SEND_KEY_WAIT_APP_LAUNCHING("Return", "org.tizen.mycontent-video-player-tv", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_CONTENT_LOAD) == False:
- RESET_TO_TVPLUS()
- return False
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Left", WAIT_AFTER_KEY)
- TAKE_SCREENSHOT(ST08_MY_CONTENT.__name__ + '_Video_Player.png')
- SEND_KEY("XF86Back", WAIT_AFTER_KEY)
- if SEND_KEY_WAIT_APP_LAUNCHING("XF86Back", "com.samsung.tv.mycontents", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_CONTENT_LOAD) == False:
- RESET_TO_TVPLUS()
- return False
-
- print("- My Contents Photo Play")
- SEND_KEY("Down", WAIT_AFTER_KEY)
- if SEND_KEY_WAIT_APP_LAUNCHING("Return", "org.tizen.mycontent-photo-player-tv", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_CONTENT_LOAD) == False:
- RESET_TO_TVPLUS()
- return False
- TAKE_SCREENSHOT(ST08_MY_CONTENT.__name__ + '_Photo_Player.png')
- if SEND_KEY_WAIT_APP_LAUNCHING("XF86Back", "com.samsung.tv.mycontents", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_CONTENT_LOAD) == False:
- RESET_TO_TVPLUS()
- return False
-
- print("- My Contents Music Play")
- SEND_KEY("Left", WAIT_AFTER_KEY)
- SEND_KEY_WAIT_EVENT("Return", "EVENT_WINDOW_IDLE", WAIT_FOR_APP_CONTENT_LOAD) #Wait till view transformed
- TAKE_SCREENSHOT(ST08_MY_CONTENT.__name__ + '_Music_Play.png')
-
- #Back to default view
- SEND_KEY("XF86Back", WAIT_AFTER_KEY)
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY("Return", WAIT_FOR_APP_TRANSFROM)
-
-
- return True
-
-#7, 9, 16, 17. App Download, install and run
-def ST07_09_16_17_APP_INSTALL():
- print("- Apps Launching")
- #FIXME: Use XPath to find APPS
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY("Left", WAIT_AFTER_KEY)
- SEND_KEY("Left", WAIT_AFTER_KEY)
-
- print("- Search TVING Application")
- if SEND_KEY_WAIT_APP_LAUNCHING("Return", "com.samsung.tv.store", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_LOAD) == False:
- RESET_TO_TVPLUS()
- return False
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY_WAIT_EVENT("Return", "EVENT_WINDOW_IDLE", WAIT_FOR_APP_TRANSFROM) #Wait till view transformed
- #FIXME: Input text directly or other way :(
- #FIXME: If keypboard already in English mode. it will fail :(
- SEND_KEY("Left", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Return", WAIT_FOR_APP_TRANSFROM) #Change Lang
- SEND_KEY("Left", WAIT_AFTER_KEY)
- SEND_KEY("Left", WAIT_AFTER_KEY)
- SEND_KEY("Return", WAIT_AFTER_KEY) #t
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Return", WAIT_AFTER_KEY) #v
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Return", WAIT_AFTER_KEY) #i
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY_WAIT_EVENT("Return", "EVENT_WINDOW_IDLE", WAIT_AFTER_KEY) #Select TVING App
- #FIXME: TVing isInstalled is not working
- print("- Install TVing")
- if SEND_KEY_WAIT_APP_LAUNCHING("Return", "com.samsung.tv.notification-app", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_TRANSFROM) == False:
- return False
- TAKE_SCREENSHOT(ST07_09_16_17_APP_INSTALL.__name__ + '_Install_Notification.png')
- if SEND_KEY_WAIT_APP_LAUNCHING("XF86Exit", "com.samsung.tv.store", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_TRANSFROM) == False:
- return False
- print("- Launch TVing")
- if SEND_KEY_WAIT_APP_LAUNCHING("Return", TVING_APP, WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_LOAD) == False:
- return False
- TAKE_SCREENSHOT(ST07_09_16_17_APP_INSTALL.__name__ + '_TVing_Launch.png')
- print("- Delete TVing")
- if SEND_KEY_WAIT_APP_LAUNCHING("XF86Exit", "com.samsung.tv.csfs", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_CONTENT_LOAD) == False:
- return False
- if SEND_KEY_WAIT_APP_LAUNCHING("Return", "com.samsung.tv.store", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_CONTENT_LOAD) == False:
- return False
- SEND_KEY("XF86Back", WAIT_FOR_APP_TRANSFROM)
- SEND_KEY("XF86Back", WAIT_FOR_APP_TRANSFROM)
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Return", WAIT_FOR_APP_TRANSFROM)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Return", WAIT_FOR_APP_TRANSFROM)
- SEND_KEY("Left", WAIT_AFTER_KEY)
- SEND_KEY("Return", WAIT_FOR_APP_TRANSFROM)
- TAKE_SCREENSHOT(ST07_09_16_17_APP_INSTALL.__name__ + '_TVing_Delete.png')
-
- #FIXME: Check app is not installed
- return True
-
-def ST10_11_12_CHANNEL_VOLUME_CHANGE():
- #Csfs -> DTV or TV Plus (tv-viewer)
- if SEND_KEY_WAIT_APP_LAUNCHING("Return", "org.tizen.tv-viewer", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_TRANSFROM) == False:
- return False
-
- #Volume Changes
- SEND_KEY_WAIT_EVENT("XF86AudioRaiseVolume", "EVENT_WINDOW_RAISE", WAIT_AFTER_KEY)
- StubSingleton.get_stub().sendKey(ReqKey(type="XF86", actionType="REPEAT", XF86keyCode="XF86AudioRaiseVolume", durationMs=2000, intervalMs=500))
- TAKE_SCREENSHOT(ST10_11_12_CHANNEL_VOLUME_CHANGE.__name__ + '_Volume_Up.png')
-
- SEND_KEY_WAIT_EVENT("XF86AudioLowerVolume", "EVENT_WINDOW_RAISE", WAIT_AFTER_KEY)
- StubSingleton.get_stub().sendKey(ReqKey(type="XF86", actionType="REPEAT", XF86keyCode="XF86AudioLowerVolume", durationMs=2000, intervalMs=500))
- TAKE_SCREENSHOT(ST10_11_12_CHANNEL_VOLUME_CHANGE.__name__ + '_Volume_Down.png')
-
- if SEND_KEY_WAIT_APP_LAUNCHING("XF86Home", "com.samsung.tv.csfs", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_TRANSFROM) == False:
- return False
-
- #Csfs -> DTV or TV Plus (tv-viewer)
- if SEND_KEY_WAIT_APP_LAUNCHING("Return", "org.tizen.tv-viewer", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_TRANSFROM) == False:
- return False
-
- #Channel Changes
- SEND_KEY_WAIT_EVENT("XF86RaiseChannel", "EVENT_WINDOW_RAISE", WAIT_AFTER_KEY)
- StubSingleton.get_stub().sendKey(ReqKey(type="XF86", actionType="REPEAT", XF86keyCode="XF86RaiseChannel", durationMs=2000, intervalMs=500))
- TAKE_SCREENSHOT(ST10_11_12_CHANNEL_VOLUME_CHANGE.__name__ + '_Channel_Up.png')
-
- SEND_KEY_WAIT_EVENT("XF86LowerChannel", "EVENT_WINDOW_RAISE", WAIT_AFTER_KEY)
- StubSingleton.get_stub().sendKey(ReqKey(type="XF86", actionType="REPEAT", XF86keyCode="XF86LowerChannel", durationMs=2000, intervalMs=500))
- TAKE_SCREENSHOT(ST10_11_12_CHANNEL_VOLUME_CHANGE.__name__ + '_Channel_Down.png')
-
- return True
-
-def ST13_BROWSER():
- CHECK_APP_INSTALLED()
- print("- Launch browser")
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- if SEND_KEY_WAIT_APP_LAUNCHING("Return", "org.tizen.browser", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_LOAD) == False:
- RESET_TO_TVPLUS()
- return False
- TAKE_SCREENSHOT(ST13_BROWSER.__name__ + '_Launched.png')
-
- print("- TV On/OFF Test in Browser")
- SEND_KEY("XF86PowerOff", WAIT_AFTER_KEY)
- time.sleep(10)
- SEND_KEY("XF86PowerOff", WAIT_AFTER_KEY)
- if SEND_KEY_WAIT_APP_LAUNCHING("", "org.tizen.browser", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_LOAD):
- return False
- CHECK_NOTI_POPUP()
- TAKE_SCREENSHOT(ST13_BROWSER.__name__ + '_After_Turn_Off.png')
-
- RESET_TO_TVPLUS()
-
- return True
-
-def ST14_15_YOUTUBE():
- CHECK_APP_INSTALLED()
- print("- Launch youtube")
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- if SEND_KEY_WAIT_APP_LAUNCHING("Return", "com.samsung.tv.cobalt-yt", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_LOAD) == False:
- RESET_TO_TVPLUS()
- return False
- TAKE_SCREENSHOT(ST14_15_YOUTUBE.__name__ + '_Launched.png')
-
- print("- TV On/OFF Test in Youtube")
- SEND_KEY("XF86PowerOff", WAIT_AFTER_KEY)
- time.sleep(10)
- SEND_KEY("XF86PowerOff", WAIT_AFTER_KEY)
- if SEND_KEY_WAIT_APP_LAUNCHING("", "com.samsung.tv.cobalt-yt", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_LOAD):
- return False
- CHECK_NOTI_POPUP()
- TAKE_SCREENSHOT(ST14_15_YOUTUBE.__name__ + '_After_Turn_Off.png')
-
- RESET_TO_TVPLUS()
-
- return True
-
-def ST18_MULTITASKING():
- print("- Launch youtube")
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- if SEND_KEY_WAIT_APP_LAUNCHING("Return", "com.samsung.tv.cobalt-yt", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_LOAD) == False:
- RESET_TO_TVPLUS()
- return False
- TAKE_SCREENSHOT(ST18_MULTITASKING.__name__ + '_Youtube_Launched.png')
- SEND_KEY("Return", WAIT_AFTER_KEY)
- time.sleep(10) #Play video
-
- print("- Launch csfs")
- if SEND_KEY_WAIT_APP_LAUNCHING("XF86Home", "com.samsung.tv.csfs", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_TRANSFROM) == False:
- return False
- TAKE_SCREENSHOT(ST18_MULTITASKING.__name__ + '_csfs_Launched.png')
-
- print("- Launch browser")
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- if SEND_KEY_WAIT_APP_LAUNCHING("Return", "org.tizen.browser", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_LOAD) == False:
- for i in range(6):
- SEND_KEY("Left", WAIT_AFTER_KEY)
- SEND_KEY("Return", WAIT_FOR_APP_TRANSFROM)
- return False
- TAKE_SCREENSHOT(ST18_MULTITASKING.__name__ + '_browser_Launched.png')
- RESET_TO_TVPLUS()
-
- return True
-
-def ST19_20_NETFLIX():
- CHECK_APP_INSTALLED()
- print("- Launch netflix")
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- #nexflix
- if SEND_KEY_WAIT_APP_LAUNCHING("Return", "org.tizen.netflix-app", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_LOAD) == False:
- RESET_TO_TVPLUS()
- return False
- TAKE_SCREENSHOT(ST19_20_NETFLIX.__name__ + '_Netflix_Launched.png')
-
- print("- TV On/OFF Test in Netflix")
- SEND_KEY("XF86PowerOff", WAIT_AFTER_KEY)
- time.sleep(10)
- SEND_KEY("XF86PowerOff", WAIT_AFTER_KEY)
- if SEND_KEY_WAIT_APP_LAUNCHING("", "org.tizen.netflix-app", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_LOAD):
- return False
- CHECK_NOTI_POPUP()
- TAKE_SCREENSHOT(ST19_20_NETFLIX.__name__ + '_After_Turn_Off.png')
-
- RESET_TO_TVPLUS()
-
- return True
-
-def ST21_22_AMBIENT():
- print("- Run Ambient")
- SEND_KEY("Left", WAIT_AFTER_KEY)
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY_WAIT_EVENT("Return", "EVENT_WINDOW_IDLE", WAIT_AFTER_KEY)
- TAKE_SCREENSHOT(ST21_22_AMBIENT.__name__ + '_Ambient_Start.png')
-
- print("- Launch Art-app")
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- if SEND_KEY_WAIT_APP_LAUNCHING("Return", "org.tizen.art-app", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_LAUNCH) == False:
- return False
- TAKE_SCREENSHOT(ST21_22_AMBIENT.__name__ + '_Artapp_Launched.png')
-
- #FIXME: We need to test ST_22 but embient key is not exist.
- #Back to csfs home view
- SEND_KEY("XF86Exit", WAIT_FOR_APP_LOAD)
- SEND_KEY("Left", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY_WAIT_EVENT("Return", "EVENT_WINDOW_IDLE", WAIT_AFTER_KEY)
-
- return True
-
-def ST23_MULTIVIEW():
- SEND_KEY("Left", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Return", WAIT_FOR_APP_TRANSFROM)
- SEND_KEY("Right", WAIT_AFTER_KEY)
- if SEND_KEY_WAIT_APP_LAUNCHING("Return", "com.samsung.tv.multiscreen", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_LOAD) == False:
- return False
- TAKE_SCREENSHOT(ST23_MULTIVIEW.__name__ + '_Multiview_Launched.png')
-
- RESET_TO_TVPLUS()
-
- return True
-
-def ST24_ROTATION():
- print("- Device rotation to 90, 180, 270, 0")
- degrees = [90, 180, 270, 0]
-
- for degree in degrees:
- DEVICE_ROTATION(degree)
- time.sleep(WAIT_FOR_APP_TRANSFROM)
- TAKE_SCREENSHOT(ST24_ROTATION.__name__ + '_' + str(degree) + '.png')
-
- return True
-
-def ST25_SEARCH():
- SEND_KEY("Left", WAIT_AFTER_KEY)
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY("Up", WAIT_AFTER_KEY)
- if SEND_KEY_WAIT_APP_LAUNCHING("Return", "com.samsung.tv.searchall", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_LOAD) == False:
- return False
- TAKE_SCREENSHOT(ST25_SEARCH.__name__ + '_Searchall_Launched.png')
- SEND_KEY("Up", WAIT_AFTER_KEY)
- SEND_KEY("Return", WAIT_FOR_APP_TRANSFROM)
- SEND_KEY("Return", WAIT_FOR_APP_TRANSFROM) #a
- SEND_KEY("Right", WAIT_AFTER_KEY)
- SEND_KEY("Return", WAIT_FOR_APP_CONTENT_LOAD) #b
- TAKE_SCREENSHOT(ST25_SEARCH.__name__ + '_Searchall_Searching.png')
-
- #Return to Korean Keyboard
- SEND_KEY("Left", WAIT_AFTER_KEY)
- SEND_KEY("Left", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Return", WAIT_FOR_APP_TRANSFROM)
-
- return True
-
-def ST26_CSFS():
- print("- CSFS test")
- SEND_KEY("Up", WAIT_AFTER_KEY)
- StubSingleton.get_stub().sendKey(ReqKey(type="XF86", actionType="REPEAT", XF86keyCode="Right", durationMs=5000, intervalMs=50)) # long press key
- TAKE_SCREENSHOT(ST26_CSFS.__name__ + '_LongPress_Move.png')
-
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- TAKE_SCREENSHOT(ST26_CSFS.__name__ + '_Thumbnail_Move.png')
-
- SEND_KEY("Left", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- SEND_KEY("Down", WAIT_AFTER_KEY)
- StubSingleton.get_stub().sendKey(ReqKey(type="XF86", actionType="REPEAT", XF86keyCode="Right", durationMs=5000, intervalMs=50)) # long press key
- TAKE_SCREENSHOT(ST26_CSFS.__name__ + '_Setting_Move.png')
-
- return True
-
-def PRE_TEST():
- CHECK_NOTI_POPUP()
- HOME()
-
-def POST_TEST():
- HOME()
-
-def runTest(testFunc):
- global SUCCESS
- global FAIL
- global TEST_RESULT
- print("Test Start : ", testFunc)
- PRE_TEST()
- ret = testFunc()
- POST_TEST()
- print("Test Finish Result = " + str(ret) + "\n")
- if ret:
- SUCCESS += 1
- else:
- FAIL += 1
-
- TEST_RESULT += [
- {
- 'test_name' : str(testFunc).split(' ')[1],
- 'test_result': str(ret)
- }
- ]
-
-def run():
- startTime = time.time()
-
- INIT_VD_SMOKE_TEST()
-
- #Start TV Smoke Test
- if CHECK_USB_PLUGGED():
- runTest(ST08_MY_CONTENT)
- runTest(ST10_11_12_CHANNEL_VOLUME_CHANGE)
- runTest(ST26_CSFS)
- runTest(ST24_ROTATION)
- runTest(ST13_BROWSER)
- runTest(ST19_20_NETFLIX)
- runTest(ST14_15_YOUTUBE)
- runTest(ST18_MULTITASKING)
- runTest(ST23_MULTIVIEW)
- runTest(ST21_22_AMBIENT)
- runTest(ST04_MENU_CONTROL)
- runTest(ST07_09_16_17_APP_INSTALL)
- runTest(ST25_SEARCH)
-
- CREATE_HTML_FILE()
-
- print("--- Total Cases : {} [ Success : {} Fail : {} ] ---\n".format(SUCCESS+FAIL, SUCCESS, FAIL))
- print("--- Test takes " + f"{time.time() - startTime: .3f} sec ---\n")
-
- print("--- Exist CS file list ---")
- CHECK_CRASH_REPORT()
-
-if __name__ == '__main__':
- run()
+++ /dev/null
-from __future__ import print_function
-import os
-import subprocess
-import re
-import sys
-import time
-import datetime
-from aurum_pb2 import *
-from aurum_pb2_grpc import BootstrapStub
-import grpc
-import numpy as np
-import cv2
-from PIL import Image
-
-#Defined values
-WAIT_AFTER_KEY = 1
-WAIT_FOR_APP_TRANSFROM = 3
-WAIT_FOR_APP_CONTENT_LOAD = 5
-WAIT_FOR_APP_LOAD = 10
-WAIT_FOR_APP_LAUNCH = 30
-WAIT_FOR_CONTENT_DOWNLOAD = 40
-TIMEOUT_MS = 5000
-LOGIN = 0
-TVING_APP = "HLoFAbhj6Q.TVING"
-SUCCESS = 0
-FAIL = 0
-
-global DEVICE_INFO
-global FOLDER_NAME
-TEST_RESULT = []
-
-#Class for Stub singleton
-class StubSingleton:
- _instance = None
-
- @classmethod
- def get_stub(cls):
- if cls._instance is None:
- cls._instance = BootstrapStub(grpc.insecure_channel('127.0.0.1:50051', options=[ ('grpc.max_send_message_length', 1920*1080*4+5), ('grpc.max_receive_message_length', 1920*1080*4+5)]))
- return cls._instance
-
-#Check given applicaiton running state
-def CHECK_APP_RUNNING(app):
- return StubSingleton.get_stub().getAppInfo(ReqGetAppInfo(packageName=app)).isFocused
-
-#Please given message and back to home
-def IS_APP_LAUNCHING_FAIL(app):
- if CHECK_APP_RUNNING(app) == False:
- print(app +" launching fail Back to home")
- SEND_KEY_WAIT_EVENT("XF86Home", "EVENT_WINDOW_ACTIVATE", WAIT_FOR_APP_TRANSFROM)
- return False
- return True
-
-#Send key and wait event untill waitSec then sleep for delay time
-def SEND_KEY_WAIT_APP_LAUNCHING(key, app, waitSec, delay):
- launch_request = time.time()
- SEND_KEY(key, WAIT_AFTER_KEY)
- while 1:
- time.sleep(0.1)
- if CHECK_APP_RUNNING(app) == True:
- time.sleep(delay)
- print(app + " Launched")
- break
- if time.time() - launch_request > waitSec:
- print(app + " Launch Fail")
- return False
-
-#Take screenshot with given file name
-def TAKE_SCREENSHOT(name):
- global FOLDER_NAME
- responses = StubSingleton.get_stub().takeScreenshot(ReqTakeScreenshot(getPixels=True))
- for response in responses:
- buf = np.frombuffer(response.image, dtype=np.uint8).reshape(1080,1920,4)
- image = cv2.cvtColor(buf, cv2.COLOR_RGBA2RGB)
- save_location = f"{FOLDER_NAME}/{name}"
- cv2.imwrite(save_location, image)
- #with open(name, 'wb') as fout:
- # cv2.imwrite(name, image)
-
-#Run command in device shell
-def RUN_COMMAND(command):
- stream = os.popen(command)
- output = stream.read()
- return output
-
-#Login samsung account
-def SAMSUNG_ACCOUNT_LOGIN():
- global LOGIN
- if LOGIN:
- print("Already setup samsung account\n")
- else:
- RUN_COMMAND("sdb shell ssoscmd -c 4 -d iottest0909@gmail.com@SSOSVCAPI@1q2w3e")
- print("Samsung account login\n")
- LOGIN = 1
- time.sleep(10)
-
-#Device Rotation with given degree
-def DEVICE_ROTATION(degree):
- RUN_COMMAND("sdb shell winfo -rotation set " + str(degree))
-
-#Send given key event and wait given specific event till @TIMEOUT_MS then wait some time
-"""
- EVENT_WINDOW_ACTIVATE
- EVENT_WINDOW_DEACTIVATE
- EVENT_WINDOW_MINIMIZE
- EVENT_WINDOW_RAISE
- EVENT_WINDOW_IDLE
- EVENT_STATE_CHANGED_FOCUSED
-"""
-def SEND_KEY_WAIT_EVENT(key, event, delay):
- StubSingleton.get_stub().actionAndWaitEvent(ReqActionAndWaitEvent(type="KEY", XF86keyCode=key, eventType=event, timeoutMs=TIMEOUT_MS))
- time.sleep(delay)
-
-#Send key event and wait some time
-def SEND_KEY(key, delay):
- StubSingleton.get_stub().sendKey(ReqKey(type="XF86", actionType="STROKE", XF86keyCode=key))
- time.sleep(delay)
-
-#Back to home
-def HOME():
- SEND_KEY_WAIT_EVENT("XF86Home", "EVENT_WINDOW_ACTIVATE", WAIT_FOR_APP_TRANSFROM)
-
-#Check notification popup activated or not it also can test "7 Global Notification Test"
-def CHECK_NOTI_POPUP():
- if StubSingleton.get_stub().getAppInfo(ReqGetAppInfo(packageName='com.samsung.tv.notification-app')).isRunning:
- TAKE_SCREENSHOT('ST7_NOTI_POPUP.png')
- print("#7. Global Notification")
- SEND_KEY_WAIT_EVENT("Return", "EVENT_WINDOW_DEACTIVATE")
- time.sleep(WAIT_FOR_APP_TRANSFROM)
-
-#Check sdb connected or not
-def CHECK_SDB():
- stream = os.popen("command -v sdb")
- output = stream.read()
- if len(output) > 0:
- return True
- else:
- print("Error - Can't run sdb")
- return False
-
-#Reset to TVPlus
-def RESET_TO_TVPLUS():
- print("Reset to TVPlus")
- if SEND_KEY_WAIT_APP_LAUNCHING("XF86Home", "com.samsung.tv.csfs", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_LOAD) == False:
- return False
- SEND_KEY("Up", WAIT_AFTER_KEY)
- if SEND_KEY_WAIT_APP_LAUNCHING("Return", "org.tizen.tv-viewer", WAIT_FOR_APP_LAUNCH, WAIT_FOR_APP_TRANSFROM) == False:
- return False
-
-#Print testing device env
-def GET_DEVICE_INFO():
- global DEVICE_INFO
- print("--- Test Device Info ---")
- stream = os.popen("sdb shell cat /etc/info.ini")
- output = stream.read()
- DEVICE_INFO = output
- print(DEVICE_INFO)
-
-#Check aurum ready or not
-def CHECK_AURUM_READY():
- stream = os.popen("sdb shell 'ps -e | grep aurum-bootstrap'")
- output = stream.read()
- if len(output) > 0:
- return True
- else:
- print("Error - aurum-bootstrap not launched on target")
- print("Try to launch aurum-bootstrap")
- stream = os.popen("sdb shell app_launcher -s org.tizen.aurum-bootstrap")
- output = stream.read()
- time.sleep(1)
- if len(output) > 0:
- print("Success to launch aurum-bootstrap")
- return True
-
- print("Error - Can't launch aurum-bootstrap")
- return False
-
-#Create folder to save imgs
-def CREATE_FOLDER_TO_SAVE_CAPTURES():
- now = datetime.datetime.now()
- global FOLDER_NAME
- FOLDER_NAME = now.strftime("VD_ST_%Y-%m-%d_%H-%M-%S")
- os.mkdir(FOLDER_NAME)
-
-def CHECK_APP_INSTALLED():
- print("--- Check needed app installed")
-
- while True:
- netflix = StubSingleton.get_stub().getAppInfo(ReqGetAppInfo(packageName='org.tizen.netflix-app')).isInstalled
- youtube = StubSingleton.get_stub().getAppInfo(ReqGetAppInfo(packageName='com.samsung.tv.cobalt')).isInstalled
- browser = StubSingleton.get_stub().getAppInfo(ReqGetAppInfo(packageName='org.tizen.browser')).isInstalled
- if netflix and youtube and browser:
- break
- print("Waiting app installed [ netflix: {} , youtube: {} , browser: {} ] ".format(netflix, youtube, browser))
- time.sleep(5)
-
- HOME()
-
-def CHECK_CRASH_REPORT():
- print(RUN_COMMAND("sdb shell ls /opt/share/crash/report"))
-
-def CHECK_ELM_ATSPI_MODE():
- output = RUN_COMMAND("sdb shell cat /etc/profile.d/efl.sh")
- target_string = "ELM_ATSPI_MODE"
-
- if target_string in output:
- return True
- else:
- print("Error - Need to add 'ELM_ATSPI_MODE=1' in /etc/profile.d/efl.sh then reboot please. ")
- return False
-
-def CHECK_USB_PLUGGED():
- output = RUN_COMMAND("sdb shell lsblk")
- target_string = "USB"
-
- if target_string in output:
- return True
- else:
- print("NOTICE - USB is not Plugged. Test can generated except ST08_MY_CONTENT\n")
- return False
-
-def FIND_IMAGE_WITH_PREFIX(folder_name, prefix):
- image_files = []
-
- for file_name in os.listdir(folder_name):
- file_path = os.path.join(folder_name, file_name)
-
- if file_name.startswith(prefix):
- image_files.append(file_path)
-
- image_files.sort()
- return image_files
-
-def FILTER_ITEMS_WITH_STRING(arr, search_string):
- filtered_arr = [item for item in arr if search_string in item]
- return filtered_arr
-
-def CREATE_HTML_FILE():
- sorted_result = sorted(TEST_RESULT, key=lambda x: x['test_name'])
- expected_imgs = GET_EXPECTED_IMAGE_LIST()
-
- html_content = f'''
- <!DOCTYPE html>
- <html>
- <head>
- <title>Test Results</title>
- <div>Test device info : <br> {DEVICE_INFO}</div>
- <style>
- table {{
- border-collapse: collapse;
- width: 100%;
- }}
- th, td {{
- border: 1px solid black;
- padding: 8px;
- text-align: left;
- }}
- </style>
- </head>
- <body>
- <h1>Test Results</h1>
- <table>
- <tr>
- <th>Test Name</th>
- <th>Test Result</th>
- <th>Expected Image - Tizen 7.0 230516</th>
- <th>Test Image</th>
- </tr>
- '''
-
- for test in sorted_result:
- test_name = test['test_name']
- test_result = test['test_result']
- test_expected_imgs = FILTER_ITEMS_WITH_STRING(expected_imgs, test_name)
- test_images = FIND_IMAGE_WITH_PREFIX(FOLDER_NAME, test_name)
-
- html_content += f'''
- <tr>
- <td rowspan={len(test_expected_imgs)}>{test_name}</td>
- <td rowspan={len(test_expected_imgs)}>{test_result}</td>
- '''
-
- for idx in range(len(test_expected_imgs)):
- if idx != 0:
- html_content += f'''
- <tr>
- '''
-
- html_content += f'''
- <td><img src="{test_expected_imgs[idx]}" width="480" height="270" alt="{test_name} Image"></td>
- '''
-
- if idx < len(test_images):
- html_content += f'''
- <td><img src="{test_images[idx]}" width="480" height="270" alt="{test_name} Image"></td>
- '''
-
- html_content += f'''
- </tr>
- '''
-
- html_content += '''
- </table>
- </body>
- </html>
- '''
-
- result = f"{FOLDER_NAME}_Test_Result.html"
- with open(result, 'w') as file:
- file.write(html_content)
-
-def GET_EXPECTED_IMAGE_LIST():
- img_list = [
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST04_MENU_CONTROL_Broadcasting_Info.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST04_MENU_CONTROL_Channel_Info.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST04_MENU_CONTROL_Menu.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST07_09_16_17_APP_INSTALL_Install_Notification.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST07_09_16_17_APP_INSTALL_TVing_Delete.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST07_09_16_17_APP_INSTALL_TVing_Launch.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST08_MY_CONTENT_Launched.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST08_MY_CONTENT_Music_Play.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST08_MY_CONTENT_Photo_Player.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST08_MY_CONTENT_Video_Player.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST10_11_12_CHANNEL_VOLUME_CHANGE_Channel_Down.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST10_11_12_CHANNEL_VOLUME_CHANGE_Channel_Up.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST10_11_12_CHANNEL_VOLUME_CHANGE_Volume_Down.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST10_11_12_CHANNEL_VOLUME_CHANGE_Volume_Up.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST13_BROWSER_After_Turn_Off.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST13_BROWSER_Launched.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST14_15_YOUTUBE_After_Turn_Off.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST14_15_YOUTUBE_Launched.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST18_MULTITASKING_Youtube_Launched.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST18_MULTITASKING_browser_Launched.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST18_MULTITASKING_csfs_Launched.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST19_20_NETFLIX_After_Turn_Off.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST19_20_NETFLIX_Netflix_Launched.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST21_22_AMBIENT_Ambient_Start.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST21_22_AMBIENT_Artapp_Launched.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST23_MULTIVIEW_Multiview_Launched.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST24_ROTATION_0.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST24_ROTATION_180.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST24_ROTATION_270.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST24_ROTATION_90.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST25_SEARCH_Searchall_Launched.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST25_SEARCH_Searchall_Searching.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST26_CSFS_LongPress_Move.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST26_CSFS_Setting_Move.png',
- 'https://pages.github.sec.samsung.net/NUI/AurumTestScript/ReleaseTest/VDSmokeTest/Expected_Images/ST26_CSFS_Thumbnail_Move.png'
- ]
-
- return img_list
-
-#Configure Smoke Test
-def INIT_VD_SMOKE_TEST():
- # Command Timeout Setting
- StubSingleton.get_stub().setTimeout(ReqSetTimeout(timeout = TIMEOUT_MS))
- if not CHECK_ELM_ATSPI_MODE():
- sys.exit()
- if not CHECK_SDB():
- sys.exit()
- if not CHECK_AURUM_READY():
- sys.exit()
- GET_DEVICE_INFO()
- SAMSUNG_ACCOUNT_LOGIN()
- CREATE_FOLDER_TO_SAVE_CAPTURES()