Example #1
0
class test_main(GaiaTestCase):

    def setUp(self):
        GaiaTestCase.setUp(self)
        self.UTILS = UTILS(self)
        self.contacts = Contacts(self)

        self.contact = MockContact()

    def tearDown(self):
        self.UTILS.reporting.reportResults()
        GaiaTestCase.tearDown(self)

    def test_run(self):
        self.contacts.launch()
        self.contacts.start_create_new_contact()

        done_button = self.UTILS.element.getElement(DOM.Contacts.done_button, "Done button")
        self.UTILS.test.test(not done_button.is_enabled(), "Done button is not enabled")

        contFields = self.contacts.get_contact_fields()

        """
        Put the contact details into each of the fields (this method
        clears each field first).
        """
        self.contacts.replace_str(contFields['tel'], self.contact["tel"]["value"])

        done_button = self.UTILS.element.getElement(DOM.Contacts.done_button, "Done button")
        self.UTILS.test.test(done_button.is_enabled(), "Done button is not enabled")
        done_button.tap()

        self.contacts.view_contact(self.contact["tel"]["value"])
Example #2
0
class test_main(GaiaTestCase):

    def setUp(self):
        # Set up child objects...
        GaiaTestCase.setUp(self)
        self.UTILS = UTILS(self)
        self.dialer = Dialer(self)
        self.contacts = Contacts(self)

        self.given_name = "John"
        self.family_name = "Doe"

    def tearDown(self):
        self.UTILS.reporting.reportResults()
        GaiaTestCase.tearDown(self)

    def test_run(self):
        self.dialer.launch()
        self.dialer.enterNumber("123456789")
        self.dialer.createContactFromThisNum()

        contFields = self.contacts.get_contact_fields()
        self.contacts.replace_str(contFields['givenName'], self.given_name)
        self.contacts.replace_str(contFields['familyName'], self.family_name)

        done_button = self.UTILS.element.getElement(DOM.Contacts.done_button, "Done button")
        done_button.tap()
        time.sleep(2)

        self.UTILS.reporting.logResult('info', "displayed_app: {}".format(self.apps.displayed_app.name))
        self.UTILS.test.test(self.apps.displayed_app.name == "Phone", "The dialer app is now displayed.")
Example #3
0
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.contacts = Contacts(self)

        self.phone_number = self.UTILS.general.get_config_variable(
            "phone_number", "custom")

    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], "Test message.")
        x = self.messages.wait_for_message()

        # Tap the header to create a contact.
        self.messages.header_createContact()

        # Fill in some details.
        contFields = self.contacts.get_contact_fields()
        self.contacts.replace_str(contFields['givenName'], "Test")
        self.contacts.replace_str(contFields['familyName'], "Testerton")

        # Press the Done button.
        x = self.UTILS.element.getElement(DOM.Contacts.done_button,
                                          "Done button")
        x.tap()

        # Wait for contacts app to close and return to sms app.
        self.marionette.switch_to_frame()
        self.UTILS.element.waitForNotElements(
            ("xpath", "//iframe[contains(@src, '{}')]".format(
                DOM.Contacts.frame_locator[1])), "Contacts iframe")

        self.UTILS.iframe.switchToFrame(*DOM.Messages.frame_locator)

        # Verify the header is now the name,
        x = self.UTILS.element.getElement(DOM.Messages.message_header,
                                          "Message header")
        self.UTILS.test.test(
            x.text == "Test Testerton",
            "Message header has been changed to match the contact (it was '{}')."
            .format(x.text))

        # Go back to the threads view and check the message name there too.
        self.messages.go_back()
        self.messages.openThread("Test Testerton")
Example #4
0
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.incoming_sms_num = self.UTILS.general.get_config_variable("sms_platform_numbers", "common").split(',')

    def tearDown(self):
        self.UTILS.reporting.reportResults()
        GaiaTestCase.tearDown(self)

    def test_run(self):

        # Create and send a new test message.
        msg_text = "Nine 123456789 numbers."
        self.UTILS.messages.create_incoming_sms(self.phone_number, msg_text)
        self.UTILS.statusbar.wait_for_notification_toaster_detail(msg_text, timeout=120)
        title = self.UTILS.statusbar.wait_for_notification_toaster_with_titles(self.incoming_sms_num, timeout=5)
        self.UTILS.statusbar.click_on_notification_title(title, DOM.Messages.frame_locator)
        sms = self.messages.last_message_in_this_thread()

        # Long press the embedded number link.
        link = sms.find_element("tag name", "a")
        link.tap()

        # Select create new contact.
        btn = self.UTILS.element.getElement(DOM.Messages.header_create_new_contact_btn, "Create new contact button")
        btn.tap()
        self.UTILS.iframe.switchToFrame(*DOM.Contacts.frame_locator)

        contFields = self.contacts.get_contact_fields()

        # Verify the number is in the number field.
        self.UTILS.test.test("123456789" in contFields['tel'].get_attribute("value"),
                        "Our target number is in the telephone field (expected {}).".\
                        format(contFields['tel'].get_attribute("value")))
        """
        Put the contact details into each of the fields (this method
        clears each field first).
        """

        self.contacts.replace_str(contFields['givenName'], "Test27000")
        self.contacts.replace_str(contFields['familyName'], "Testerton")
        x = self.UTILS.element.getElement(DOM.Contacts.done_button, "Done button")
        x.tap()

        # Wait for the contacts app to go away.
        self.marionette.switch_to_frame()
        self.UTILS.element.waitForNotElements(("xpath", "//iframe[contains(@src, '{}')]".\
                                               format(DOM.Contacts.frame_locator[1])), "Contacts iframe")

        # Verify that the sms app is still running.
        self.UTILS.iframe.switchToFrame(*DOM.Messages.frame_locator)
Example #5
0
class test_main(GaiaTestCase):
    def setUp(self):
        # Set up child objects...
        GaiaTestCase.setUp(self)
        self.UTILS = UTILS(self)
        self.dialer = Dialer(self)
        self.contacts = Contacts(self)

        self.Contact_1 = MockContact()
        self.num = self.UTILS.general.get_config_variable(
            "phone_number", "custom")

    def tearDown(self):
        self.UTILS.reporting.reportResults()
        GaiaTestCase.tearDown(self)

    def test_run(self):

        # Enter a number in the dialer.
        self.dialer.launch()
        self.dialer.enterNumber(self.num)

        # Press the add to contacts button, then select 'add to existing contact'.
        x = self.UTILS.element.getElement(DOM.Dialer.add_to_contacts_button,
                                          "Add to contacts button")
        x.tap()

        x = self.UTILS.element.getElement(DOM.Dialer.create_new_contact_btn,
                                          "Create new contact button")
        x.tap()

        # Enter the details of the new contact.
        self.UTILS.iframe.switchToFrame(*DOM.Contacts.frame_locator)
        contFields = self.contacts.get_contact_fields()
        self.contacts.replace_str(contFields['givenName'],
                                  self.Contact_1["givenName"])
        self.contacts.replace_str(contFields['familyName'],
                                  self.Contact_1["familyName"])

        done_button = self.UTILS.element.getElement(DOM.Contacts.done_button,
                                                    "'Done' button")
        done_button.tap()

        # Verify that the contacts app is closed and we are returned to the call log.
        self.marionette.switch_to_frame()
        self.UTILS.element.waitForNotElements(("xpath", "//iframe[contains(@{}, '{}')]".\
                                               format(DOM.Contacts.frame_locator[0], DOM.Contacts.frame_locator[1])),
                                              "Contacts frame")
        self.UTILS.iframe.switchToFrame(*DOM.Dialer.frame_locator)

        # Verify that this contact has been created in contacts.
        self.apps.kill_all()
        self.contacts.launch()
        self.contacts.view_contact(self.Contact_1["name"])

        x = self.UTILS.debug.screenShotOnErr()
        self.UTILS.reporting.logResult("info",
                                       "Final screenshot and html dump:", x)
Example #6
0
class main(GaiaTestCase):

    def setUp(self):
        GaiaTestCase.setUp(self)
        self.UTILS = UTILS(self)
        self.loop = Loop(self)
        self.contacts = Contacts(self)
        self.settings = Settings(self)

        self.test_contact = MockContact(givenName="QA", familyName="Automation")
        self.fxa_user = self.UTILS.general.get_config_variable("fxa_user", "common")
        self.fxa_pass = self.UTILS.general.get_config_variable("fxa_pass", "common")
        _ = setup_translations(self)
        self.expected_msg = _("This contact does not have either a phone number or an email address.")

        self.contacts.launch()
        self.contacts.start_create_new_contact()
        cont_fields = self.contacts.get_contact_fields()
        self.contacts.replace_str(cont_fields['givenName'], self.test_contact['givenName'])
        self.contacts.replace_str(cont_fields['familyName'], self.test_contact['familyName'])
        done_button = self.UTILS.element.getElement(DOM.Contacts.done_button, "'Done' button")
        done_button.tap()

        self.connect_to_network()
        self.loop.initial_test_checks()
        self.settings.launch()
        self.settings.fxa()
        self.settings.fxa_log_out()
        self.apps.kill_all()
        time.sleep(2)

    def tearDown(self):
        self.UTILS.reporting.reportResults()
        GaiaTestCase.tearDown(self)

    def test_run(self):
        # First, login
        self.loop.launch()
        result = self.loop.wizard_or_login()

        if result:
            self.loop.firefox_login(self.fxa_user, self.fxa_pass)
            self.loop.allow_permission_ffox_login()
            self.UTILS.element.waitForElements(DOM.Loop.app_header, "Loop main view")

            self.loop.open_address_book()
            elem = (DOM.Contacts.view_all_contact_specific_contact[
                    0], DOM.Contacts.view_all_contact_specific_contact[1].format(self.test_contact["givenName"]))
            entry = self.UTILS.element.getElement(elem, "Contact in address book")
            entry.tap()

            time.sleep(5)
            self.marionette.switch_to_frame()
            title = self.UTILS.element.getElement(DOM.GLOBAL.modal_dialog_alert_title, "Error title")
            msg = self.UTILS.element.getElement(DOM.GLOBAL.modal_dialog_alert_msg, "Error message")
            self.UTILS.test.test(title.text == "Firefox Hello", "Error title matches")
            self.UTILS.test.test(msg.text == self.expected_msg, "Error message matches")
Example #7
0
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.contacts = Contacts(self)

        self.phone_number = self.UTILS.general.get_config_variable("phone_number", "custom")

    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], "Test message.")
        x = self.messages.wait_for_message()

        # Tap the header to create a contact.
        self.messages.header_createContact()

        # Fill in some details.
        contFields = self.contacts.get_contact_fields()
        self.contacts.replace_str(contFields['givenName'], "Test")
        self.contacts.replace_str(contFields['familyName'], "Testerton")

        # Press the Done button.
        x = self.UTILS.element.getElement(DOM.Contacts.done_button, "Done button")
        x.tap()

        # Wait for contacts app to close and return to sms app.
        self.marionette.switch_to_frame()
        self.UTILS.element.waitForNotElements(("xpath",
            "//iframe[contains(@src, '{}')]".format(DOM.Contacts.frame_locator[1])),
                                       "Contacts iframe")

        self.UTILS.iframe.switchToFrame(*DOM.Messages.frame_locator)

        # Verify the header is now the name,
        x = self.UTILS.element.getElement(DOM.Messages.message_header, "Message header")
        self.UTILS.test.test(x.text == "Test Testerton",
                        "Message header has been changed to match the contact (it was '{}').".format(x.text))

        # Go back to the threads view and check the message name there too.
        self.messages.go_back()
        self.messages.openThread("Test Testerton")
Example #8
0
class test_main(GaiaTestCase):
    def setUp(self):
        # Set up child objects...
        GaiaTestCase.setUp(self)
        self.UTILS = UTILS(self)
        self.dialer = Dialer(self)
        self.contacts = Contacts(self)
        _ = setup_translations(self)

        self.phone_number = self.UTILS.general.get_config_variable(
            "phone_number", "custom")
        self.test_contact = MockContact()

        self.dialer.launch()
        self.dialer.callLog_clearAll()
        self.dialer.createMultipleCallLogEntries(self.phone_number, 1)

    def tearDown(self):
        self.UTILS.reporting.reportResults()
        GaiaTestCase.tearDown(self)

    def test_run(self):
        self.dialer.callLog_createContact(self.phone_number)

        contFields = self.contacts.get_contact_fields()
        self.contacts.replace_str(contFields['givenName'],
                                  self.test_contact["givenName"])
        self.contacts.replace_str(contFields['familyName'],
                                  self.test_contact["familyName"])

        done_button = self.UTILS.element.getElement(DOM.Contacts.done_button,
                                                    "'Done' button")
        done_button.tap()

        # Verify that the contacts app is closed and we are returned to the call log.
        self.marionette.switch_to_frame()
        self.UTILS.element.waitForNotElements(
            ("xpath", "//iframe[contains(@{}, '{}')]".format(
                DOM.Contacts.frame_locator[0], DOM.Contacts.frame_locator[1])),
            "Contacts frame")
        self.UTILS.iframe.switchToFrame(*DOM.Dialer.frame_locator)

        header = ('xpath', DOM.GLOBAL.app_head_specific.format(_("Call log")))
        self.UTILS.element.waitForElements(header, "Call log header")

        # Verify that the call log now shows the contact name,
        x = self.UTILS.element.getElement(
            ("xpath", DOM.Dialer.call_log_number_xpath.format(
                self.phone_number)),
            "The call log for phone_number {}".format(self.phone_number))

        self.UTILS.test.test(
            self.test_contact["name"] in x.text,
            "Call log now shows '{}'.".format(self.test_contact["name"]))
Example #9
0
class test_main(GaiaTestCase):

    def setUp(self):
        # Set up child objects...
        GaiaTestCase.setUp(self)
        self.UTILS = UTILS(self)
        self.dialer = Dialer(self)
        self.contacts = Contacts(self)

        self.Contact_1 = MockContact()
        self.num = self.UTILS.general.get_config_variable("phone_number", "custom")

    def tearDown(self):
        self.UTILS.reporting.reportResults()
        GaiaTestCase.tearDown(self)

    def test_run(self):

        # Enter a number in the dialer.
        self.dialer.launch()
        self.dialer.enterNumber(self.num)

        # Press the add to contacts button, then select 'add to existing contact'.
        x = self.UTILS.element.getElement(DOM.Dialer.add_to_contacts_button, "Add to contacts button")
        x.tap()

        x = self.UTILS.element.getElement(DOM.Dialer.create_new_contact_btn, "Create new contact button")
        x.tap()

        # Enter the details of the new contact.
        self.UTILS.iframe.switchToFrame(*DOM.Contacts.frame_locator)
        contFields = self.contacts.get_contact_fields()
        self.contacts.replace_str(contFields['givenName'], self.Contact_1["givenName"])
        self.contacts.replace_str(contFields['familyName'], self.Contact_1["familyName"])

        done_button = self.UTILS.element.getElement(DOM.Contacts.done_button, "'Done' button")
        done_button.tap()

        # Verify that the contacts app is closed and we are returned to the call log.
        self.marionette.switch_to_frame()
        self.UTILS.element.waitForNotElements(("xpath", "//iframe[contains(@{}, '{}')]".\
                                               format(DOM.Contacts.frame_locator[0], DOM.Contacts.frame_locator[1])),
                                              "Contacts frame")
        self.UTILS.iframe.switchToFrame(*DOM.Dialer.frame_locator)

        # Verify that this contact has been created in contacts.
        self.apps.kill_all()
        self.contacts.launch()
        self.contacts.view_contact(self.Contact_1["name"])

        x = self.UTILS.debug.screenShotOnErr()
        self.UTILS.reporting.logResult("info", "Final screenshot and html dump:", x)
Example #10
0
class test_main(GaiaTestCase):

    def setUp(self):
        # Set up child objects...
        GaiaTestCase.setUp(self)
        self.UTILS = UTILS(self)
        self.dialer = Dialer(self)
        self.contacts = Contacts(self)

        self.test_contact = MockContact(tel={'type': 'Mobile', 'value': "665666666"})

        # Generate an entry in the call log
        self.dialer.launch()
        self.dialer.callLog_clearAll()
        self.dialer.createMultipleCallLogEntries(self.test_contact["tel"]["value"], 1)

        # Create contact with image
        self.UTILS.general.add_file_to_device('./tests/_resources/contact_face.jpg')
        self.dialer.callLog_createContact(self.test_contact["tel"]["value"])

        contFields = self.contacts.get_contact_fields()
        self.contacts.replace_str(contFields['givenName'], self.test_contact["givenName"])
        self.contacts.replace_str(contFields['familyName'], self.test_contact["familyName"])

        self.contacts.add_gallery_image_to_contact(0)
        done_button = self.UTILS.element.getElement(DOM.Contacts.done_button, "'Done' button")
        done_button.tap()

        time.sleep(1)
        self.apps.kill_all()
        time.sleep(2)

    def tearDown(self):
        self.UTILS.general.remove_files()
        self.UTILS.reporting.reportResults()
        GaiaTestCase.tearDown(self)

    def test_run(self):
        self.dialer.launch()
        self.dialer.open_call_log()

        entry = self.UTILS.element.getElement(("xpath",
                                               DOM.Dialer.call_log_number_xpath.format(self.test_contact["tel"]["value"])),
                                              "The call log for number {}".format(self.test_contact["tel"]["value"]))
        entry.tap()

        self.UTILS.iframe.switchToFrame(*DOM.Dialer.frame_locator_calling)
        self.UTILS.element.waitForElements(("xpath", DOM.Dialer.outgoing_call_numberXP.format(self.test_contact["name"])),
                                           "Outgoing call found with number matching {}".format(self.test_contact["name"]))
        time.sleep(2)
        self.dialer.hangUp()
Example #11
0
class test_main(GaiaTestCase):
    def setUp(self):

        # Set up child objects...
        GaiaTestCase.setUp(self)
        self.UTILS = UTILS(self)
        self.contacts = Contacts(self)

        # Prepare the contact.
        self.contact = MockContact()

    def tearDown(self):
        self.UTILS.reporting.reportResults()
        GaiaTestCase.tearDown(self)

    def test_run(self):

        # Launch contacts app.
        self.contacts.launch()
        self.contacts.start_create_new_contact()

        x = self.UTILS.debug.screenShotOnErr()
        self.UTILS.reporting.logResult("info", "Screenshot at this point", x)

        x = self.UTILS.element.getElement(DOM.Contacts.done_button,
                                          "Done button")
        self.UTILS.test.test(not x.is_enabled(), "Done button is not enabled")

        contFields = self.contacts.get_contact_fields()
        """
        Put the contact details into each of the fields (this method
        clears each field first).
        """

        self.contacts.replace_str(contFields['givenName'],
                                  self.contact["givenName"])
        self.contacts.replace_str(contFields['familyName'],
                                  self.contact["familyName"])

        x = self.UTILS.debug.screenShotOnErr()
        self.UTILS.reporting.logResult("info", "Screenshot at this point", x)

        x = self.UTILS.element.getElement(DOM.Contacts.done_button,
                                          "Done button")
        self.UTILS.test.test(x.is_enabled(), "Done button is not enabled")
        x.tap()

        self.contacts.view_contact(self.contact["name"])
Example #12
0
class test_main(GaiaTestCase):

    def setUp(self):
        # Set up child objects...
        GaiaTestCase.setUp(self)
        self.UTILS = UTILS(self)
        self.dialer = Dialer(self)
        self.contacts = Contacts(self)
        _ = setup_translations(self)

        self.contact_1 = MockContact()
        self.phone_number = "0034" + self.UTILS.general.get_config_variable("target_call_number", "common")

        # Generate an entry in the call log
        self.dialer.launch()
        self.dialer.callLog_clearAll()
        self.dialer.createMultipleCallLogEntries(self.phone_number, 1)

    def tearDown(self):
        self.UTILS.reporting.reportResults()
        GaiaTestCase.tearDown(self)

    def test_run(self):

        # Open the call log and create a contact for our number.
        self.dialer.callLog_createContact(self.phone_number)

        contFields = self.contacts.get_contact_fields()
        self.contacts.replace_str(contFields['givenName'], self.contact_1["givenName"])
        self.contacts.replace_str(contFields['familyName'], self.contact_1["familyName"])

        done_button = self.UTILS.element.getElement(DOM.Contacts.done_button, "'Done' button")
        done_button.tap()

        # Verify that the contacts app is closed and we are returned to the call log.
        self.marionette.switch_to_frame()
        self.UTILS.element.waitForNotElements(("xpath", "//iframe[contains(@{}, '{}')]".
                                               format(DOM.Contacts.frame_locator[0], DOM.Contacts.frame_locator[1])),
                                              "Contacts frame")
        self.UTILS.iframe.switchToFrame(*DOM.Dialer.frame_locator)

        header = ('xpath', DOM.GLOBAL.app_head_specific.format(_("Call log")))
        self.UTILS.element.waitForElements(header, "Call log header")

        # Verify that this contact has been created in contacts.
        self.apps.kill_all()
        self.contacts.launch()
        self.contacts.view_contact(self.contact_1["name"])
Example #13
0
class test_main(GaiaTestCase):

    def setUp(self):
        # Set up child objects...
        GaiaTestCase.setUp(self)
        self.UTILS = UTILS(self)
        self.dialer = Dialer(self)
        self.contacts = Contacts(self)
        _ = setup_translations(self)

        self.phone_number = self.UTILS.general.get_config_variable("phone_number", "custom")
        self.test_contact = MockContact()

        self.dialer.launch()
        self.dialer.callLog_clearAll()
        self.dialer.createMultipleCallLogEntries(self.phone_number, 1)

    def tearDown(self):
        self.UTILS.reporting.reportResults()
        GaiaTestCase.tearDown(self)

    def test_run(self):
        self.dialer.callLog_createContact(self.phone_number)

        contFields = self.contacts.get_contact_fields()
        self.contacts.replace_str(contFields['givenName'], self.test_contact["givenName"])
        self.contacts.replace_str(contFields['familyName'], self.test_contact["familyName"])

        done_button = self.UTILS.element.getElement(DOM.Contacts.done_button, "'Done' button")
        done_button.tap()

        # Verify that the contacts app is closed and we are returned to the call log.
        self.marionette.switch_to_frame()
        self.UTILS.element.waitForNotElements(("xpath", "//iframe[contains(@{}, '{}')]".
                                               format(DOM.Contacts.frame_locator[0], DOM.Contacts.frame_locator[1])),
                                              "Contacts frame")
        self.UTILS.iframe.switchToFrame(*DOM.Dialer.frame_locator)

        header = ('xpath', DOM.GLOBAL.app_head_specific.format(_("Call log")))
        self.UTILS.element.waitForElements(header, "Call log header")

        # Verify that the call log now shows the contact name,
        x = self.UTILS.element.getElement(("xpath", DOM.Dialer.call_log_number_xpath.format(self.phone_number)),
                                          "The call log for phone_number {}".format(self.phone_number))

        self.UTILS.test.test(self.test_contact["name"] in x.text, "Call log now shows '{}'.".
                             format(self.test_contact["name"]))
Example #14
0
class test_main(GaiaTestCase):

    def setUp(self):

        # Set up child objects...
        GaiaTestCase.setUp(self)
        self.UTILS = UTILS(self)
        self.contacts = Contacts(self)

        # Prepare the contact.
        self.contact = MockContact()

    def tearDown(self):
        self.UTILS.reporting.reportResults()
        GaiaTestCase.tearDown(self)

    def test_run(self):

        # Launch contacts app.
        self.contacts.launch()
        self.contacts.start_create_new_contact()

        x = self.UTILS.debug.screenShotOnErr()
        self.UTILS.reporting.logResult("info", "Screenshot at this point", x)

        x = self.UTILS.element.getElement(DOM.Contacts.done_button, "Done button")
        self.UTILS.test.test(not x.is_enabled(), "Done button is not enabled")

        contFields = self.contacts.get_contact_fields()
        """
        Put the contact details into each of the fields (this method
        clears each field first).
        """

        self.contacts.replace_str(contFields['givenName'], self.contact["givenName"])
        self.contacts.replace_str(contFields['familyName'], self.contact["familyName"])

        x = self.UTILS.debug.screenShotOnErr()
        self.UTILS.reporting.logResult("info", "Screenshot at this point", x)

        x = self.UTILS.element.getElement(DOM.Contacts.done_button, "Done button")
        self.UTILS.test.test(x.is_enabled(), "Done button is not enabled")
        x.tap()

        self.contacts.view_contact(self.contact["name"])
Example #15
0
class test_main(GaiaTestCase):
    def setUp(self):

        # Set up child objects...
        GaiaTestCase.setUp(self)
        self.UTILS = UTILS(self)
        self.contacts = Contacts(self)

        # Prepare the contact.
        self.contact = MockContact()

    def tearDown(self):
        self.UTILS.reporting.reportResults()
        GaiaTestCase.tearDown(self)

    def test_run(self):

        # Launch contacts app.
        self.contacts.launch()

        # Create the contact.
        self.contacts.start_create_new_contact()
        contFields = self.contacts.get_contact_fields()
        self.contacts.replace_str(contFields['givenName'],
                                  self.contact["givenName"])
        self.contacts.replace_str(contFields['familyName'],
                                  self.contact["familyName"])

        x = self.UTILS.debug.screenShotOnErr()
        self.UTILS.reporting.logResult("info", "Screenshot at this point", x)

        x = self.UTILS.element.getElement(DOM.Contacts.done_button,
                                          "Done button")
        x.tap()

        self.contacts.view_contact(self.contact["name"])

        time.sleep(1)
        self.UTILS.element.waitForNotElements(("xpath", "//h2[text()='Home']"),
                                              "'Home' section.")

        x = self.UTILS.debug.screenShotOnErr()
        self.UTILS.reporting.logResult("info", "Screenshot at this point", x)
Example #16
0
class test_main(GaiaTestCase):

    def setUp(self):

        # Set up child objects...
        GaiaTestCase.setUp(self)
        self.UTILS = UTILS(self)
        self.contacts = Contacts(self)

        # Prepare the contact.
        self.contact = MockContact()

    def tearDown(self):
        self.UTILS.reporting.reportResults()
        GaiaTestCase.tearDown(self)

    def test_run(self):

        # Launch contacts app.
        self.contacts.launch()

        # Create the contact.
        self.contacts.start_create_new_contact()
        contFields = self.contacts.get_contact_fields()
        self.contacts.replace_str(contFields['givenName'], self.contact["givenName"])
        self.contacts.replace_str(contFields['familyName'], self.contact["familyName"])

        x = self.UTILS.debug.screenShotOnErr()
        self.UTILS.reporting.logResult("info", "Screenshot at this point", x)

        x = self.UTILS.element.getElement(DOM.Contacts.done_button, "Done button")
        x.tap()

        self.contacts.view_contact(self.contact["name"])

        time.sleep(1)
        self.UTILS.element.waitForNotElements(("xpath", "//h2[text()='Home']"), "'Home' section.")

        x = self.UTILS.debug.screenShotOnErr()
        self.UTILS.reporting.logResult("info", "Screenshot at this point", x)
Example #17
0
class test_main(GaiaTestCase):
    def setUp(self):
        GaiaTestCase.setUp(self)
        self.UTILS = UTILS(self)
        self.contacts = Contacts(self)

        self.contact = MockContact()

    def tearDown(self):
        self.UTILS.reporting.reportResults()
        GaiaTestCase.tearDown(self)

    def test_run(self):
        self.contacts.launch()
        self.contacts.start_create_new_contact()

        done_button = self.UTILS.element.getElement(DOM.Contacts.done_button,
                                                    "Done button")
        self.UTILS.test.test(not done_button.is_enabled(),
                             "Done button is not enabled")

        contFields = self.contacts.get_contact_fields()
        """
        Put the contact details into each of the fields (this method
        clears each field first).
        """
        self.contacts.replace_str(contFields['tel'],
                                  self.contact["tel"]["value"])

        done_button = self.UTILS.element.getElement(DOM.Contacts.done_button,
                                                    "Done button")
        self.UTILS.test.test(done_button.is_enabled(),
                             "Done button is not enabled")
        done_button.tap()

        self.contacts.view_contact(self.contact["tel"]["value"])
Example #18
0
class main(GaiaTestCase):
    def setUp(self):
        GaiaTestCase.setUp(self)
        self.UTILS = UTILS(self)
        self.loop = Loop(self)
        self.contacts = Contacts(self)
        self.settings = Settings(self)

        self.test_contact = MockContact(givenName="QA",
                                        familyName="Automation")
        self.fxa_user = self.UTILS.general.get_config_variable(
            "fxa_user", "common")
        self.fxa_pass = self.UTILS.general.get_config_variable(
            "fxa_pass", "common")
        _ = setup_translations(self)
        self.expected_msg = _(
            "This contact does not have either a phone number or an email address."
        )

        self.contacts.launch()
        self.contacts.start_create_new_contact()
        cont_fields = self.contacts.get_contact_fields()
        self.contacts.replace_str(cont_fields['givenName'],
                                  self.test_contact['givenName'])
        self.contacts.replace_str(cont_fields['familyName'],
                                  self.test_contact['familyName'])
        done_button = self.UTILS.element.getElement(DOM.Contacts.done_button,
                                                    "'Done' button")
        done_button.tap()

        self.connect_to_network()
        self.loop.initial_test_checks()
        self.settings.launch()
        self.settings.fxa()
        self.settings.fxa_log_out()
        self.apps.kill_all()
        time.sleep(2)

    def tearDown(self):
        self.UTILS.reporting.reportResults()
        GaiaTestCase.tearDown(self)

    def test_run(self):
        # First, login
        self.loop.launch()
        result = self.loop.wizard_or_login()

        if result:
            self.loop.firefox_login(self.fxa_user, self.fxa_pass)
            self.loop.allow_permission_ffox_login()
            self.UTILS.element.waitForElements(DOM.Loop.app_header,
                                               "Loop main view")

            self.loop.open_address_book()
            elem = (DOM.Contacts.view_all_contact_specific_contact[0],
                    DOM.Contacts.view_all_contact_specific_contact[1].format(
                        self.test_contact["givenName"]))
            entry = self.UTILS.element.getElement(elem,
                                                  "Contact in address book")
            entry.tap()

            time.sleep(5)
            self.marionette.switch_to_frame()
            title = self.UTILS.element.getElement(
                DOM.GLOBAL.modal_dialog_alert_title, "Error title")
            msg = self.UTILS.element.getElement(
                DOM.GLOBAL.modal_dialog_alert_msg, "Error message")
            self.UTILS.test.test(title.text == "Firefox Hello",
                                 "Error title matches")
            self.UTILS.test.test(msg.text == self.expected_msg,
                                 "Error message matches")
Example #19
0
class test_main(GaiaTestCase):

    link = "*****@*****.**"
    test_msg = "Test " + link + " this."

    def setUp(self):

        # Set up child objects...
        GaiaTestCase.setUp(self)
        self.UTILS = UTILS(self)
        self.messages = Messages(self)
        self.contacts = Contacts(self)

        # Insert a contact without email addresses
        self.UTILS.general.add_file_to_device('./tests/_resources/contact_face.jpg')
        self.contact = MockContact(email={'type': 'Personal', 'value': ''})

        self.UTILS.general.insertContact(self.contact)

        # 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)

    def tearDown(self):
        self.UTILS.general.remove_files()
        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)
        """
        Wait for the last message in this thread to be a 'received' one
        and click the link.
        """

        x = self.messages.wait_for_message()
        self.UTILS.test.test(x, "Received a message.", True)

        a = x.find_element("tag name", "a")

        a.tap()

        # Press 'add to existing contact' button.
        w = self.UTILS.element.getElement(DOM.Messages.header_add_to_contact_btn,
                                    "Add to existing contact button")
        w.tap()

        # Switch to Contacts app.
        time.sleep(2)
        self.marionette.switch_to_frame()
        self.UTILS.iframe.switchToFrame(*DOM.Contacts.frame_locator)

        # Select the contact.
        prepopulated_contact = (DOM.Contacts.view_all_contact_specific_contact[0],
                                DOM.Contacts.view_all_contact_specific_contact[1].format("OWD"))

        contact = self.UTILS.element.getElement(prepopulated_contact, "Search item")
        contact.tap()

        # Fill out all the other details.
        contFields = self.contacts.get_contact_fields()
        """
        Put the contact details into each of the fields (this method
        clears each field first).
        """

        self.contacts.replace_str(contFields['givenName'], self.contact["givenName"] + "bis")
        self.contacts.replace_str(contFields['familyName'], self.contact["familyName"] + "bis")
        self.contacts.replace_str(contFields['tel'], self.contact["tel"]["value"] + "bis")
        self.contacts.replace_str(contFields['street'], self.contact["addr"]["streetAddress"] + "bis")
        self.contacts.replace_str(contFields['zip'], self.contact["addr"]["postalCode"] + "bis")
        self.contacts.replace_str(contFields['city'], self.contact["addr"]["locality"] + "bis")
        self.contacts.replace_str(contFields['country'], self.contact["addr"]["countryName"] + "bis")
        self.contacts.add_gallery_image_to_contact(0)

        # Add another email address.
        self.contacts.add_another_email_address(self.contact["email"]["value"])

        # Press the Done button.
        done_button = self.UTILS.element.getElement(DOM.Contacts.done_button, "'Done' 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")

        # Now return to the SMS app.
        self.UTILS.iframe.switchToFrame(*DOM.Messages.frame_locator)
Example #20
0
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)
Example #21
0
class test_main(GaiaTestCase):
    def setUp(self):
        # Set up child objects...
        GaiaTestCase.setUp(self)
        self.UTILS = UTILS(self)
        self.dialer = Dialer(self)
        self.contacts = Contacts(self)

        self.test_contact = MockContact(tel={
            'type': 'Mobile',
            'value': "665666666"
        })

        # Generate an entry in the call log
        self.dialer.launch()
        self.dialer.callLog_clearAll()
        self.dialer.createMultipleCallLogEntries(
            self.test_contact["tel"]["value"], 1)

        # Create contact with image
        self.UTILS.general.add_file_to_device(
            './tests/_resources/contact_face.jpg')
        self.dialer.callLog_createContact(self.test_contact["tel"]["value"])

        contFields = self.contacts.get_contact_fields()
        self.contacts.replace_str(contFields['givenName'],
                                  self.test_contact["givenName"])
        self.contacts.replace_str(contFields['familyName'],
                                  self.test_contact["familyName"])

        self.contacts.add_gallery_image_to_contact(0)
        done_button = self.UTILS.element.getElement(DOM.Contacts.done_button,
                                                    "'Done' button")
        done_button.tap()

        time.sleep(1)
        self.apps.kill_all()
        time.sleep(2)

    def tearDown(self):
        self.UTILS.general.remove_files()
        self.UTILS.reporting.reportResults()
        GaiaTestCase.tearDown(self)

    def test_run(self):
        self.dialer.launch()
        self.dialer.open_call_log()

        entry = self.UTILS.element.getElement(
            ("xpath",
             DOM.Dialer.call_log_number_xpath.format(
                 self.test_contact["tel"]["value"])),
            "The call log for number {}".format(
                self.test_contact["tel"]["value"]))
        entry.tap()

        self.UTILS.iframe.switchToFrame(*DOM.Dialer.frame_locator_calling)
        self.UTILS.element.waitForElements(
            ("xpath",
             DOM.Dialer.outgoing_call_numberXP.format(
                 self.test_contact["name"])),
            "Outgoing call found with number matching {}".format(
                self.test_contact["name"]))
        time.sleep(2)
        self.dialer.hangUp()
Example #22
0
class test_main(GaiaTestCase):

    link = "*****@*****.**"
    test_msg = "Test " + link + " this."

    def setUp(self):

        # Set up child objects...
        GaiaTestCase.setUp(self)
        self.UTILS = UTILS(self)
        self.messages = Messages(self)
        self.contacts = Contacts(self)

        # Insert a contact without email addresses
        self.UTILS.general.add_file_to_device(
            './tests/_resources/contact_face.jpg')
        self.contact = MockContact(email={'type': 'Personal', 'value': ''})

        self.UTILS.general.insertContact(self.contact)

        # 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)

    def tearDown(self):
        self.UTILS.general.remove_files()
        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)
        """
        Wait for the last message in this thread to be a 'received' one
        and click the link.
        """

        x = self.messages.wait_for_message()
        self.UTILS.test.test(x, "Received a message.", True)

        a = x.find_element("tag name", "a")

        a.tap()

        # Press 'add to existing contact' button.
        w = self.UTILS.element.getElement(
            DOM.Messages.header_add_to_contact_btn,
            "Add to existing contact button")
        w.tap()

        # Switch to Contacts app.
        time.sleep(2)
        self.marionette.switch_to_frame()
        self.UTILS.iframe.switchToFrame(*DOM.Contacts.frame_locator)

        # Select the contact.
        prepopulated_contact = (
            DOM.Contacts.view_all_contact_specific_contact[0],
            DOM.Contacts.view_all_contact_specific_contact[1].format("OWD"))

        contact = self.UTILS.element.getElement(prepopulated_contact,
                                                "Search item")
        contact.tap()

        # Fill out all the other details.
        contFields = self.contacts.get_contact_fields()
        """
        Put the contact details into each of the fields (this method
        clears each field first).
        """

        self.contacts.replace_str(contFields['givenName'],
                                  self.contact["givenName"] + "bis")
        self.contacts.replace_str(contFields['familyName'],
                                  self.contact["familyName"] + "bis")
        self.contacts.replace_str(contFields['tel'],
                                  self.contact["tel"]["value"] + "bis")
        self.contacts.replace_str(
            contFields['street'],
            self.contact["addr"]["streetAddress"] + "bis")
        self.contacts.replace_str(contFields['zip'],
                                  self.contact["addr"]["postalCode"] + "bis")
        self.contacts.replace_str(contFields['city'],
                                  self.contact["addr"]["locality"] + "bis")
        self.contacts.replace_str(contFields['country'],
                                  self.contact["addr"]["countryName"] + "bis")
        self.contacts.add_gallery_image_to_contact(0)

        # Add another email address.
        self.contacts.add_another_email_address(self.contact["email"]["value"])

        # Press the Done button.
        done_button = self.UTILS.element.getElement(DOM.Contacts.done_button,
                                                    "'Done' 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")

        # Now return to the SMS app.
        self.UTILS.iframe.switchToFrame(*DOM.Messages.frame_locator)
Example #23
0
class test_main(GaiaTestCase):
    def __init__(self, *args, **kwargs):
        kwargs['restart'] = True
        super(test_main, self).__init__(*args, **kwargs)

    def setUp(self):
        GaiaTestCase.setUp(self)
        self.UTILS = UTILS(self)
        self.contacts = Contacts(self)
        self.settings = Settings(self)

        self.gmail_user = self.UTILS.general.get_config_variable(
            "gmail_1_user", "common")
        self.gmail_passwd = self.UTILS.general.get_config_variable(
            "gmail_1_pass", "common")

        # Create test contacts.
        self.contact_list = [MockContact() for i in range(2)]
        self.contact_list[1]['email'] = {}
        map(self.UTILS.general.insertContact, self.contact_list)
        # Set up to use data connection.
        self.connect_to_network()

    def tearDown(self):
        self.UTILS.reporting.reportResults()
        GaiaTestCase.tearDown(self)

    def test_run(self):
        self.contacts.launch()
        self.contacts.import_gmail_login(self.gmail_user, self.gmail_passwd)
        contact_list = self.UTILS.element.getElements(
            DOM.Contacts.import_conts_list, "Contact list", False)

        gmail_contacts = []
        for c in contact_list:
            contact_name = c.get_attribute("data-search")
            if '#search#' not in contact_name:
                self.UTILS.reporting.logResult(
                    "info",
                    "Adding '{}' to the list of available contacts.".format(
                        contact_name))
                gmail_contacts.append(contact_name)

        self.contacts.import_all()

        self.apps.kill_all()
        self.contacts.launch()
        self.UTILS.reporting.logResult(
            "info", "Viewing contact '{}' ...".format(gmail_contacts[0]))
        self.contacts.view_contact("*****@*****.**", False)

        edit_btn = self.UTILS.element.getElement(
            DOM.Contacts.edit_details_button, "Edit details button")
        edit_btn.tap()
        self.UTILS.element.waitForElements(DOM.Contacts.edit_contact_header,
                                           "'Edit contacts' screen header")

        # Enter the new contact details.
        contact_fields = self.contacts.get_contact_fields()
        self.contacts.replace_str(contact_fields['givenName'],
                                  self.contact_list[1]["givenName"])
        self.contacts.replace_str(contact_fields['familyName'],
                                  self.contact_list[1]["familyName"])
        self.contacts.replace_str(contact_fields['tel'],
                                  self.contact_list[1]["tel"]["value"])
        self.contacts.replace_str(
            contact_fields['street'],
            self.contact_list[1]["addr"]["streetAddress"])
        self.contacts.replace_str(contact_fields['zip'],
                                  self.contact_list[1]["addr"]["postalCode"])
        self.contacts.replace_str(contact_fields['city'],
                                  self.contact_list[1]["addr"]["locality"])
        self.contacts.replace_str(contact_fields['country'],
                                  self.contact_list[1]["addr"]["countryName"])

        # Save the changes
        update_btn = self.UTILS.element.getElement(
            DOM.Contacts.edit_update_button, "Edit 'update' button")
        update_btn.tap()
        time.sleep(2)