1 from __future__ import print_function
4 sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(os.path.dirname(__file__)))))
5 from aurum_pb2 import *
6 from aurum_pb2_grpc import BootstrapStub
11 # Check the object in the screen(TM1) or not
13 if size.x < 0: return False
14 if size.y < 0: return False
15 if size.x >= 720: return False
16 if size.y >= 1280: return False
19 # 1. Find TextField(entry)
20 # 2. Set Text as Picker
22 # 4. Find PickerTest1 item on the result list
23 # 5. Find 'Black' textlabel on the layout
24 def PickerExecuteTestWithText(stub):
26 response = stub.findElement(ReqFindElement(widgetType='TextField'))
27 if len(response.elements) <= 0: return False
29 targetObj = response.elements[0].elementId
31 stub.setValue(ReqSetValue(elementId=targetObj, stringValue=testString))
33 response = stub.findElement(ReqFindElement(textField='Run'))
34 if len(response.elements) <= 0: return False
35 targetObj = response.elements[0].elementId
36 stub.click(ReqClick(type='ELEMENTID', elementId=targetObj))
38 response = stub.findElement(ReqFindElement(textField='PickerTest1'))
39 if len(response.elements) <= 0: return False
40 targetObj = response.elements[0].elementId
41 stub.click(ReqClick(type='ELEMENTID', elementId=targetObj))
43 response = stub.findElement(ReqFindElement(textField='Black'))
44 if len(response.elements) <= 0: return False
48 # 1. Find PickerTest1 item on the list
49 # 2. Click PickerTest1 item
50 # 3. Find 'Black' textlabel on the layout
51 def PickerExecuteTest(stub):
52 for tryCnt in range(10):
54 stub.flick(ReqFlick(startPoint=Point(x=300, y=750), endPoint=Point(x=300, y=200), durationMs=150))
55 response = stub.findElement(ReqFindElement(textField='PickerTest1'))
56 if len(response.elements) <= 0: continue
57 targetObj = response.elements[0].elementId
58 response = stub.getSize(ReqGetSize(elementId=targetObj))
59 if inScreen(response.size):
61 stub.click(ReqClick(type='ELEMENTID', elementId=targetObj))
65 response = stub.findElement(ReqFindElement(textField='Black'))
66 if len(response.elements) <= 0: return False
69 # 1. Find PickerScroller(Picker's internal scroller)
70 # 2. Find 'Black' textlabel on the layout
71 # 3. Get PickerScroller geometry value for flick event
72 # 4. Check the loop works well while changing the picker item by flick event
73 def PickerScrollTest(stub):
75 response = stub.findElement(ReqFindElement(widgetType='PickerScroller'))
76 if len(response.elements) <= 0: return False
78 responseText = stub.findElement(ReqFindElement(textField='Black'))
79 if len(response.elements) <= 0: return False
81 pickerCenterX = response.elements[0].geometry.x + (response.elements[0].geometry.width / 2)
82 pickerCenterY = response.elements[0].geometry.y + (response.elements[0].geometry.height / 2)
84 for tryCnt in range(30):
86 stub.flick(ReqFlick(startPoint=Point(x=int(pickerCenterX), y=int(pickerCenterY)), endPoint=Point(x=int(pickerCenterX), y=int(pickerCenterY-70)), durationMs=100))
87 response = stub.findElement(ReqFindElement(textField='Black'))
88 if len(response.elements) > 0:
89 if response.elements[0].elementId == responseText.elements[0].elementId:
94 # Launch application. it returns application running state
95 def launchAppTest(stub):
96 stub.launchApp(ReqLaunchApp(packageName='org.tizen.example.NUITizenGallery'))
97 return stub.getAppInfo(ReqGetAppInfo(packageName='org.tizen.example.NUITizenGallery')).isRunning
99 # Close application. it returns application running state
100 def closeAppTest(stub):
101 stub.closeApp(ReqCloseApp(packageName='org.tizen.example.NUITizenGallery'))
102 return stub.getAppInfo(ReqGetAppInfo(packageName='org.tizen.example.NUITizenGallery')).isRunning != True
104 def defaultSetup(stub):
105 if stub.getAppInfo(ReqGetAppInfo(packageName='org.tizen.example.NUITizenGallery')).isRunning:
106 stub.closeApp(ReqCloseApp(packageName='org.tizen.example.NUITizenGallery'))
108 stub.launchApp(ReqLaunchApp(packageName='org.tizen.example.NUITizenGallery'))
110 def defaultTearDown(stub):
111 stub.closeApp(ReqCloseApp(packageName='org.tizen.example.NUITizenGallery'))
113 def runTest(stub, testFunc, setup=defaultSetup, tearDown=defaultTearDown, alwaySucceed=False):
114 print("Testing started :", testFunc)
117 result = testFunc(stub)
120 print("Testing result :", result)
121 if alwaySucceed: return True
123 def runTestWithoutSetupAndTearDown(stub, testFunc, setup=defaultSetup, tearDown=defaultTearDown):
127 runTest(stub, testFunc, Empty, Empty)
130 with grpc.insecure_channel('127.0.0.1:50051') as channel:
131 stub = BootstrapStub(channel)
133 runTestWithoutSetupAndTearDown(stub, launchAppTest)
134 runTestWithoutSetupAndTearDown(stub, PickerExecuteTestWithText)
135 runTestWithoutSetupAndTearDown(stub, PickerScrollTest)
136 runTestWithoutSetupAndTearDown(stub, closeAppTest)
138 if __name__ == '__main__':
139 logging.basicConfig()