From 6694eb7a4ced73b8e5ba3241a44d60b4f7c667bc Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 4 Sep 2012 14:43:08 +0200 Subject: [PATCH] Test lib + samples added --- tests/call.py | 34 ++++++++++++++++++++ tests/install.py | 28 ++++++++++++++++ tests/lib/LinphoneTest$py.class | Bin 0 -> 7645 bytes tests/lib/LinphoneTest.py | 55 ++++++++++++++++++++++++++++++++ tests/lib/__init__$py.class | Bin 0 -> 2049 bytes tests/lib/__init__.py | 0 6 files changed, 117 insertions(+) create mode 100644 tests/call.py create mode 100644 tests/install.py create mode 100644 tests/lib/LinphoneTest$py.class create mode 100644 tests/lib/LinphoneTest.py create mode 100644 tests/lib/__init__$py.class create mode 100644 tests/lib/__init__.py diff --git a/tests/call.py b/tests/call.py new file mode 100644 index 000000000..e102481df --- /dev/null +++ b/tests/call.py @@ -0,0 +1,34 @@ +from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice +from com.android.monkeyrunner.easy import EasyMonkeyDevice + +from lib.LinphoneTest import LinphoneTest + +class CallTest(LinphoneTest): + def precond(self): + # Be sure to be on dialer screen + dialer = self.find('dialer') + self.easyDevice.touch(dialer, MonkeyDevice.DOWN_AND_UP) + MonkeyRunner.sleep(1) + + def test(self): + # Type a SIP address + address = self.find('Adress') + self.easyDevice.type(address, 'cotcot@sip.linphone.org') + self.device.press('KEYCODE_BACK', MonkeyDevice.DOWN_AND_UP) + + # Try to call previously typed address + call = self.find('Call') + self.easyDevice.touch(call, MonkeyDevice.DOWN_AND_UP) + MonkeyRunner.sleep(2) + + # Check if the call is outgoing correctly + contact = self.find('contactNameOrNumber') + return contact + + def postcond(self): + # Stop the call + hangUp = self.find('hangUp') + self.easyDevice.touch(hangUp, MonkeyDevice.DOWN_AND_UP) + +callTest = CallTest('Call') +callTest.run() \ No newline at end of file diff --git a/tests/install.py b/tests/install.py new file mode 100644 index 000000000..77a21a02e --- /dev/null +++ b/tests/install.py @@ -0,0 +1,28 @@ +from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice +from com.android.monkeyrunner.easy import EasyMonkeyDevice + +from lib.LinphoneTest import LinphoneTest + +class InstallTest(LinphoneTest): + def test(self): + # Parameters, must be the same as in the build.xml file + package = 'org.linphone' + appname = 'Linphone' + activity = 'org.linphone.LinphoneLauncherActivity' + + # Installs the Android package. Notice that this method returns a boolean, so you can test + # to see if the installation worked. + self.device.installPackage('../bin/' + appname + '-debug.apk') + + # sets the name of the component to start + runComponent = package + '/' + activity + + # Runs the component and wait for it to be launched + self.device.startActivity(component=runComponent) + MonkeyRunner.sleep(7) + + menu = self.find('menu') + return menu + +installTest = InstallTest('Install') +installTest.run() \ No newline at end of file diff --git a/tests/lib/LinphoneTest$py.class b/tests/lib/LinphoneTest$py.class new file mode 100644 index 0000000000000000000000000000000000000000..1bd69ba0ec8e5646e322035014cf058060db5e7d GIT binary patch literal 7645 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 K?vlx7zUV*umSK$m literal 0 HcmV?d00001 diff --git a/tests/lib/LinphoneTest.py b/tests/lib/LinphoneTest.py new file mode 100644 index 000000000..1c7175c58 --- /dev/null +++ b/tests/lib/LinphoneTest.py @@ -0,0 +1,55 @@ +from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice +from com.android.monkeyrunner.easy import EasyMonkeyDevice +from com.android.monkeyrunner.easy import By + +class colors: + OK = '\033[92m' + KO = '\033[91m' + END = '\033[0m' + +class LinphoneTest(): + def __init__(self, test_name): + self.test_name = test_name + + # Connects to the current device + self.device = MonkeyRunner.waitForConnection() + self.easyDevice = EasyMonkeyDevice(self.device) + + def run(self): + self.precond() + + try: + result = self.test() + if result : + self.print_result_ok() + else : + self.print_result_ko() + + except Exception: + self.print_result_ko() + + finally: + self.postcond() + + def find(self, id): + view = By.id('id/' + id) + if not view: + raise Exception("View with id/" + id + " not found") + return view + + def print_result_ok(self): + print self.test_name + colors.OK + ' OK' + colors.END + + def print_result_ko(self): + print self.test_name + colors.KO + ' KO' + colors.END + + # Override following methods + def precond(self): + pass + + def test(self): + pass + + def postcond(self): + pass + \ No newline at end of file diff --git a/tests/lib/__init__$py.class b/tests/lib/__init__$py.class new file mode 100644 index 0000000000000000000000000000000000000000..d70f266353e3ea225f576850440c1484347cdd07 GIT binary patch literal 2049 zcmbtVU2_^$7=8{*Sip@TSDbi|5A#l>?WXjk0HYJf9hpmU<8N9`m}FXP7<1r3!^XZPskF z<5>*M&@h2W3}L7YiE$$pF^2GcM{tIVX9v{q8nhVVm}H2oTf*`-7-rIi$L67_+ossp z%bshA{d}g%aCtn;c30Fr%MlfG&*m!56F2EhRl_;F5k~^kgrURjCPTDfTYHP`9;Fx= zo>U|?T)=D$DO_X-)ris{q&@(KP5r=WalO;C4^2zx6_+qtwr*RZO$FdNQ#4%1YUBj} z@u8u6yyKB%x9mnfl4$wh7Eia$A`E>xw&02%>ILFy#Dw8W0AV94)IwKJ z6Hw~ybcK)ud4gHRXABwgziruE(1zM_1o6Otp8sZamhSit*ev6h)Ctz)j zBGGUUpT}XKz%W@iZM)X=mjgpNZ3MO7EA2|zVjYF8_ z%H0lSPBcy&ns%2fwBlzO<^uJL6^nNJ1i;pQisybNwbRtUwB}XpQcp{YXr5{D*MBI= zwu_gYu3P7_4h$(Olt(_RR>z`pZ3^Mg7lQC~XoaL`e-d+0kd$kZfFM`I5LP)gzRGP(4pdgM&oGlc#$4iZAJ>lYj-vdDY;k!h zv8*V{5#|)el=D;QHj9tkVIHTimCGU2nwD3