class test_main(GaiaTestCase): test_msg = "Test." def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.contacts = Contacts(self) self.gallery = Gallery(self) # Import contact (adjust to the correct number). self.test_num = self.UTILS.general.get_config_variable("phone_number", "custom") self.cont = MockContact(tel={"type": "Mobile", "value": self.test_num}) self.UTILS.reporting.logComment("Using target telephone number " + self.cont["tel"]["value"]) def tearDown(self): self.UTILS.general.remove_files() self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): self.UTILS.general.add_file_to_device('./tests/_resources/imgd.jpg') # Launch messages app. self.messages.launch() # Create a new SMS self.messages.startNewSMS() # Insert the phone number in the To field self.messages.addNumbersInToField([self.test_num]) # Create MMS. self.messages.enterSMSMsg(self.test_msg) self.messages.create_mms_image() self.gallery.click_on_thumbnail_at_position_mms(0) # Click send and wait for the message to be received self.messages.sendSMS() send_time = self.messages.last_sent_message_timestamp() """ Open contacts app and create a contact with the same phone number used to send the MMS in the previous step """ self.contacts.launch() self.contacts.create_contact(self.cont) # Switch back to the messages app. self.UTILS.home.goHome() self.messages.launch() # Verify the thread now contains the name of the contact instead of the phone number self.UTILS.reporting.logComment("Trying to open the thread with name: " + self.cont["name"]) self.messages.openThread(self.cont["name"]) self.messages.wait_for_message(send_time)
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) # Establish which phone number to use. self.phone_number = self.UTILS.general.get_config_variable("phone_number", "custom") self.UTILS.reporting.logComment("Sending sms to telephone number " + self.phone_number) self.test_msg = "Test." def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): # Launch messages app. self.messages.launch() # Create and send a new test message. self.messages.create_and_send_sms([self.phone_number], self.test_msg) send_time = self.messages.last_sent_message_timestamp() # Wait for the last message in this thread to be a 'received' one. returnedSMS = self.messages.wait_for_message(send_time=send_time) self.UTILS.test.test(returnedSMS, "A received message appeared in the thread.", True) self.messages.check_last_message_contents(self.test_msg)
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) # Establish which phone number to use. self.phone_number = self.UTILS.general.get_config_variable( "phone_number", "custom") self.UTILS.reporting.logComment("Sending sms to telephone number " + self.phone_number) self.test_msg = "Test." def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): # Launch messages app. self.messages.launch() # Create and send a new test message. self.messages.create_and_send_sms([self.phone_number], self.test_msg) send_time = self.messages.last_sent_message_timestamp() # Wait for the last message in this thread to be a 'received' one. returnedSMS = self.messages.wait_for_message(send_time=send_time) self.UTILS.test.test(returnedSMS, "A received message appeared in the thread.", True) self.messages.check_last_message_contents(self.test_msg)
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.target_num = self.UTILS.general.get_config_variable( "phone_number", "custom") self.test_msg = "Test." self.data_layer.delete_all_sms() def tearDown(self): self.UTILS.reporting.reportResults() self.UTILS.statusbar.toggleViaStatusBar('airplane') def test_run(self): # Create a new SMS self.messages.launch() self.messages.startNewSMS() # Insert the phone number in the To field self.messages.addNumbersInToField([self.target_num]) # Create SMS. self.messages.enterSMSMsg(self.test_msg) # Click send. self.messages.sendSMS() send_time = self.messages.last_sent_message_timestamp() # Wait for the SMS to arrive. self.messages.wait_for_message(send_time=send_time) self.UTILS.home.goHome() # Put the phone into airplane mode. self.UTILS.statusbar.toggleViaStatusBar('airplane') self.UTILS.reporting.debug("*** Launching messages again!!!") self.messages.launch() # Open sms app and go to the previous thread self.messages.openThread(self.target_num) # Create another SMS. self.messages.enterSMSMsg(self.test_msg) # Click send. self.messages.sendSMS() # Check that popup appears. self.messages.checkAirplaneModeWarning()
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.target_num = self.UTILS.general.get_config_variable("phone_number", "custom") self.test_msg = "Test." self.data_layer.delete_all_sms() def tearDown(self): self.UTILS.reporting.reportResults() self.UTILS.statusbar.toggleViaStatusBar('airplane') def test_run(self): # Create a new SMS self.messages.launch() self.messages.startNewSMS() # Insert the phone number in the To field self.messages.addNumbersInToField([self.target_num]) # Create SMS. self.messages.enterSMSMsg(self.test_msg) # Click send. self.messages.sendSMS() send_time = self.messages.last_sent_message_timestamp() # Wait for the SMS to arrive. self.messages.wait_for_message(send_time=send_time) self.UTILS.home.goHome() # Put the phone into airplane mode. self.UTILS.statusbar.toggleViaStatusBar('airplane') self.UTILS.reporting.debug("*** Launching messages again!!!") self.messages.launch() # Open sms app and go to the previous thread self.messages.openThread(self.target_num) # Create another SMS. self.messages.enterSMSMsg(self.test_msg) # Click send. self.messages.sendSMS() # Check that popup appears. self.messages.checkAirplaneModeWarning()
class test_main(GaiaTestCase): test_msg = "Test message." def setUp(self): GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.contacts = Contacts(self) self.phone_number = self.UTILS.general.get_config_variable("phone_number", "custom") self.email_address = self.UTILS.general.get_config_variable("gmail_1_email", "common") self.test_contact = MockContact(email=[{"type": "Personal", "value": "*****@*****.**"}, {"type": "Personal", "value": "*****@*****.**"}, {"type": "Personal", "value": "*****@*****.**"}]) self.UTILS.general.insertContact(self.test_contact) self.UTILS.general.add_file_to_device('./tests/_resources/contact_face.jpg') self.data_layer.delete_all_sms() def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): self.messages.launch() self.messages.create_and_send_sms([self.phone_number], "Hello {} old bean.".format(self.email_address)) send_time = self.messages.last_sent_message_timestamp() msg = self.messages.wait_for_message(send_time=send_time) # Press the email link. link = msg.find_element("tag name", "a") link.tap() add_btn = self.UTILS.element.getElement(DOM.Messages.header_add_to_contact_btn, "Add to an existing contact button") add_btn.tap() # Verify that the email is in the email field. self.UTILS.iframe.switchToFrame(*DOM.Contacts.frame_locator) self.contacts.view_contact(self.test_contact["givenName"], False) self.UTILS.element.waitForElements(("xpath", "//input[@type='email' and @value='{}']".format(self.email_address)), "New email address") self.contacts.add_gallery_image_to_contact(0) done_button = self.UTILS.element.getElement(DOM.Contacts.edit_update_button, "'Update' button") done_button.tap() # Check that the contacts iframe is now gone. self.marionette.switch_to_frame() self.UTILS.element.waitForNotElements(("xpath", "//iframe[contains(@src,'contacts')]"), "Contact app iframe")
class test_main(GaiaTestCase): test_msg = "Test message." def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.Email = Email(self) self.email_user = self.UTILS.general.get_config_variable("gmail_1_user", "common") self.email_address = self.UTILS.general.get_config_variable("gmail_1_email", "common") self.email_pass = self.UTILS.general.get_config_variable("gmail_1_pass", "common") self.phone_number = self.UTILS.general.get_config_variable("phone_number", "custom") self.emailAddy = self.UTILS.general.get_config_variable("gmail_2_email", "common") def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): # Set up email account. self.connect_to_network() self.Email.launch() self.Email.setup_account(self.email_user, self.email_address, self.email_pass) # Launch messages app. self.messages.launch() # Create and send a new test message. self.messages.create_and_send_sms([self.phone_number], "Email {} one.".format(self.emailAddy)) send_time = self.messages.last_sent_message_timestamp() last_msg = self.messages.wait_for_message(send_time) # Tap the email link. link = last_msg.find_element("tag name", "a") link.tap() edit_btn = self.UTILS.element.getElement(DOM.Messages.header_send_email_btn, "Edit button") edit_btn.tap() # Switch to email frame and verify the email address is in the To field. self.UTILS.iframe.switchToFrame(*DOM.Email.frame_locator) to_field = self.UTILS.element.getElement(DOM.Email.compose_to_from_contacts, "To field") self.UTILS.test.test(to_field.text == self.emailAddy, "To field contains '{0}' (it was '{0}').".format(self.emailAddy))
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.contacts = Contacts(self) self.phone_number = self.UTILS.general.get_config_variable( "phone_number", "custom") self.emailAddy = self.UTILS.general.get_config_variable( "gmail_1_email", "common") self.test_msg = "Email {} one, email {} two, email {} three.".\ format("*****@*****.**", self.emailAddy, "*****@*****.**") self.data_layer.delete_all_sms() def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): # Launch messages app. self.messages.launch() # Create and send a new test message. self.messages.create_and_send_sms([self.phone_number], self.test_msg) send_time = self.messages.last_sent_message_timestamp() x = self.messages.wait_for_message(send_time=send_time) # Long press the 2nd email link. link = x.find_elements("tag name", "a") link[1].tap() # Click 'create new contact'. x = self.UTILS.element.getElement( DOM.Messages.header_create_new_contact_btn, "Create new contact button") x.tap() # Verify that the email is in the email field. self.UTILS.iframe.switchToFrame(*DOM.Contacts.frame_locator) x = self.UTILS.element.getElement(("id", "email_0"), "Email field") x_txt = x.get_attribute("value") self.UTILS.test.test( x_txt == self.emailAddy, "Email is '{}' (expected '{}')".format(x_txt, self.emailAddy))
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.phone_number = self.UTILS.general.get_config_variable( "phone_number", "custom") self.target_number = self.UTILS.general.get_config_variable( "target_call_number", "common") self.test_msg = "Test message." self.data_layer.delete_all_sms() def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): # Launch messages app. self.messages.launch() # Create and send a new test message. expected = "Test {} number.".format(self.target_number) self.messages.create_and_send_sms([self.phone_number], expected) send_time = self.messages.last_sent_message_timestamp() self.messages.wait_for_message(send_time=send_time) self.messages.check_last_message_contents(expected) # Tap the header. x = self.UTILS.element.getElement(DOM.Messages.message_header, "Thread header") x.tap() # Verify that each expected item is present. self.UTILS.element.waitForElements(DOM.Messages.header_call_btn, "Call button") self.UTILS.element.waitForElements( DOM.Messages.header_create_new_contact_btn, "Create new contact button") self.UTILS.element.waitForElements( DOM.Messages.header_add_to_contact_btn, "Add to existing contact button") self.UTILS.element.waitForElements(DOM.Messages.contact_cancel_btn, "Cancel button") screenshot = self.UTILS.debug.screenShotOnErr() self.UTILS.reporting.logResult('info', "Screenshot", screenshot)
class test_main(GaiaTestCase): test_msg = "Test message." def setUp(self): GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.contacts = Contacts(self) self.Dialer = Dialer(self) self.phone_number = self.UTILS.general.get_config_variable("phone_number", "custom").split("+34")[-1] self.contact = MockContact(tel={'type': 'Mobile', 'value': self.phone_number}) self.UTILS.general.insertContact(self.contact) def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): self.messages.launch() # Create and send a new test message. self.messages.startNewSMS() self.messages.selectAddContactButton() self.UTILS.iframe.switchToFrame(*DOM.Contacts.frame_locator) self.contacts.view_contact(self.contact["givenName"], False) self.UTILS.iframe.switchToFrame(*DOM.Messages.frame_locator) self.messages.checkIsInToField(self.contact["name"], True) self.messages.enterSMSMsg("Test message.") self.messages.sendSMS() send_time = self.messages.last_sent_message_timestamp() self.messages.wait_for_message(send_time=send_time) # Tap the header to call. self.messages.header_call() # Dialer is started with the number already filled in. time.sleep(2) phone_field = self.UTILS.element.getElement(DOM.Dialer.phone_number, "Phone number field", False) dialer_num = phone_field.get_attribute("value") self.UTILS.test.test(self.phone_number == dialer_num, "The phone is '{}' (expected '{}').".\ format(dialer_num, self.phone_number))
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.own_number = self.UTILS.general.get_config_variable( "phone_number", "custom") self.nums = [ self.own_number, self.UTILS.general.get_config_variable("short_phone_number", "custom") ] self.data_layer.delete_all_sms() self.UTILS.statusbar.clearAllStatusBarNotifs() def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): self.data_layer.remove_all_contacts() # Launch messages app. self.messages.launch() for num in self.nums: test_msg = "Test message at {} for {}".format(time.time(), num) self.messages.create_and_send_sms([num], test_msg) if num == self.own_number: send_time = self.messages.last_sent_message_timestamp() self.messages.wait_for_message(send_time=send_time) else: self.UTILS.statusbar.wait_for_notification_toaster_detail( test_msg, timeout=120) self.UTILS.iframe.switchToFrame(*DOM.Messages.frame_locator) self.messages.go_back() target_names = self.UTILS.element.getElements( DOM.Messages.thread_target_names, "Threads target names") bools = [title.text in self.nums for title in target_names] msgs = ["A thread exists for {}".format(elem) for elem in self.nums] map(self.UTILS.test.test, bools, msgs)
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.settings = Settings(self) self.browser = Browser(self) self.messages = Messages(self) self.num = self.UTILS.general.get_config_variable( "phone_number", "custom") self.url1 = "www.google.com" self.url2 = "www.wikipedia.org" self.test_msg = "Test message" def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): self.data_layer.connect_to_wifi() # Open the first url self.browser.launch() self.browser.open_url(self.url1) self.marionette.switch_to_frame() self.browser.wait_for_page_to_load() self.UTILS.test.test(self.url1 in self.browser.loaded_url(), "Web page loaded correctly.") # Open the SMS app, send a message then jump back to the browser. self.messages.launch() self.messages.create_and_send_sms([self.num], self.test_msg) send_time = self.messages.last_sent_message_timestamp() self.messages.wait_for_message(send_time) self.apps.kill_all() time.sleep(2) self.browser.launch() self.browser.open_url(self.url2) self.marionette.switch_to_frame() self.browser.wait_for_page_to_load() self.UTILS.test.test(self.url2 in self.browser.loaded_url(), "Web page loaded correctly.")
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) # Prepare the contact we're going to insert. self.phone_number = self.UTILS.general.get_config_variable("phone_number", "custom") self.contact = MockContact(tel={'type': '', 'value': self.phone_number}) self.UTILS.general.insertContact(self.contact) self.UTILS.reporting.logComment("Using target telephone number " + self.contact["tel"]["value"]) def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): # Launch messages app. self.messages.launch() """ Send a message to create a thread (use number, not name as this avoids some blocking bugs just now). """ self.messages.create_and_send_sms([self.contact["tel"]["value"]], "Test message.") send_time = self.messages.last_sent_message_timestamp() self.messages.wait_for_message(send_time=send_time) # Examine the carrier. expect = self.contact["tel"]["type"] actual = self.messages.threadType() self.UTILS.test.test(expect == actual, "The type is listed as: '{}' (subheader was '{}').".\ format(expect, actual)) expect = self.contact["tel"]["value"] actual = self.messages.threadCarrier() self.UTILS.test.test(expect == actual, "The carrier is listed as: '{}' (subheader was '{}').".\ format(expect, actual))
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.contacts = Contacts(self) self.phone_number = self.UTILS.general.get_config_variable("phone_number", "custom") self.emailAddy = self.UTILS.general.get_config_variable("gmail_1_email", "common") self.test_msg = "Hello {} old bean at {}.".format(self.emailAddy, time.time()) def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): # Launch messages app. self.messages.launch() # Create and send a new test message. self.messages.create_and_send_sms([self.phone_number], self.test_msg) send_time = self.messages.last_sent_message_timestamp() msg = self.messages.wait_for_message(send_time=send_time) self.messages.check_last_message_contents(self.test_msg) # Tap on edit mode. edit_btn = self.UTILS.element.getElement(DOM.Messages.edit_messages_icon, "Edit button") edit_btn.tap() select_btn = self.UTILS.element.getElement(DOM.Messages.edit_msgs_select_btn, "Select button") select_btn.tap() # Long press the email link. _link = msg.find_element("tag name", "a") self.actions = Actions(self.marionette) self.actions.long_press(_link, 2).perform() # Check the email address is not a link in edit mode. self.UTILS.element.waitForNotElements(DOM.Messages.header_create_new_contact_btn, "Create new contact button")
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.settings = Settings(self) self.browser = Browser(self) self.messages = Messages(self) self.num = self.UTILS.general.get_config_variable("phone_number", "custom") self.url1 = "www.google.com" self.url2 = "www.wikipedia.org" self.test_msg = "Test message" def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): self.data_layer.connect_to_wifi() # Open the first url self.browser.launch() self.browser.open_url(self.url1) self.marionette.switch_to_frame() self.browser.wait_for_page_to_load() self.UTILS.test.test(self.url1 in self.browser.loaded_url(), "Web page loaded correctly.") # Open the SMS app, send a message then jump back to the browser. self.messages.launch() self.messages.create_and_send_sms([self.num], self.test_msg) send_time = self.messages.last_sent_message_timestamp() self.messages.wait_for_message(send_time) self.apps.kill_all() time.sleep(2) self.browser.launch() self.browser.open_url(self.url2) self.marionette.switch_to_frame() self.browser.wait_for_page_to_load() self.UTILS.test.test(self.url2 in self.browser.loaded_url(), "Web page loaded correctly.")
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.phone_number = self.UTILS.general.get_config_variable("phone_number", "custom") self.target_number = self.UTILS.general.get_config_variable("target_call_number", "common") self.test_msg = "Test message." self.data_layer.delete_all_sms() def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): # Launch messages app. self.messages.launch() # Create and send a new test message. expected = "Test {} number.".format(self.target_number) self.messages.create_and_send_sms([self.phone_number], expected) send_time = self.messages.last_sent_message_timestamp() self.messages.wait_for_message(send_time=send_time) self.messages.check_last_message_contents(expected) # Tap the header. x = self.UTILS.element.getElement(DOM.Messages.message_header, "Thread header") x.tap() # Verify that each expected item is present. self.UTILS.element.waitForElements(DOM.Messages.header_call_btn, "Call button") self.UTILS.element.waitForElements(DOM.Messages.header_create_new_contact_btn, "Create new contact button") self.UTILS.element.waitForElements(DOM.Messages.header_add_to_contact_btn, "Add to existing contact button") self.UTILS.element.waitForElements(DOM.Messages.contact_cancel_btn, "Cancel button") screenshot = self.UTILS.debug.screenShotOnErr() self.UTILS.reporting.logResult('info', "Screenshot", screenshot)
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) # Establish which phone number to use. self.phone_number = self.UTILS.general.get_config_variable( "phone_number", "custom") self.UTILS.reporting.logComment("Sending sms to telephone number " + self.phone_number) self.data_layer.delete_all_sms() def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): # Sometimes causes a problem if not cleared. self.UTILS.statusbar.clearAllStatusBarNotifs() # Create message - 20 x 10 chars. sms_message = "0123456789" * 20 # Launch messages app. self.messages.launch() # Create and send a new test message. self.messages.create_and_send_sms([self.phone_number], sms_message) send_time = self.messages.last_sent_message_timestamp() # Wait for the last message in this thread to be a 'received' one. returnedSMS = self.messages.wait_for_message(send_time=send_time) self.UTILS.test.test(returnedSMS, "A received message appeared in the thread.", True) self.messages.check_last_message_contents(sms_message)
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.own_number = self.UTILS.general.get_config_variable("phone_number", "custom") self.nums = [self.own_number, self.UTILS.general.get_config_variable("short_phone_number", "custom")] self.data_layer.delete_all_sms() self.UTILS.statusbar.clearAllStatusBarNotifs() def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): self.data_layer.remove_all_contacts() # Launch messages app. self.messages.launch() for num in self.nums: test_msg = "Test message at {} for {}".format(time.time(), num) self.messages.create_and_send_sms([num], test_msg) if num == self.own_number: send_time = self.messages.last_sent_message_timestamp() self.messages.wait_for_message(send_time=send_time) else: self.UTILS.statusbar.wait_for_notification_toaster_detail(test_msg, timeout=120) self.UTILS.iframe.switchToFrame(*DOM.Messages.frame_locator) self.messages.go_back() target_names = self.UTILS.element.getElements(DOM.Messages.thread_target_names, "Threads target names") bools = [title.text in self.nums for title in target_names] msgs = ["A thread exists for {}".format(elem) for elem in self.nums] map(self.UTILS.test.test, bools, msgs)
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.contacts = Contacts(self) self.messages = Messages(self) # Prepare the contact we're going to insert. self.phone_number = self.UTILS.general.get_config_variable("phone_number", "custom") self.contact = MockContact(tel={'type': '', 'value': self.phone_number}) self.test_msg = "Test." self.UTILS.general.insertContact(self.contact) self.UTILS.reporting.logComment("Using target telephone number " + self.contact["tel"]["value"]) self.data_layer.delete_all_sms() def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): msgapp = self.messages.launch() self.messages.create_and_send_sms([self.phone_number], "Test") send_time = self.messages.last_sent_message_timestamp() self.messages.wait_for_message(send_time=send_time) self.messages.go_back() self.messages.openThread(self.contact["name"]) # Delete the contact self.apps.kill(msgapp) self.contacts.launch() self.contacts.delete_contact(self.contact["name"]) # Go back to SMS app and try to open the thread by phone number self.messages.launch() self.messages.openThread(self.contact["tel"]["value"])
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.browser = Browser(self) # Establish which phone number to use. self.phone_number = self.UTILS.general.get_config_variable( "phone_number", "custom") self.incoming_number = self.UTILS.general.get_config_variable( "sms_platform_numbers", "common").split(',') self.UTILS.reporting.logComment("Sending sms to telephone number " + self.phone_number) self.emails = ["*****@*****.**", "*****@*****.**"] self.test_msg = "Test with email addresses: {} and {} at {}".format( self.emails[0], self.emails[1], time.time()) self.data_layer.delete_all_sms() def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): self.connect_to_network() self.messages.launch() self.messages.create_and_send_sms([self.phone_number], self.test_msg) send_time = self.messages.last_sent_message_timestamp() msg = self.messages.wait_for_message(send_time=send_time) #Verify that a valid URL appears highlight on message received. email_elems = msg.find_elements("tag name", "a") emails = [email.text for email in email_elems] all_found = all([email in emails for email in self.emails]) self.UTILS.test.test(all_found, "All emails were found in the message")
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) # Establish which phone number to use. self.phone_number = self.UTILS.general.get_config_variable("phone_number", "custom") self.UTILS.reporting.logComment("Sending sms to telephone number " + self.phone_number) self.data_layer.delete_all_sms() def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): # Sometimes causes a problem if not cleared. self.UTILS.statusbar.clearAllStatusBarNotifs() # Create message - 20 x 10 chars. sms_message = "0123456789" * 20 # Launch messages app. self.messages.launch() # Create and send a new test message. self.messages.create_and_send_sms([self.phone_number], sms_message) send_time = self.messages.last_sent_message_timestamp() # Wait for the last message in this thread to be a 'received' one. returnedSMS = self.messages.wait_for_message(send_time=send_time) self.UTILS.test.test(returnedSMS, "A received message appeared in the thread.", True) self.messages.check_last_message_contents(sms_message)
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.browser = Browser(self) # Establish which phone number to use. self.phone_number = self.UTILS.general.get_config_variable("phone_number", "custom") self.incoming_number = self.UTILS.general.get_config_variable("sms_platform_numbers", "common").split(',') self.UTILS.reporting.logComment("Sending sms to telephone number " + self.phone_number) self.emails = ["*****@*****.**", "*****@*****.**"] self.test_msg = "Test with email addresses: {} and {} at {}".format(self.emails[0], self.emails[1], time.time()) self.data_layer.delete_all_sms() def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): self.connect_to_network() self.messages.launch() self.messages.create_and_send_sms([self.phone_number], self.test_msg) send_time = self.messages.last_sent_message_timestamp() msg = self.messages.wait_for_message(send_time=send_time) #Verify that a valid URL appears highlight on message received. email_elems = msg.find_elements("tag name", "a") emails = [email.text for email in email_elems] all_found = all([email in emails for email in self.emails]) self.UTILS.test.test(all_found, "All emails were found in the message")
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.contacts = Contacts(self) # Import some contacts. # Set the one we'll match to have a valid phone number. self.contact_1 = MockContact( tel={ "type": "Mobile", "value": self.UTILS.general.get_config_variable("phone_number", "custom") }) self.contact_2 = MockContact() self.contact_3 = MockContact(givenName="AAAAAAAAAAAAAAAALEX", familyName="SMITHXXXXXXXX", name="AAAAAAAAAAAAAAAALEX SMITHXXXXXXXX") self.contact_4 = MockContact(tel=[{ "type": "Mobile 1", "carrier": "MoviStar1", "value": "444444444" }, { "type": "Mobile 2", "carrier": "MoviStar2", "value": "555555555" }, { "type": "Mobile 3", "carrier": "MoviStar3", "value": "666666666" }]) self.contact_5 = MockContact(email=[{ "type": "", "value": "*****@*****.**" }, { "type": "", "value": "*****@*****.**" }, { "type": "", "value": "*****@*****.**" }]) # Set a couple of them to be favorites (including the one we'll use). self.contact_1["category"] = "favorite" self.contact_2["category"] = "favorite" # Insert all the contacts. self.UTILS.general.insertContact(self.contact_1) self.UTILS.general.insertContact(self.contact_2) self.UTILS.general.insertContact(self.contact_3) self.UTILS.general.insertContact(self.contact_4) self.UTILS.general.insertContact(self.contact_5) self.UTILS.reporting.logComment("Using target telephone number " + self.contact_1["tel"]["value"]) self.test_msg = "Test message at {}".format(time.time()) def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): # Launch messages app. self.messages.launch() # Type a message containing the required string self.messages.startNewSMS() self.messages.enterSMSMsg(self.test_msg) # Search for our contact in the favourites section. self.messages.selectAddContactButton() self.UTILS.reporting.debug("*** Looking for contact named {}".format( self.contact_1['givenName'])) self.UTILS.iframe.switch_to_frame(*DOM.Contacts.frame_locator) cont = self.UTILS.element.getElement( (DOM.Contacts.favourite_by_name[0], DOM.Contacts.favourite_by_name[1].format( self.contact_1['givenName'])), "Favourite contact", timeout=20) cont.tap() self.UTILS.iframe.switch_to_frame(*DOM.Messages.frame_locator) # Now check the correct name is in the 'To' list. self.messages.checkIsInToField(self.contact_1["name"]) self.messages.sendSMS() send_time = self.messages.last_sent_message_timestamp() self.messages.wait_for_message(send_time=send_time) self.messages.check_last_message_contents(self.test_msg)
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.contacts = Contacts(self) self.email = Email(self) self.phone_number = self.UTILS.general.get_config_variable("phone_number", "custom") self.emailAddy = self.UTILS.general.get_config_variable("gmail_1_email", "common") self.emailE = self.UTILS.general.get_config_variable("gmail_2_email", "common") self.emailP = self.UTILS.general.get_config_variable("gmail_2_pass", "common") self.emailU = self.UTILS.general.get_config_variable("gmail_2_user", "common") self.UTILS.general.add_file_to_device('./tests/_resources/contact_face.jpg') self.test_msg = "Test message." self.cont = MockContact() self.data_layer.delete_all_sms() def tearDown(self): self.UTILS.general.remove_files() self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): self.connect_to_network() self.email.launch() self.email.setup_account(self.emailU, self.emailE, self.emailP) self.messages.launch() # Create and send a new test message. self.messages.create_and_send_sms([self.phone_number], "Hello {} old bean.".format(self.emailAddy)) send_time = self.messages.last_sent_message_timestamp() x = self.messages.wait_for_message(send_time=send_time) link = x.find_element("tag name", "a") link.tap() # Click 'create new contact'. self.UTILS.iframe.switchToFrame(*DOM.Messages.frame_locator) x = self.UTILS.element.getElement(DOM.Messages.header_create_new_contact_btn, "Create new contact button") x.tap() # Verify that the email is in the email field. self.UTILS.iframe.switchToFrame(*DOM.Contacts.frame_locator) x = self.UTILS.element.getElement(DOM.Contacts.email_field, "Email field") x_txt = x.get_attribute("value") self.UTILS.test.test(x_txt == self.emailAddy, "Email is '{}' (expected '{}')".format(x_txt, self.emailAddy)) # Put the contact details into each of the fields (this method # clears each field first). self._changeField('givenName', self.cont["givenName"]) self._changeField('familyName', self.cont["familyName"]) self._changeField('tel', self.cont["tel"]["value"]) self._changeField('street', self.cont["addr"]["streetAddress"]) self._changeField('zip', self.cont["addr"]["postalCode"]) self._changeField('city', self.cont["addr"]["locality"]) self._changeField('country', self.cont["addr"]["countryName"]) # Add another email address. self.contacts.add_another_email_address(self.cont["email"]["value"]) done_button = self.UTILS.element.getElement(DOM.Contacts.done_button, "'Done' button") done_button.tap() self.marionette.switch_to_frame() self.UTILS.element.waitForNotElements(("xpath", "//iframe[contains(@src,'contacts')]"), "Contact app iframe") # Now return to the SMS app. self.UTILS.iframe.switchToFrame(*DOM.Messages.frame_locator) def _changeField(self, p_field, p_valObj): # To try and get around marionette issues I'm resetting Marionette every time here. self.UTILS.general.checkMarionetteOK() self.UTILS.iframe.switchToFrame(*DOM.Contacts.frame_locator) contFields = self.contacts.get_contact_fields() self.contacts.replace_str(contFields[p_field], p_valObj)
class test_main(GaiaTestCase): test_msg = "Test message." def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.Email = Email(self) self.email_user = self.UTILS.general.get_config_variable( "gmail_1_user", "common") self.email_address = self.UTILS.general.get_config_variable( "gmail_1_email", "common") self.email_pass = self.UTILS.general.get_config_variable( "gmail_1_pass", "common") self.phone_number = self.UTILS.general.get_config_variable( "phone_number", "custom") self.emailAddy = self.UTILS.general.get_config_variable( "gmail_2_email", "common") def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): # Set up email account. self.connect_to_network() self.Email.launch() self.Email.setup_account(self.email_user, self.email_address, self.email_pass) # Launch messages app. self.messages.launch() # Create and send a new test message. self.messages.create_and_send_sms( [self.phone_number], "Email {} one.".format(self.emailAddy)) send_time = self.messages.last_sent_message_timestamp() last_msg = self.messages.wait_for_message(send_time) # Tap the email link. link = last_msg.find_element("tag name", "a") link.tap() edit_btn = self.UTILS.element.getElement( DOM.Messages.header_send_email_btn, "Edit button") edit_btn.tap() # Switch to email frame and verify the email address is in the To field. self.UTILS.iframe.switchToFrame(*DOM.Email.frame_locator) to_field = self.UTILS.element.getElement( DOM.Email.compose_to_from_contacts, "To field") self.UTILS.test.test( to_field.text == self.emailAddy, "To field contains '{0}' (it was '{0}').".format(self.emailAddy))
class test_main(GaiaTestCase): test_msg = "Test." def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.contacts = Contacts(self) self.gallery = Gallery(self) # Import contact (adjust to the correct number). self.test_num = self.UTILS.general.get_config_variable( "phone_number", "custom") self.cont = MockContact(tel={"type": "Mobile", "value": self.test_num}) self.UTILS.reporting.logComment("Using target telephone number " + self.cont["tel"]["value"]) def tearDown(self): self.UTILS.general.remove_files() self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): self.UTILS.general.add_file_to_device('./tests/_resources/imgd.jpg') # Launch messages app. self.messages.launch() # Create a new SMS self.messages.startNewSMS() # Insert the phone number in the To field self.messages.addNumbersInToField([self.test_num]) # Create MMS. self.messages.enterSMSMsg(self.test_msg) self.messages.create_mms_image() self.gallery.click_on_thumbnail_at_position_mms(0) # Click send and wait for the message to be received self.messages.sendSMS() send_time = self.messages.last_sent_message_timestamp() """ Open contacts app and create a contact with the same phone number used to send the MMS in the previous step """ self.contacts.launch() self.contacts.create_contact(self.cont) # Switch back to the messages app. self.UTILS.home.goHome() self.messages.launch() # Verify the thread now contains the name of the contact instead of the phone number self.UTILS.reporting.logComment( "Trying to open the thread with name: " + self.cont["name"]) self.messages.openThread(self.cont["name"]) self.messages.wait_for_message(send_time)
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.contacts = Contacts(self) # Import some contacts. # Set the one we'll match to have a valid phone number. self.contact_1 = MockContact(tel={"type": "Mobile", "value": self.UTILS.general.get_config_variable("phone_number", "custom")}) self.contact_2 = MockContact() self.contact_3 = MockContact(givenName="AAAAAAAAAAAAAAAALEX", familyName="SMITHXXXXXXXX", name="AAAAAAAAAAAAAAAALEX SMITHXXXXXXXX") self.contact_4 = MockContact(tel=[{"type": "Mobile 1", "carrier": "MoviStar1", "value": "444444444"}, {"type": "Mobile 2", "carrier": "MoviStar2", "value": "555555555"}, {"type": "Mobile 3", "carrier": "MoviStar3", "value": "666666666"}]) self.contact_5 = MockContact(email=[{"type": "", "value": "*****@*****.**"}, {"type": "", "value": "*****@*****.**"}, {"type": "", "value": "*****@*****.**"}]) # Set a couple of them to be favorites (including the one we'll use). self.contact_1["category"] = "favorite" self.contact_2["category"] = "favorite" # Insert all the contacts. self.UTILS.general.insertContact(self.contact_1) self.UTILS.general.insertContact(self.contact_2) self.UTILS.general.insertContact(self.contact_3) self.UTILS.general.insertContact(self.contact_4) self.UTILS.general.insertContact(self.contact_5) self.UTILS.reporting.logComment("Using target telephone number " + self.contact_1["tel"]["value"]) self.test_msg = "Test message at {}".format(time.time()) def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): # Launch messages app. self.messages.launch() # Type a message containing the required string self.messages.startNewSMS() self.messages.enterSMSMsg(self.test_msg) # Search for our contact in the favourites section. self.messages.selectAddContactButton() self.UTILS.reporting.debug("*** Looking for contact named {}".format(self.contact_1['givenName'])) self.UTILS.iframe.switch_to_frame(*DOM.Contacts.frame_locator) cont = self.UTILS.element.getElement((DOM.Contacts.favourite_by_name[0], DOM.Contacts.favourite_by_name[1].format(self.contact_1['givenName'])), "Favourite contact", timeout=20) cont.tap() self.UTILS.iframe.switch_to_frame(*DOM.Messages.frame_locator) # Now check the correct name is in the 'To' list. self.messages.checkIsInToField(self.contact_1["name"]) self.messages.sendSMS() send_time = self.messages.last_sent_message_timestamp() self.messages.wait_for_message(send_time=send_time) self.messages.check_last_message_contents(self.test_msg)
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.gallery = Gallery(self) self.test_msg = "Hello World" # Establish which phone number to use. num1 = self.UTILS.general.get_config_variable("phone_number", "custom") self.contact1 = MockContact(givenName="Name 1", familyName="Surname 1", name="Name 1 Surname 1", tel={"type": "Mobile", "value": num1}) self.UTILS.reporting.logComment("Using target telephone number " + self.contact1["tel"]["value"]) self.UTILS.general.insertContact(self.contact1) num2 = self.UTILS.general.get_config_variable("incoming_call_number", "common") self.contact2 = MockContact(givenName="Name 3", familyName="Surname 3", name="Name 3 Surname 3", tel={"type": "Mobile", "value": num2}) self.UTILS.reporting.logComment("Using target telephone number " + self.contact2["tel"]["value"]) self.UTILS.general.insertContact(self.contact2) self.data_layer.delete_all_sms() self.UTILS.statusbar.clearAllStatusBarNotifs() self.test_nums = [self.contact1["tel"]["value"], self.contact2["tel"]["value"]] def tearDown(self): self.UTILS.general.remove_files() self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): self.messages.launch() # Create a new SMS self.messages.startNewSMS() # Insert the phone numbers in the To field for num in self.test_nums: self.messages.addNumbersInToField([num]) # Create MMS. self.messages.enterSMSMsg(self.test_msg) # Add an image file self.UTILS.general.add_file_to_device('./tests/_resources/80x60.jpg') self.messages.create_mms_image() self.gallery.click_on_thumbnail_at_position_mms(0) # Click send and wait for the message to be received self.messages.sendSMS() send_time = self.messages.last_sent_message_timestamp() self.messages.closeThread() self.messages.openThread(self.contact1["name"]) self.messages.wait_for_message(send_time=send_time) # Obtaining file attached type img_type = self.UTILS.element.getElement(DOM.Messages.attach_preview_img_type, "preview type") typ = img_type.get_attribute("data-attachment-type") if typ != "img": self.UTILS.test.test(False, "Incorrect file type. The file must be img ") self.messages.closeThread() # Check how many elements are there self.UTILS.reporting.logResult("info", "Check how many threads are there") original_count = self.messages.countNumberOfThreads() self.UTILS.reporting.logResult("info", "Number of threads {} in list.".format(original_count)) self.UTILS.test.test(original_count == 2, "Check how many threads are there")
class test_main(GaiaTestCase): test_msg = "Test." def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.contacts = Contacts(self) self.messages = Messages(self) # Prepare the contact we're going to insert. self.phone_number = self.UTILS.general.get_config_variable( "phone_number", "custom") self.contact = MockContact(tel={ 'type': '', 'value': self.phone_number }) self.UTILS.general.insertContact(self.contact) self.UTILS.reporting.logComment("Using target telephone number " + self.contact["tel"]["value"]) self.data_layer.delete_all_sms() def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): # Launch contacts app. self.contacts.launch() # View the details of our contact. self.contacts.view_contact(self.contact['name']) # Tap the sms button in the view details screen to go to the sms page. smsBTN = self.UTILS.element.getElement(DOM.Contacts.sms_button, "Send SMS button") smsBTN.tap() time.sleep(2) self.marionette.switch_to_frame() self.UTILS.iframe.switchToFrame(*DOM.Messages.frame_locator) # Create SMS. self.messages.enterSMSMsg(self.test_msg) # Click send. self.messages.sendSMS() send_time = self.messages.last_sent_message_timestamp() # Wait for the last message in this thread to be a 'received' one. returnedSMS = self.messages.wait_for_message(send_time=send_time) self.UTILS.test.test(returnedSMS, "A received message appeared in the thread.", True) self.messages.check_last_message_contents(self.test_msg) # Examine the carrier. expect = self.contact["tel"]["type"] actual = self.messages.threadType() self.UTILS.test.test(expect == actual, "The type is listed as: '{}' (subheader was '{}').".\ format(expect, actual)) # Phone Number is shown instead of carrier as the secondary header expect = self.contact["tel"]["value"] actual = self.messages.threadCarrier() self.UTILS.test.test(expect == actual, "The telephone number is: '{}' (subheader was '{}').".\ format(expect, actual))
class test_main(GaiaTestCase): def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.gallery = Gallery(self) self.test_msg = "Hello World" # Establish which phone number to use. num1 = self.UTILS.general.get_config_variable("phone_number", "custom") self.contact1 = MockContact(givenName="Name 1", familyName="Surname 1", name="Name 1 Surname 1", tel={ "type": "Mobile", "value": num1 }) self.UTILS.reporting.logComment("Using target telephone number " + self.contact1["tel"]["value"]) self.UTILS.general.insertContact(self.contact1) num2 = self.UTILS.general.get_config_variable("incoming_call_number", "common") self.contact2 = MockContact(givenName="Name 3", familyName="Surname 3", name="Name 3 Surname 3", tel={ "type": "Mobile", "value": num2 }) self.UTILS.reporting.logComment("Using target telephone number " + self.contact2["tel"]["value"]) self.UTILS.general.insertContact(self.contact2) self.data_layer.delete_all_sms() self.UTILS.statusbar.clearAllStatusBarNotifs() self.test_nums = [ self.contact1["tel"]["value"], self.contact2["tel"]["value"] ] def tearDown(self): self.UTILS.general.remove_files() self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): self.messages.launch() # Create a new SMS self.messages.startNewSMS() # Insert the phone numbers in the To field for num in self.test_nums: self.messages.addNumbersInToField([num]) # Create MMS. self.messages.enterSMSMsg(self.test_msg) # Add an image file self.UTILS.general.add_file_to_device('./tests/_resources/80x60.jpg') self.messages.create_mms_image() self.gallery.click_on_thumbnail_at_position_mms(0) # Click send and wait for the message to be received self.messages.sendSMS() send_time = self.messages.last_sent_message_timestamp() self.messages.closeThread() self.messages.openThread(self.contact1["name"]) self.messages.wait_for_message(send_time=send_time) # Obtaining file attached type img_type = self.UTILS.element.getElement( DOM.Messages.attach_preview_img_type, "preview type") typ = img_type.get_attribute("data-attachment-type") if typ != "img": self.UTILS.test.test(False, "Incorrect file type. The file must be img ") self.messages.closeThread() # Check how many elements are there self.UTILS.reporting.logResult("info", "Check how many threads are there") original_count = self.messages.countNumberOfThreads() self.UTILS.reporting.logResult( "info", "Number of threads {} in list.".format(original_count)) self.UTILS.test.test(original_count == 2, "Check how many threads are there")
class test_main(GaiaTestCase): test_msg = "Test message." def setUp(self): GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.messages = Messages(self) self.contacts = Contacts(self) self.phone_number = self.UTILS.general.get_config_variable( "phone_number", "custom") self.email_address = self.UTILS.general.get_config_variable( "gmail_1_email", "common") self.test_contact = MockContact(email=[{ "type": "Personal", "value": "*****@*****.**" }, { "type": "Personal", "value": "*****@*****.**" }, { "type": "Personal", "value": "*****@*****.**" }]) self.UTILS.general.insertContact(self.test_contact) self.UTILS.general.add_file_to_device( './tests/_resources/contact_face.jpg') self.data_layer.delete_all_sms() def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): self.messages.launch() self.messages.create_and_send_sms([self.phone_number], "Hello {} old bean.".format( self.email_address)) send_time = self.messages.last_sent_message_timestamp() msg = self.messages.wait_for_message(send_time=send_time) # Press the email link. link = msg.find_element("tag name", "a") link.tap() add_btn = self.UTILS.element.getElement( DOM.Messages.header_add_to_contact_btn, "Add to an existing contact button") add_btn.tap() # Verify that the email is in the email field. self.UTILS.iframe.switchToFrame(*DOM.Contacts.frame_locator) self.contacts.view_contact(self.test_contact["givenName"], False) self.UTILS.element.waitForElements( ("xpath", "//input[@type='email' and @value='{}']".format( self.email_address)), "New email address") self.contacts.add_gallery_image_to_contact(0) done_button = self.UTILS.element.getElement( DOM.Contacts.edit_update_button, "'Update' button") done_button.tap() # Check that the contacts iframe is now gone. self.marionette.switch_to_frame() self.UTILS.element.waitForNotElements( ("xpath", "//iframe[contains(@src,'contacts')]"), "Contact app iframe")
class test_main(GaiaTestCase): test_msg = "Test." def setUp(self): # Set up child objects... GaiaTestCase.setUp(self) self.UTILS = UTILS(self) self.contacts = Contacts(self) self.messages = Messages(self) # Prepare the contact we're going to insert. self.phone_number = self.UTILS.general.get_config_variable("phone_number", "custom") self.contact = MockContact(tel={'type': '', 'value': self.phone_number}) self.UTILS.general.insertContact(self.contact) self.UTILS.reporting.logComment("Using target telephone number " + self.contact["tel"]["value"]) self.data_layer.delete_all_sms() def tearDown(self): self.UTILS.reporting.reportResults() GaiaTestCase.tearDown(self) def test_run(self): # Launch contacts app. self.contacts.launch() # View the details of our contact. self.contacts.view_contact(self.contact['name']) # Tap the sms button in the view details screen to go to the sms page. smsBTN = self.UTILS.element.getElement(DOM.Contacts.sms_button, "Send SMS button") smsBTN.tap() time.sleep(2) self.marionette.switch_to_frame() self.UTILS.iframe.switchToFrame(*DOM.Messages.frame_locator) # Create SMS. self.messages.enterSMSMsg(self.test_msg) # Click send. self.messages.sendSMS() send_time = self.messages.last_sent_message_timestamp() # Wait for the last message in this thread to be a 'received' one. returnedSMS = self.messages.wait_for_message(send_time=send_time) self.UTILS.test.test(returnedSMS, "A received message appeared in the thread.", True) self.messages.check_last_message_contents(self.test_msg) # Examine the carrier. expect = self.contact["tel"]["type"] actual = self.messages.threadType() self.UTILS.test.test(expect == actual, "The type is listed as: '{}' (subheader was '{}').".\ format(expect, actual)) # Phone Number is shown instead of carrier as the secondary header expect = self.contact["tel"]["value"] actual = self.messages.threadCarrier() self.UTILS.test.test(expect == actual, "The telephone number is: '{}' (subheader was '{}').".\ format(expect, actual))