From d66081c45e9f6cc936cf17f24b83387a51118d5a Mon Sep 17 00:00:00 2001 From: navjot Date: Mon, 22 Feb 2021 23:47:23 +0530 Subject: [PATCH] Graphical UI tests for kivy desktop app --- src/bitmessagekivy/mpybit.py | 5 + .../test_kivy_bitmessgae_app.py | 144 ++++ .../test_telenium_cases.py | 710 ++++++++++++++++++ 3 files changed, 859 insertions(+) create mode 100644 src/graphicaltestingkivy/test_kivy_bitmessgae_app.py create mode 100644 src/graphicaltestingkivy/test_telenium_cases.py diff --git a/src/bitmessagekivy/mpybit.py b/src/bitmessagekivy/mpybit.py index 7d2bdd7a..48e15db1 100644 --- a/src/bitmessagekivy/mpybit.py +++ b/src/bitmessagekivy/mpybit.py @@ -1937,6 +1937,11 @@ class NavigateApp(MDApp): kivyuisignaler.release() super(NavigateApp, self).run() + # @staticmethod + def clickNavDrawer(self): + # import pdb;pdb.set_trace() + state.kivyapp.root.ids.nav_drawer.set_state('toggle') + @staticmethod def showmeaddresses(name="text"): """Show the addresses in spinner to make as dropdown""" diff --git a/src/graphicaltestingkivy/test_kivy_bitmessgae_app.py b/src/graphicaltestingkivy/test_kivy_bitmessgae_app.py new file mode 100644 index 00000000..780b5df4 --- /dev/null +++ b/src/graphicaltestingkivy/test_kivy_bitmessgae_app.py @@ -0,0 +1,144 @@ +import time +from telenium.tests import TeleniumTestCase +import random +import string +import os +import test_telenium_cases +from random import choice +from string import ascii_lowercase + + +class Bitmessage_Login_Screen(TeleniumTestCase): + """Login Functionality Testing""" + # cmd_entrypoint = [u'/home/cis/peterwork_new/PyBitmessage/src/main.py'] + cmd_entrypoint = [u'/home/cis/py3porting/Chatroom/PyBitmessage/src/main.py'] + + def runTest(self): + """Test Run Method.""" + print(self,"=====================Welcome To Kivy Testing Application=====================") + + def test_login_screen(self): + """Clicking on Proceed Button to Proceed to Next Screen.""" + print("=====================Test - Login Screen=====================") + # time.sleep(3) + # self.cli.drag("/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Login[0]/ScrollView[0]/BoxLayout[0]/MDCheckbox[0]","/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Login[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[0]",2) + time.sleep(3) + self.cli.wait_click('//Login/BoxLayout[0]/BoxLayout[0]/ScreenManager[0]/Screen[0]/BoxLayout[0]/AnchorLayout[3]/MDFillRoundFlatIconButton[0]') + # self.cli.wait_click(u'/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Login[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[2]/AnchorLayout[0]/MDRaisedButton[0]/MDLabel[0]') + time.sleep(3) + + def test_random_screen(self): + """Creating New Adress For New User.""" + print("=====================Test - Create New Address=====================") + self.cli.click_on('//RandomBoxlayout/BoxLayout[0]/AnchorLayout[1]/MDTextField[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Random[0]/ScrollView[0]/BoxLayout[0]/MDTextField[0]') + time.sleep(3) + self.cli.wait_click('//RandomBoxlayout/BoxLayout[0]/AnchorLayout[2]/MDFillRoundFlatIconButton[0]') + # self.cli.wait_click(u'/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Random[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[0]/AnchorLayout[0]/MDRaisedButton[0]/MDLabel[0]') + time.sleep(3) + self.cli.click_on('//RandomBoxlayout/BoxLayout[0]/AnchorLayout[1]/MDTextField[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Random[0]/ScrollView[0]/BoxLayout[0]/MDTextField[0]') + time.sleep(3) + random_label = "" + for _ in range(10): + random_label += choice(ascii_lowercase) + self.cli.setattr('//RandomBoxlayout/BoxLayout[0]/AnchorLayout[1]/MDTextField[0]', "text", random_label) + # self.cli.setattr(u'/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Random[0]/ScrollView[0]/BoxLayout[0]/MDTextField[0]', "text", random_label) + time.sleep(0.2) + time.sleep(1) + self.cli.wait_click('//RandomBoxlayout/BoxLayout[0]/AnchorLayout[2]/MDFillRoundFlatIconButton[0]') + # self.cli.wait_click(u'/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Random[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[0]/AnchorLayout[0]/MDRaisedButton[0]/MDLabel[0]') + time.sleep(5) + +if __name__ == '__main__': + """Start Application""" + # import pdb;pdb.set_trace() + TeleniumTestCase.start_process() + Bitmessage_Login_Screen().runTest() + print("==================start from first screen=====================") + f=open("/home/cis/.config/PyBitmessage/keys.dat") + get_file=f.read() + find_address=get_file.find("label") + print('m...................................', find_address) + if find_address != -1 and False: + # select_address=test_telenium_cases.Bitmessage_Select_Address() + # select_address.test_check_already_created_address() + # select_address.test_calling_all_methods() + # sent_message=test_telenium_cases.Bitmessage_Sent_Screen_Message() + # sent_message.test_select_sent() + # sent_message.test_sent_multiple_message() + # inbox_message=test_telenium_cases.Bitmessage_Inbox_Screen_Message() + # inbox_message.test_all_inbox_method() + # sent_message.test_all_sent_method() + # # sent_message.test_archive_sent_message_from_list() + # draft_message=test_telenium_cases.Bitmessage_Draft_Screen_Message() + # draft_message.test_all_draft_method() + # trash_message=test_telenium_cases.Bitmessage_Trash_Screen_Message() + # trash_message.test_delete_trash_message() + # all_mails=test_telenium_cases.Bitmessage_AllMail_Screen_Message() + # all_mails.test_select_all_mails() + # all_mails.test_delete_message_from_draft() + address_book=test_telenium_cases.Bitmessage_AddressBook_Screen_Message() + address_book.test_all_address_book_method() + setting=test_telenium_cases.Bitmessage_Setting_Screen() + setting.test_setting() + existing_Address=test_telenium_cases.Bitmessage_MyAddress_Screen_Message() + existing_Address.test_select_myaddress_list() + existing_Address.test_send_message_from() + subscription_payment=test_telenium_cases.Bitmessage_SubscriptionPayment_Screen() + subscription_payment.test_select_subscripton() + credits=test_telenium_cases.Bitmessage_Credits_Screen() + credits.test_check_credits() + network_status=test_telenium_cases.Bitmessage_NetwrokStatus_Screen() + network_status.test_total_selection() + else : + # Bitmessage_Login_Screen().test_login_screen() + # Bitmessage_Login_Screen().test_random_screen() + # new_address=test_telenium_cases.Bitmessage_Create_New_Address() + # new_address.test_create_new_address() + # print('line.......................................97') + # Bitmessage_Login_Screen().test_random_screen() + # print('line.......................................99') + # select_address=test_telenium_cases.Bitmessage_Select_Address() + # print('line.......................................107') + # select_address.test_calling_all_methods() + # print('line.......................................105') + # sent_message=test_telenium_cases.Bitmessage_Sent_Screen_Message() + # sent_message.test_select_sent() + # print('line.......................................108') + # sent_message.test_sent_multiple_message() + # print('line.......................................110') + # inbox_message=test_telenium_cases.Bitmessage_Inbox_Screen_Message() + # inbox_message.test_all_inbox_method() + # print('line.......................................113') + # sent_message.test_all_sent_method() + # print('line.......................................115') + # draft_message=test_telenium_cases.Bitmessage_Draft_Screen_Message() + # print('line.......................................117') + # draft_message.test_all_draft_method() + # print('line.......................................119') + # trash_message=test_telenium_cases.Bitmessage_Trash_Screen_Message() + # print('line.......................................121') + # trash_message.test_delete_trash_message() + # print('line.......................................123') + # all_mails=test_telenium_cases.Bitmessage_AllMail_Screen_Message() + # print('line.......................................125') + # all_mails.test_select_all_mails() + # print('line.......................................127') + # all_mails.test_delete_message_from_draft() + print('line.......................................129') + address_book=test_telenium_cases.Bitmessage_AddressBook_Screen_Message() + address_book.test_all_address_book_method() + setting=test_telenium_cases.Bitmessage_Setting_Screen() + setting.test_setting() + existing_Address=test_telenium_cases.Bitmessage_MyAddress_Screen_Message() + existing_Address.test_select_myaddress_list() + existing_Address.test_send_message_from() + subscription_payment=test_telenium_cases.Bitmessage_SubscriptionPayment_Screen() + subscription_payment.test_select_subscripton() + credits=test_telenium_cases.Bitmessage_Credits_Screen() + credits.test_check_credits() + network_status=test_telenium_cases.Bitmessage_NetwrokStatus_Screen() + network_status.test_total_selection() + + \ No newline at end of file diff --git a/src/graphicaltestingkivy/test_telenium_cases.py b/src/graphicaltestingkivy/test_telenium_cases.py new file mode 100644 index 00000000..ab6031b7 --- /dev/null +++ b/src/graphicaltestingkivy/test_telenium_cases.py @@ -0,0 +1,710 @@ +from telenium.tests import TeleniumTestCase +import time +import random +import string +import os +data=[] + +class Bitmessage_Create_New_Address(TeleniumTestCase): + """Generate New Address Functionality Testing""" + + def runTest(self): + print(self,"-------------Welcome To Kivy Testing Application Thirteenth Page-------------") + + def test_create_new_address(self): + """Clicking on Navigation Drawer To Open New Address""" + print("=====================Test - Create New Address=====================") + time.sleep(5) + self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + time.sleep(2) + self.cli.drag("//NavigationItem[@text=\"Sent\"]","//NavigationItem[@text=\"Inbox\"]",1) + time.sleep(3) + self.cli.click_on('//NavigationItem[9]') + time.sleep(4) + self.cli.wait_click('//Login/BoxLayout[0]/BoxLayout[0]/ScreenManager[0]/Screen[0]/BoxLayout[0]/AnchorLayout[3]/MDFillRoundFlatIconButton[0]') + + +class Bitmessage_Select_Address(TeleniumTestCase): + """Select Address Functionality Testing""" + + def runTest(self): + print(self,"-------------Welcome To Kivy Testing Application second Page-------------") + + def test_check_already_created_address(self): + """Check The Address Is Already Created Or Not""" + print("=====================Test - Select Address From Navigation Drawer=====================") + time.sleep(6) + self.cli.execute('app.root.toggle_nav_drawer()') + time.sleep(4) + self.cli.drag("//NavigationDrawerSubheader[@text=\"All labels\"]","//NavigationDrawerIconButton[@text=\"All Mails\"]",1) + time.sleep(3) + self.cli.click_on('//NavigationDrawerIconButton[12]') + time.sleep(4) + + def test_select_second_address(self): + """Select Text From Second Address Generated""" + print("=====================Test - Select Text From Second Address Created====================") + global data + time.sleep(3) + second_address=self.cli.getattr("//CustomTwoLineAvatarIconListItem[0]","secondary_text") + first_address=self.cli.getattr("//CustomTwoLineAvatarIconListItem[1]","secondary_text") + data.append(second_address) + data.append(first_address) + print('DATA...........................:-', data) + return data + + def test_select_address(self): + """Select First Address From Drawer-Box""" + print("=====================Test - Select First Address From Drawer-Box=======================") + time.sleep(3) + # self.cli.execute('app.root.toggle_nav_drawer()') + self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + time.sleep(2) + # self.cli.drag("//NavigationDrawerSubheader[@text=\"All labels\"]","//NavigationDrawerIconButton[@text=\"Address Book\"]",2) + self.cli.drag("//NavigationItem[@text=\"Address Book\"]","//NavigationItem[@text=\"Settings\"]",1) + time.sleep(2) + # self.cli.click_on('//NavigationDrawerIconButton[0]') + self.cli.click_on('//NavigationItem[0]') + time.sleep(2) + self.cli.click_on('//NDBadgeLabel[1]') + # self.cli.click_on('//NavigationItem[0]/CustomSpinner[1]') + + def test_calling_all_methods(self): + self.test_select_second_address() + self.test_select_address() + +class Bitmessage_Inbox_Screen_Message(TeleniumTestCase): + """Inbox Screen Functionality Testing""" + + def runTest(self): + print(self,"-------------Welcome To Kivy Testing Application For Inbox Screen-------------") + + def test_select_inbox_of_second_address(self): + """Select Inbox Screen From Navigation-Drawer-Box""" + print("=====================Test - Select Second Address From Drawer-Box=======================") + time.sleep(2) + self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + time.sleep(3) + self.cli.click_on('//NavigationItem[0]') + time.sleep(3) + # self.cli.click_on('//NavigationItem[0]/CustomSpinner[0]/ArrowImg[1]') + self.cli.click_on('//NDBadgeLabel[2]') + time.sleep(2) + + def test_show_inbox_message(self): + """Select First Message from Inbox Screen""" + print("=====================Test - Select First Message from Inbox Screen=====================") + time.sleep(1) + self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + time.sleep(4) + self.cli.click_on('//TwoLineAvatarIconListItem[0]') + time.sleep(3) + self.cli.click_on('//MDIconButton[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[0]/MDToolbar[0]/BoxLayout[0]/MDIconButton[0]/MDLabel[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/Toolbar[0]/BoxLayout[0]/MDIconButton[0]/MDLabel[0]') + time.sleep(3) + + def test_delete_inbox_message(self): + """Deleting Message From Inbox Screen""" + print("=====================Test - Deleting Message From Inbox Screen=====================") + # time.sleep(4) + self.cli.drag('//TwoLineAvatarIconListItem[0]','//Button[@text=\"Delete\"]',1) + # self.cli.drag('//Inbox/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[1]//Button[0]', + # '//Inbox/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[0]//TwoLineAvatarIconListItem[0]',1) + + # self.cli.drag('/NavigationLayout/ScreenManager[0]/Inbox[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[0]/TwoLineAvatarIconListItem[0]/BoxLayout[1]', + # '/NavigationLayout/ScreenManager[0]/Inbox[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[1]/Button[0]', 1) + # self.cli.drag( + # '/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Inbox[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[2]/CustomTwoLineAvatarIconListItem[0]/BoxLayout[1]', + # '/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Inbox[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[1]/Button[0]',1) + time.sleep(2) + # self.cli.click_on('//Carousel//Button[0]') + # self.cli.click_on("//Button[@text=\"Delete\"]") + # self.cli.click_on('//Inbox/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]//Carousel//TwoLineAvatarIconListItem[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Inbox[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[1]/Button[0]') + time.sleep(4) + + def test_all_inbox_method(self): + """Calling All The Methods Inbox Class""" + # self.test_select_inbox_of_second_address() + print('line....................................11117') + # self.test_show_inbox_message() + print('line....................................11119') + self.test_delete_inbox_message() + print('line....................................11121') + + +class Bitmessage_Sent_Screen_Message(TeleniumTestCase): + """Sent Screen Functionality Testing""" + + def runTest(self): + print(self,"-------------Welcome To Kivy Testing Application Thirds Page-------------") + + def test_select_sent(self): + """Sending Message From Inbox Screen + opens a pop-up(screen)which send message from sender to reciever""" + print("=====================Test - Sending Message From Inbox Screen=====================") + time.sleep(2) + self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + # self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + time.sleep(1) + self.cli.click_on('//NavigationItem[1]') + time.sleep(1) + self.cli.click_on('//Inbox/ComposerButton[0]/MDFloatingActionButton[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Inbox[0]/ComposerButton[0]/MDFloatingActionButton[0]/MDLabel[0]') + time.sleep(3) + self.cli.click_on('//DropDownWidget/ScrollView[0]/BoxLayout[0]/BoxLayout[0]/MyMDTextField[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[0]/MDTextField[0]') + time.sleep(3) + self.cli.click_on('//DropDownWidget/ScrollView[0]/BoxLayout[0]/BoxLayout[1]/MyTextInput[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[1]/MyTextInput[0]') + time.sleep(3) + self.cli.setattr('//DropDownWidget/ScrollView[0]/BoxLayout[0]/BoxLayout[1]/MyTextInput[0]', "text", "second add") + # self.cli.setattr('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[1]/MyTextInput[0]',"text","second add") + time.sleep(3) + self.cli.click_on('//DropDownWidget/ScrollView[0]/BoxLayout[0]/MyMDTextField[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/MDTextField[0]') + time.sleep(4) + self.cli.click_on('//DropDownWidget/ScrollView[0]/BoxLayout[0]/ScrollView[0]/TextInput[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/MDTextField[1]') + time.sleep(4) + # time.sleep(3) + # print('line........................1544444444444444444444444444444') + self.cli.click_on('//MDIconButton[2]') + time.sleep(3) + # self.cli.click_on('//MDRaisedButton[0]') + self.cli.click_on('//MDFlatButton[0]') + time.sleep(5) + self.cli.click_on('//DropDownWidget/ScrollView[0]/BoxLayout[0]/BoxLayout[0]/BoxLayout[0]/CustomSpinner[0]/ArrowImg[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[0]/BoxLayout[0]/CustomSpinner[0]/ArrowImg[0]') + time.sleep(2) + self.cli.click_on('//MyTextInput[0]') + time.sleep(3) + self.cli.click_on('//DropDownWidget/ScrollView[0]/BoxLayout[0]/MyMDTextField[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/MDTextField[0]') + time.sleep(2) + self.cli.setattr('//DropDownWidget/ScrollView[0]/BoxLayout[0]/MyMDTextField[0]', 'text', 'heyyyyyy') + # self.cli.setattr('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/MDTextField[0]','text','heyyyyyy') + time.sleep(3) + self.cli.click_on('//DropDownWidget/ScrollView[0]/BoxLayout[0]/ScrollView[0]/TextInput[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/MDTextField[1]') + time.sleep(4) + random_label="" + for char in "how are you this is message body": + random_label += char + self.cli.setattr('//DropDownWidget/ScrollView[0]/BoxLayout[0]/ScrollView[0]/TextInput[0]','text',random_label) + # self.cli.setattr('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/MDTextField[1]','text',random_label) + time.sleep(0.2) + time.sleep(3) + self.cli.click_on('//MDIconButton[2]') + time.sleep(3) + # self.cli.click_on('//MDRaisedButton[0]') + self.cli.click_on('//MDFlatButton[0]') + time.sleep(6) + data = ['BM-2cURvaNogjXN48LvbNHZrjLx8QEkTMkETZ'] + self.cli.setattr('//DropDownWidget/ScrollView[0]/BoxLayout[0]/BoxLayout[1]/BoxLayout[0]/MyTextInput[0]',"text",data[0]) + # self.cli.setattr('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[1]/MyTextInput[0]',"text",data[0]) + time.sleep(3) + self.cli.click_on('//MDIconButton[2]') + time.sleep(3) + # self.cli.click_on('//MDRaisedButton[0]') + self.cli.click_on('//MDFlatButton[0]') + time.sleep(3) + + def test_sent_multiple_message(self): + """Sending Second Message From Inbox Screen + for testing the search and delete functionality for two messages on the screen""" + print("=====================Test - Sending Message From Inbox Screen=====================") + time.sleep(3) + # self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + time.sleep(5) + self.cli.click_on('//NavigationItem[1]') + time.sleep(3) + self.cli.click_on('//Inbox/ComposerButton[0]/MDFloatingActionButton[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Inbox[0]/ComposerButton[0]/MDFloatingActionButton[0]/MDLabel[0]') + time.sleep(3) + self.cli.click_on('//DropDownWidget/ScrollView[0]/BoxLayout[0]/BoxLayout[0]/BoxLayout[0]/CustomSpinner[0]/ArrowImg[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[0]/BoxLayout[0]/CustomSpinner[0]/ArrowImg[0]') + time.sleep(2) + self.cli.click_on('//MyTextInput[0]') + time.sleep(3) + data = ['BM-2cTjZyTDskQXEjJHEP3QFUKBbnojPtAfaC'] + self.cli.setattr('//DropDownWidget/ScrollView[0]/BoxLayout[0]/BoxLayout[1]/BoxLayout[0]/MyTextInput[0]', "text", data[0]) + # self.cli.setattr('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[1]/MyTextInput[0]',"text",data[0]) + time.sleep(3) + self.cli.setattr('//DropDownWidget/ScrollView[0]/BoxLayout[0]/MyMDTextField[0]', 'text', 'Second') + # self.cli.setattr('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/MDTextField[0]','text','Second') + time.sleep(3) + random_label="" + for char in "Hey This Is Second Message Body": + random_label += char + self.cli.setattr('//DropDownWidget/ScrollView[0]/BoxLayout[0]/ScrollView[0]/TextInput[0]',"text",random_label) + # self.cli.setattr('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/MDTextField[1]','text',random_label) + time.sleep(0.2) + time.sleep(2) + self.cli.click_on('//MDIconButton[2]') + time.sleep(5) + # self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + time.sleep(3) + self.cli.click_on('//NavigationItem[2]') + time.sleep(3) + + def test_show_sent_messgae_list(self): + """Displaying All the Messages on Sent Screen""" + print("=====================Test - Show Sent Screen Message=====================") + time.sleep(5) + self.cli.execute('app.clickNavDrawer()') + # self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + time.sleep(5) + self.cli.click_on('//NavigationItem[0]') + time.sleep(5) + self.cli.click_on('//NDBadgeLabel[1]') + self.cli.click_on('//NavigationItem[0]') #need to remove33 I have only put it because spinner is not workng + time.sleep(6) + self.cli.click_on('//NavigationItem[2]') + time.sleep(2) + + def test_search_sent_messages(self): + """Search Message From a Word Of Subject/Body on Sent Screen""" + print("=====================Test - Search Message On The Sent Screen=====================") + time.sleep(1) + self.cli.click_on('//Sent/BoxLayout[0]/SearchBar[0]/MDTextField[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Sent[0]/BoxLayout[0]/SearchBar[0]/MDTextField[0]') + time.sleep(2) + self.cli.setattr('//Sent/BoxLayout[0]/SearchBar[0]/MDTextField[0]', 'text', 'how') + # self.cli.setattr('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Sent[0]/BoxLayout[0]/SearchBar[0]/MDTextField[0]','text','how') + time.sleep(2) + self.cli.send_keycode('Enter') + time.sleep(5) + self.cli.click_on('//Sent/BoxLayout[0]/SearchBar[0]/MDIconButton[0]') + time.sleep(3) + + def test_show_sent_message_body(self): + """Show A Message From Message Body""" + print("=====================Test - Show A Message From Message Body=====================") + time.sleep(5) + self.cli.click_on('//Carousel[0]//TwoLineAvatarIconListItem[0]') + time.sleep(5) + self.cli.click_on('//MDToolbar/BoxLayout[0]/MDIconButton[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/Toolbar[0]/BoxLayout[0]/MDIconButton[0]/MDLabel[0]') + time.sleep(2) + + def test_delete_sent_message_body(self): + """Delete A Message From Message Body""" + print("=====================Test - Delete A Message From Message Body=====================") + time.sleep(2) + self.cli.click_on('//Sent/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]//TwoLineAvatarIconListItem[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Sent[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[2]/CustomTwoLineAvatarIconListItem[0]/BoxLayout[2]') + time.sleep(3) + self.cli.click_on('//MDToolbar/BoxLayout[2]/MDIconButton[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/Toolbar[0]/BoxLayout[2]/MDIconButton[0]/MDLabel[0]') + time.sleep(5) + + def test_delete_sent_message_from_list(self): + """Delete A Message From List Of Messages Of Sent Screen""" + print("=====================Test - Delete A Message From List Of Messages=====================") + time.sleep(5) + # self.cli.drag('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Sent[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[2]/TwoLineAvatarIconListItem[0]/BoxLayout[1]', + # '/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Sent[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[1]/Button[0]',1) + self.cli.drag('//Sent/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]//TwoLineAvatarIconListItem[0]/BoxLayout[0]', + '//Sent/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]//TwoLineAvatarIconListItem[0]/BoxLayout[2]', 2) + time.sleep(4) + self.cli.click_on('//Sent/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]//Button[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Sent[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[1]/Button[0]') + + def test_archive_sent_message_from_list(self): + """Archive A Message From List Of Messages Of Sent Screen""" + print("=====================Test - Archive A Message From List Of Messages=====================") + # Swipe-Arrchive-Sent-Message + time.sleep(4) + self.cli.drag('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Sent[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[2]/CustomTwoLineAvatarIconListItem[0]/BoxLayout[0]','/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Sent[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[0]/Button[0]',1) + time.sleep(2) + self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Sent[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[1]/Button[0]') + time.sleep(4) + + def test_all_sent_method(self): + """Calling All The Methods Sent Class""" + self.test_show_sent_messgae_list() + self.test_search_sent_messages() + self.test_show_sent_message_body() + self.test_delete_sent_message_body() + self.test_delete_sent_message_from_list() + + +class Bitmessage_Draft_Screen_Message(TeleniumTestCase): + """Draft Screen Functionality Testing""" + + def runTest(self): + print(self,"-------------Welcome To Kivy Testing Application Fourth Page-------------") + + def test_select_draft_message(self): + """Select A Draft Screen From Navigaion-Drawer-Box Then + Send a drafted message """ + print("=====================Test - Select A Draft Screen From Navigaion-Drawer-Box=====================") + # OPEN NAVIGATION-DRAWER + time.sleep(4) + self.cli.execute('app.clickNavDrawer()') + # self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + time.sleep(2) + # OPEN INBOX SCREEN + self.cli.click_on('//MDIconButton[1]') + time.sleep(2) + # CLICK ON PLUS ICON BUTTON + self.cli.click_on('//Inbox/ComposerButton[0]/MDFloatingActionButton[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Inbox[0]/ComposerButton[0]/MDFloatingActionButton[0]/MDLabel[0]') + time.sleep(3) + # SELECT - TO ADDRESS + self.cli.click_on('//DropDownWidget/ScrollView[0]/BoxLayout[0]/BoxLayout[0]/BoxLayout[0]/CustomSpinner[0]/ArrowImg[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[0]/BoxLayout[0]/CustomSpinner[0]/ArrowImg[0]') + time.sleep(2) + self.cli.click_on('//MyTextInput[0]') + time.sleep(3) + # ADD FROM MESSAGE + self.cli.setattr('//DropDownWidget/ScrollView[0]/BoxLayout[0]/BoxLayout[1]/BoxLayout[0]/MyTextInput[0]', "text",'BM-2cSsuH1bUWBski8bvdqnK2DivMqQCeQA1J') + # self.cli.setattr('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[1]/MyTextInput[0]',"text",'BM-2cSsuH1bUWBski8bvdqnK2DivMqQCeQA1J') + time.sleep(3) + # CLICK BACK-BUTTON + self.cli.click_on('//MDToolbar/BoxLayout[0]/MDIconButton[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/Toolbar[0]/BoxLayout[0]/MDIconButton[0]/MDLabel[0]') + time.sleep(5) + self.cli.click_on('//Inbox/ComposerButton[0]/MDFloatingActionButton[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Inbox[0]/ComposerButton[0]/MDFloatingActionButton[0]/MDLabel[0]') + time.sleep(3) + # SELECT - TO ADDRESS + self.cli.click_on('//DropDownWidget/ScrollView[0]/BoxLayout[0]/BoxLayout[0]/BoxLayout[0]/CustomSpinner[0]/ArrowImg[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[0]/BoxLayout[0]/CustomSpinner[0]/ArrowImg[0]') + time.sleep(1) + self.cli.click_on('//MyTextInput[0]') + time.sleep(3) + # ADD FROM MESSAGE + self.cli.setattr('//DropDownWidget/ScrollView[0]/BoxLayout[0]/BoxLayout[1]/BoxLayout[0]/MyTextInput[0]', "text",'BM-2cSsuH1bUWBski8bvdqnK2DivMqQCeQA1J') + # self.cli.setattr('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[1]/MyTextInput[0]',"text",'BM-2cSsuH1bUWBski8bvdqnK2DivMqQCeQA1J') + time.sleep(4) + random_label="" + for char in "Another Draft message": + random_label += char + self.cli.setattr('//DropDownWidget/ScrollView[0]/BoxLayout[0]/MyMDTextField[0]', 'text', random_label) + # self.cli.setattr('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/MDTextField[0]','text',random_label) + time.sleep(0.2) + # CLICK BACK-BUTTON + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/Toolbar[0]/BoxLayout[0]/MDIconButton[0]/MDLabel[0]') + self.cli.click_on('//MDToolbar/BoxLayout[0]/MDIconButton[0]') + time.sleep(4) + + def test_edit_draft_messgae(self): + """Select A Message From List of Messages Then + make changes and send it.""" + print("=====================Test - Edit A Message From Draft Screen=====================") + # OPEN NAVIGATION-DRAWER + # self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + self.cli.execute('app.clickNavDrawer()') + time.sleep(4) + # OPEN DRAFT SCREEN + self.cli.click_on('//NavigationItem[3]') + time.sleep(4) + # SHOW DRAFT MESSAGE AND SELECT FIRST MESSAGE + self.cli.click_on('//Carousel[0]//TwoLineAvatarIconListItem[0]') + time.sleep(3) + # CLICK EDIT BUTTON + self.cli.click_on('//MDToolbar/BoxLayout[2]/MDIconButton[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/Toolbar[0]/BoxLayout[2]/MDIconButton[0]/MDLabel[0]') + time.sleep(5) + random_label="" + for char in "Hey,This is draft Message Body": + random_label += char + self.cli.setattr('//DropDownWidget/ScrollView[0]/BoxLayout[0]/ScrollView[0]/TextInput[0]', 'text', random_label) + # self.cli.setattr('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/MDTextField[1]','text',random_label) + time.sleep(0.2) + time.sleep(3) + self.cli.click_on('//MDIconButton[2]') + time.sleep(5) + + def test_delete_draft_message(self): + """Delete A Message From List of Messages""" + print("=====================Test - Delete A Message From List of Messages=====================") + time.sleep(5) + # self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + self.cli.execute('app.clickNavDrawer()') + time.sleep(4) + self.cli.click_on('//NavigationItem[3]') + time.sleep(5) + self.cli.click_on('//Carousel[0]//TwoLineAvatarIconListItem[0]') + time.sleep(5) + self.cli.click_on('//MDToolbar/BoxLayout[2]/MDIconButton[1]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/Toolbar[0]/BoxLayout[2]/MDIconButton[1]/MDLabel[0]') + time.sleep(2) + + def test_all_draft_method(self): + """Calling All The Methods Draft Class""" + self.test_select_draft_message() + self.test_edit_draft_messgae() + self.test_delete_draft_message() + +class Bitmessage_AllMail_Screen_Message(TeleniumTestCase): + """AllMail Screen Functionality Testing""" + + def runTest(self): + print(self,"-------------Welcome To Kivy Testing Application Sixth Page-------------") + + def test_select_all_mails(self): + """Show All Messages on Mail Screen/Window""" + print("=====================Test -Show Messages Of Mail Screen=====================") + time.sleep(5) + # self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + self.cli.execute('app.clickNavDrawer()') + time.sleep(4) + self.cli.click_on('//NavigationItem[5]') + time.sleep(4) + + def test_delete_message_from_draft(self): + """Delete Message From Message body of Mail Screen/Window""" + print("=====================Test -Delete Messages Of Mail Screen=====================") + time.sleep(4) + self.cli.click_on('//Allmails[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Allmails[0]/Allmails[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]') + time.sleep(5) + self.cli.click_on('//MDToolbar/BoxLayout[2]/MDIconButton[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/Toolbar[0]/BoxLayout[2]/MDIconButton[0]/MDLabel[0]') + time.sleep(3) + +class Bitmessage_Trash_Screen_Message(TeleniumTestCase): + """Trash Screen Functionality Testing""" + + def runTest(self): + print(self,"-------------Welcome To Kivy Testing Application Fifth Page-------------") + + def test_delete_trash_message(self): + """Delete Message From List of Message Permanently Of Trash Screen/Window""" + print("=====================Test -Delete Messages Of Trash Screen=====================") + time.sleep(6) + # self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + self.cli.execute('app.clickNavDrawer()') + time.sleep(4) + self.cli.click_on('//NavigationItem[4]') + time.sleep(4) + self.cli.drag('//Trash/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]//TwoLineAvatarIconListItem[0]/BoxLayout[0]', + '//Trash/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]//TwoLineAvatarIconListItem[0]/BoxLayout[2]', 2) + # self.cli.drag('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Trash[0]/Trash[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[1]/CustomTwoLineAvatarIconListItem[0]/BoxLayout[1]/AvatarSampleWidget[0]','/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Trash[0]/Trash[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[1]/CustomTwoLineAvatarIconListItem[0]/BoxLayout[2]',1) + time.sleep(4) + self.cli.click_on('//Trash/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]//Button[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Trash[0]/Trash[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[1]/Button[0]') + time.sleep(2) + self.cli.click_on('//MDDialog/MDCard[0]/AnchorLayout[0]/MDBoxLayout[0]/MDFlatButton[0]') + time.sleep(4) + +class Bitmessage_AddressBook_Screen_Message(TeleniumTestCase): + """AddressBook Screen Functionality Testing""" + + def runTest(self): + print(self,"-------------Welcome To Kivy Testing Application Seven Page-------------") + + def test_save_address(self): + """Save Address On Address Book Screen/Window""" + print("=====================Test -Save Address In Address Book=====================") + time.sleep(6) + self.cli.execute('app.clickNavDrawer()') + # self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + time.sleep(4) + self.cli.drag("//NavigationItem[@text=\"Sent\"]","//NavigationItem[@text=\"Inbox\"]",1) + time.sleep(3) + self.cli.click_on('//NavigationItem[6]') + time.sleep(4) + self.cli.execute('app.addingtoaddressbook()') + time.sleep(3) + self.cli.click_on('//GrashofPopup/BoxLayout[0]/MDTextField[0]') + time.sleep(4) + self.cli.click_on('//GrashofPopup/BoxLayout[0]/MDTextField[1]') + time.sleep(4) + self.cli.click_on('//MDRaisedButton[0]') + time.sleep(4) + self.cli.click_on('//GrashofPopup/BoxLayout[0]/MDTextField[0]') + time.sleep(3) + self.cli.setattr('//GrashofPopup/BoxLayout[0]/MDTextField[0]','text','peter') + time.sleep(3) + self.cli.click_on('//MDRaisedButton[0]') + time.sleep(4) + self.cli.click_on('//GrashofPopup/BoxLayout[0]/MDTextField[1]') + time.sleep(3) + self.cli.setattr('//GrashofPopup/BoxLayout[0]/MDTextField[1]','text','sectorAppartment') + time.sleep(3) + self.cli.click_on('//MDRaisedButton[0]') + time.sleep(5) + self.cli.click_on('//GrashofPopup/BoxLayout[0]/MDTextField[1]') + time.sleep(3) + data = ['BM-2cURvaNogjXN48LvbNHZrjLx8QEkTMkETZ'] # remove it + self.cli.setattr('//GrashofPopup/BoxLayout[0]/MDTextField[1]','text',data[0]) + time.sleep(3) + self.cli.setattr('//GrashofPopup/BoxLayout[0]/MDTextField[1]','text','') + time.sleep(3) + self.cli.click_on('//MDRaisedButton[0]') + time.sleep(4) + self.cli.setattr('//GrashofPopup/BoxLayout[0]/MDTextField[1]','text','BM-2cX78L9CZpb6GGC3rRVizYiUBwHELMLybd') + time.sleep(3) + self.cli.click_on('//MDRaisedButton[0]') + time.sleep(4) + + def test_cancel_address(self): + """Cancel Address""" + print("=====================Test -Cancel Address=====================") + time.sleep(3) + self.cli.execute('app.addingtoaddressbook()') + time.sleep(3) + self.cli.setattr('//GrashofPopup/BoxLayout[0]/MDTextField[0]','text','prachi') + time.sleep(3) + data = ['BM-2cURvaNogjXN48LvbNHZrjLx8QEkTMkETZ'] # remove it + self.cli.setattr('//GrashofPopup/BoxLayout[0]/MDTextField[1]','text',data[0]) + time.sleep(3) + self.cli.click_on('//MDRaisedButton[1]') + + def test_send_message_to_addressbook(self): + """Directly Send Message To The User""" + print("=====================Test -Directly Send Message To The User=====================") + time.sleep(4) + self.cli.click_on('//AddressBook/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/AddressBook[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]') + time.sleep(3) + self.cli.click_on('//MDRaisedButton[0]') + time.sleep(3) + self.cli.click_on('//DropDownWidget/ScrollView[0]/BoxLayout[0]/BoxLayout[0]/BoxLayout[0]/CustomSpinner[0]/ArrowImg[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[0]/BoxLayout[0]/CustomSpinner[0]/ArrowImg[0]') + time.sleep(2) + self.cli.click_on('//DropDownWidget/ScrollView[0]/BoxLayout[0]/BoxLayout[1]/BoxLayout[0]/MyTextInput[0]') + time.sleep(3) + self.cli.setattr('//DropDownWidget/ScrollView[0]/BoxLayout[0]/MyMDTextField[0]', 'text', 'Second') + # self.cli.setattr('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/MDTextField[0]','text','Second') + time.sleep(3) + random_label="" + for char in "Hey This is Message From Address Book": + random_label += char + self.cli.setattr('//DropDownWidget/ScrollView[0]/BoxLayout[0]/ScrollView[0]/TextInput[0]', 'text', random_label) + # self.cli.setattr('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/MDTextField[1]','text',random_label) + time.sleep(0.2) + self.cli.click_on('//MDIconButton[2]') + time.sleep(2) + + def test_delete_address_from_address_contact(self): + """Delete Address From Address Book""" + print("=====================Test -Delete Address From Address Book=====================") + time.sleep(3) + # self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + time.sleep(3) + # self.cli.click_on('//NavigationItem[6]') + time.sleep(3) + self.cli.drag('//AddressBook/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]//TwoLineAvatarIconListItem[0]/BoxLayout[0]', + '//AddressBook/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]//TwoLineAvatarIconListItem[0]/BoxLayout[2]', 2) + # self.cli.drag('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/AddressBook[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[1]/CustomTwoLineAvatarIconListItem[0]/BoxLayout[1]/AvatarSampleWidget[0]','/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/AddressBook[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[1]/CustomTwoLineAvatarIconListItem[0]/BoxLayout[2]',1) + time.sleep(2) + self.cli.click_on('//AddressBook/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]//Button[0]') + # self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/AddressBook[0]/BoxLayout[0]/BoxLayout[0]/ScrollView[0]/MDList[0]/Carousel[0]/RelativeLayout[1]/Button[0]') + + def test_all_address_book_method(self): + self.test_save_address() + self.test_cancel_address() + self.test_send_message_to_addressbook() + self.test_delete_address_from_address_contact() + +class Bitmessage_Setting_Screen(TeleniumTestCase): + """Setting Screen Functionality Testing""" + + def runTest(self): + print(self,"-------------Welcome To Kivy Testing Application Eight Page-------------") + + def test_setting(self): + """Show Setting Screen""" + print("=====================Test -Show Setting Screen=====================") + time.sleep(4) + self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + time.sleep(3) + self.cli.click_on('//NavigationDrawerIconButton[7]') + time.sleep(2) + +class Bitmessage_MyAddress_Screen_Message(TeleniumTestCase): + """MyAddress Screen Functionality Testing""" + + def runTest(self): + print(self,"-------------Welcome To Kivy Testing Application Ninth Page-------------") + + def test_select_myaddress_list(self): + """Select Address From List of Address""" + print("=====================Test -Select Address From List of Address=====================") + time.sleep(4) + self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + time.sleep(3) + self.cli.click_on('//NavigationDrawerIconButton[12]') + time.sleep(4) + + def test_send_message_from(self): + """Send Message From Send Message From Button""" + print("=====================Test -Send Message From Send Message From Button=====================") + time.sleep(4) + self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/MyAddress[0]/BoxLayout[0]/FloatLayout[0]/MDScrollViewRefreshLayout[0]/MDList[0]/CustomTwoLineAvatarIconListItem[0]/BoxLayout[0]/MDLabel[1]') + time.sleep(4) + self.cli.click_on('/MyaddDetailPopup/GridLayout[0]/BoxLayout[0]/BoxLayout[0]/BoxLayout[1]/MDRaisedButton[0]/MDLabel[0]') + time.sleep(3) + self.cli.setattr('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[1]/MyTextInput[0]',"text",data[1]) + time.sleep(3) + self.cli.setattr('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/MDTextField[0]','text','Hey') + time.sleep(3) + random_label="" + for char in "Hey,i am sending message directly from MyAddress book": + random_label += char + self.cli.setattr('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Create[0]/DropDownWidget[0]/ScrollView[0]/BoxLayout[0]/MDTextField[1]','text',random_label) + time.sleep(0.2) + time.sleep(2) + self.cli.click_on('//MDIconButton[2]') + time.sleep(2) + +class Bitmessage_SubscriptionPayment_Screen(TeleniumTestCase): + """SubscriptionPayment Screen Functionality Testing""" + + def runTest(self): + print(self,"-------------Welcome To Kivy Testing Application Tenth Page-------------") + + def test_select_subscripton(self): + """Select Subscripton From List of Subscriptons""" + print("=====================Test -Select Subscripton From List of Subscriptons=====================") + time.sleep(4) + self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + time.sleep(3) + self.cli.click_on('//NavigationDrawerIconButton[8]') + time.sleep(3) + self.cli.drag('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Payment[0]/ScrollView[0]/BoxLayout[0]','/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Payment[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[0]',1) + time.sleep(2) + self.cli.drag('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Payment[0]/ScrollView[0]/BoxLayout[0]','/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Payment[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[2]',1) + time.sleep(2) + self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/Payment[0]/ScrollView[0]/BoxLayout[0]/BoxLayout[0]/MDRaisedButton[0]/MDLabel[0]') + time.sleep(2) + +class Bitmessage_Credits_Screen(TeleniumTestCase): + """Credits Screen Functionality Testing""" + + def runTest(self): + print(self,"-------------Welcome To Kivy Testing Application Eleventh Page-------------") + + def test_check_credits(self): + """Show Added Credits""" + print("=====================Test -Select Credits From List of Credits=====================") + time.sleep(4) + self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + time.sleep(3) + self.cli.click_on('//NavigationDrawerIconButton[9]') + time.sleep(2) + +class Bitmessage_NetwrokStatus_Screen(TeleniumTestCase): + """NetwrokStatus Screen Functionality Testing""" + + def runTest(self): + print(self,"-------------Welcome To Kivy Testing Application Twelth Page-------------") + + def test_total_selection(self): + """Show NetwrokStatus""" + print("=====================Test -Show NetwrokStatus=====================") + time.sleep(4) + self.cli.execute('app.root.ids.nav_drawer.set_state("toggle")') + time.sleep(3) + self.cli.click_on('//NavigationDrawerIconButton[11]') + time.sleep(4) + self.cli.click_on('/NavigationLayout/BoxLayout[1]/FloatLayout[0]/BoxLayout[0]/ScreenManager[0]/NetworkStat[0]/MDTabbedPanel[0]/ScrollView[0]/MDTabBar[0]/MDTabHeader[1]/MDLabel[0]') + time.sleep(4) \ No newline at end of file