Beispiel #1
0
class TestKeyboardPredictiveKey(GaiaTestCase):
    def test_keyboard_predictive_key(self):
        self.ui_tests = UiTests(self.marionette)
        self.ui_tests.launch()

        # go to UI/keyboard page
        self.ui_tests.tap_keyboard_option()
        keyboard_page = self.ui_tests.switch_to_keyboard_page_frame()

        # tap the field "input type=text"
        keyboard = keyboard_page.tap_text_input()

        # type first 6 letters of the expected word
        keyboard.switch_to_keyboard()
        expected_word = 'keyboard '
        keyboard.send(expected_word[:6])
        self.marionette.switch_to_frame()
        self.marionette.switch_to_frame(self.ui_tests.app.frame)
        keyboard_page = self.ui_tests.switch_to_keyboard_page_frame()
        keyboard_page.tap_text_input()

        # tap the first predictive word
        keyboard.tap_first_predictive_word()
        self.marionette.switch_to_frame()
        self.marionette.switch_to_frame(self.ui_tests.app.frame)
        keyboard_page = self.ui_tests.switch_to_keyboard_page_frame()

        # check if the word in the input field is the same as the expected word
        typed_word = keyboard_page.text_input
        self.assertEqual(typed_word, expected_word)
class TestKeyboardPredictiveKey(GaiaTestCase):

    def test_keyboard_predictive_key(self):
        self.ui_tests = UiTests(self.marionette)
        self.ui_tests.launch()

        # go to UI/keyboard page
        self.ui_tests.tap_keyboard_option()
        keyboard_page = self.ui_tests.switch_to_keyboard_page_frame()

        # tap the field "input type=text"
        keyboard = keyboard_page.tap_text_input()

        # type first 6 letters of the expected word
        keyboard.switch_to_keyboard()
        expected_word = 'keyboard '
        keyboard.send(expected_word[:6])
        self.marionette.switch_to_frame()
        self.marionette.switch_to_frame(self.ui_tests.app.frame)
        keyboard_page = self.ui_tests.switch_to_keyboard_page_frame()
        keyboard_page.tap_text_input()

        # tap the first predictive word
        keyboard.tap_first_predictive_word()
        self.marionette.switch_to_frame()
        self.marionette.switch_to_frame(self.ui_tests.app.frame)
        keyboard_page = self.ui_tests.switch_to_keyboard_page_frame()

        # check if the word in the input field is the same as the expected word
        typed_word = keyboard_page.text_input
        self.assertEqual(typed_word, expected_word)
class TestNumberKeyboard(GaiaTestCase):
    def test_number_keyboard(self):
        self.ui_tests = UiTests(self.marionette)
        self.ui_tests.launch()
        self.ui_tests.tap_keyboard_option()
        keyboard_page = self.ui_tests.switch_to_keyboard_page_frame()
        keyboard = keyboard_page.tap_number_input()
        keyboard.switch_to_keyboard()
        self.assertEqual(str(keyboard.current_keyboard), 'number')
        keyboard._tap('1')
        self.marionette.switch_to_frame()
        self.marionette.switch_to_frame(self.ui_tests.app.frame)
        keyboard_page = self.ui_tests.switch_to_keyboard_page_frame()
        typed_number = keyboard_page.number_input
        self.assertEqual(typed_number, u'1')
Beispiel #4
0
class TestUrlKeyboard(GaiaTestCase):

    def test_url_keyboard(self):
        self.ui_tests = UiTests(self.marionette)
        self.ui_tests.launch()
        self.ui_tests.tap_ui_button()

        keyboard_page = self.ui_tests.tap_keyboard_option()
        keyboard_page.switch_to_frame()

        # tap the field "input type=url"
        keyboard = keyboard_page.tap_url_input()

        keyboard.switch_to_keyboard()
        # Test forward slash
        keyboard._tap('/')

        self.apps.switch_to_displayed_app()
        keyboard_page.switch_to_frame()
        typed_key = keyboard_page.url_input
        self.assertEqual(typed_key, u'/')

        # Test .com key
        keyboard.tap_dotcom()

        keyboard_page.switch_to_frame()
        typed_key = keyboard_page.url_input
        self.assertEqual(typed_key, u'/.com')
Beispiel #5
0
class TestUrlKeyboard(GaiaTestCase):
    def test_url_keyboard(self):
        self.ui_tests = UiTests(self.marionette)
        self.ui_tests.launch()
        self.ui_tests.tap_ui_button()

        keyboard_page = self.ui_tests.tap_keyboard_option()
        keyboard_page.switch_to_frame()

        # tap the field "input type=url"
        keyboard = keyboard_page.tap_url_input()

        keyboard.switch_to_keyboard()
        # Test forward slash
        keyboard._tap('/')

        self.apps.switch_to_displayed_app()
        keyboard_page.switch_to_frame()
        typed_key = keyboard_page.url_input
        self.assertEqual(typed_key, u'/')

        # Test .com key
        keyboard.tap_dotcom()

        keyboard_page.switch_to_frame()
        typed_key = keyboard_page.url_input
        self.assertEqual(typed_key, u'/.com')
Beispiel #6
0
class TestKeyboardBug1073870(GaiaTestCase):
    def setUp(self):
        GaiaTestCase.setUp(self)
        # enable auto-correction of keyboard
        self.data_layer.set_setting('keyboard.autocorrect', True)

    def test_keyboard_bug_1073870(self):
        self.ui_tests = UiTests(self.marionette)
        self.ui_tests.launch()

        # go to UI/keyboard page
        keyboard_page = self.ui_tests.tap_keyboard_option()
        keyboard_page.switch_to_frame()

        # tap the field "input type=text"
        keyboard = keyboard_page.tap_text_input()

        keyboard.send('Hello worl')

        # set caret position to after Hello
        keyboard_page.switch_to_frame()
        self.marionette.execute_script("""var el = document.activeElement;
               el.selectionStart = el.selectionEnd = 5;""")

        keyboard.send(' ')
        keyboard_page.switch_to_frame()
        self.assertEqual(keyboard_page.text_input, 'Hello  worl')
Beispiel #7
0
class TestA11yKeyboardKeyNames(GaiaTestCase):

    def setUp(self):
        GaiaTestCase.setUp(self)
        # enable auto-correction of keyboard
        self.data_layer.set_setting('keyboard.autocorrect', True)

    def test_a11y_keyboard_key_names(self):
        self.ui_tests = UiTests(self.marionette)
        self.ui_tests.launch()

        # go to UI/keyboard page
        keyboard_page = self.ui_tests.tap_keyboard_option()
        keyboard_page.switch_to_frame()

        # tap the field "input type=text"
        keyboard = keyboard_page.tap_text_input()

        keyboard.switch_to_keyboard();

        # check special 'return' key. It should have a role of pushbutton.
        self.assertEqual(keyboard.a11y_enter_key_name, 'return')
        self.assertEqual(keyboard.a11y_enter_key_role, 'pushbutton')

        # check special 'backspace' key. It should have a role of pushbutton.
        self.assertEqual(keyboard.a11y_backspace_key_name, 'delete')
        self.assertEqual(keyboard.a11y_backspace_key_role, 'pushbutton')

        # check 'space' key. It should have a role of key.
        self.assertEqual(keyboard.a11y_space_key_name, 'space')
        self.assertEqual(keyboard.a11y_space_key_role, 'key')
class TestNumberKeyboard(GaiaTestCase):

    def test_number_keyboard(self):
        self.ui_tests = UiTests(self.marionette)
        self.ui_tests.launch()
        self.ui_tests.tap_keyboard_option()
        keyboard_page = self.ui_tests.switch_to_keyboard_page_frame()
        keyboard = keyboard_page.tap_number_input()
        keyboard.switch_to_keyboard()
        self.assertEqual(str(keyboard.current_keyboard), 'number')
        keyboard._tap('1')
        self.marionette.switch_to_frame()
        self.marionette.switch_to_frame(self.ui_tests.app.frame)
        keyboard_page = self.ui_tests.switch_to_keyboard_page_frame()
        typed_number = keyboard_page.number_input
        self.assertEqual(typed_number, u'1')
class TestKeyboardPredictiveKey(GaiaMtbfTestCase):

    def setUp(self):
        GaiaMtbfTestCase.setUp(self)
        # enable auto-correction of keyboard
        self.data_layer.set_setting('keyboard.autocorrect', True)

    def test_keyboard_predictive_key(self):
        # TODO: Merge gaiatest new test of predictive key
        self.app_id = self.launch_by_touch("uitest")
        self.ui_tests = UiTests(self.marionette)
        self.mtbf_ui_tests = MTBF_UiTests(self.marionette)
        self.mtbf_ui_tests.back_to_main_screen()
        # go to UI/keyboard page
        keyboard_page = self.ui_tests.tap_keyboard_option()
        keyboard_page.switch_to_frame()

        # tap the field "input type=text"
        keyboard = keyboard_page.tap_text_input()

        # type first 6 letters of the expected word
        keyboard.switch_to_keyboard()
        expected_word = u'keyboard'
        keyboard.send(expected_word[:7])

        # tap the first predictive word
        keyboard.tap_first_predictive_word()
        self.apps.switch_to_displayed_app()
        keyboard_page.switch_to_frame()

        # check if the word in the input field is the same as the expected word
        typed_word = keyboard_page.text_input
        self.assertEqual(typed_word, expected_word)
Beispiel #10
0
class TestKeyboardBug1073870(GaiaTestCase):

    def setUp(self):
        GaiaTestCase.setUp(self)
        # enable auto-correction of keyboard
        self.data_layer.set_setting('keyboard.autocorrect', True)

    def test_keyboard_bug_1073870(self):
        self.ui_tests = UiTests(self.marionette)
        self.ui_tests.launch()

        # go to UI/keyboard page
        keyboard_page = self.ui_tests.tap_keyboard_option()
        keyboard_page.switch_to_frame()

        # tap the field "input type=text"
        keyboard = keyboard_page.tap_text_input()

        keyboard.send('Hello worl')

        # set caret position to after Hello
        keyboard_page.switch_to_frame()
        self.marionette.execute_script(
            """var el = document.activeElement;
               el.selectionStart = el.selectionEnd = 5;""")

        keyboard.send(' ')
        keyboard_page.switch_to_frame()
        self.assertEqual(keyboard_page.text_input, 'Hello  worl')
Beispiel #11
0
class TestEmailKeyboard(GaiaTestCase):
    def test_basic_email_keyboard(self):
        self.ui_tests = UiTests(self.marionette)
        self.ui_tests.launch()
        self.ui_tests.tap_ui_button()

        keyboard_page = self.ui_tests.tap_keyboard_option()
        keyboard_page.switch_to_frame()

        keyboard = keyboard_page.tap_email_input()
        keyboard.switch_to_keyboard()
        keyboard.send('post')
        self.marionette.switch_to_frame()
        self.marionette.switch_to_frame(self.ui_tests.app.frame)

        keyboard_page.switch_to_frame()
        keyboard_page.tap_email_input()
        keyboard.switch_to_keyboard()
        keyboard._tap('@')
        keyboard.send('mydomain.com')
        self.marionette.switch_to_frame()
        self.marionette.switch_to_frame(self.ui_tests.app.frame)

        keyboard_page.switch_to_frame()
        typed_email_adress = keyboard_page.email_input
        self.assertEqual(typed_email_adress, u'*****@*****.**')
Beispiel #12
0
class TestKeyboardPredictiveKey(GaiaMtbfTestCase):
    def setUp(self):
        GaiaMtbfTestCase.setUp(self)
        # enable auto-correction of keyboard
        self.data_layer.set_setting('keyboard.autocorrect', True)

    def test_keyboard_predictive_key(self):
        # TODO: Merge gaiatest new test of predictive key
        self.app_id = self.launch_by_touch("uitest")
        self.ui_tests = UiTests(self.marionette)
        self.mtbf_ui_tests = MTBF_UiTests(self.marionette)
        self.mtbf_ui_tests.back_to_main_screen()
        # go to UI/keyboard page
        keyboard_page = self.ui_tests.tap_keyboard_option()
        keyboard_page.switch_to_frame()

        # tap the field "input type=text"
        keyboard = keyboard_page.tap_text_input()

        # type first 6 letters of the expected word
        keyboard.switch_to_keyboard()
        expected_word = u'keyboard'
        keyboard.send(expected_word[:6])

        # tap the first predictive word
        keyboard.tap_first_predictive_word()
        self.apps.switch_to_displayed_app()
        keyboard_page.switch_to_frame()

        # check if the word in the input field is the same as the expected word
        typed_word = keyboard_page.text_input
        self.assertEqual(typed_word, expected_word)
class TestKeyboardPredictiveKey(GaiaTestCase):

    def setUp(self):
        GaiaTestCase.setUp(self)
        # enable auto-correction of keyboard
        self.data_layer.set_setting('keyboard.autocorrect', True)

    def test_keyboard_predictive_key(self):
        self.ui_tests = UiTests(self.marionette)
        self.ui_tests.launch()

        # go to UI/keyboard page
        keyboard_page = self.ui_tests.tap_keyboard_option()
        keyboard_page.switch_to_frame()

        # tap the field "input type=text"
        keyboard = keyboard_page.tap_text_input()

        # type first 7 letters of the expected word
        expected_word = 'keyboard '
        keyboard.send(expected_word[:7])

        # tap the first predictive word
        keyboard.tap_first_predictive_word()
        self.apps.switch_to_displayed_app()
        keyboard_page.switch_to_frame()

        # check if the word in the input field is the same as the expected word
        typed_word = keyboard_page.text_input
        self.assertEqual(typed_word, expected_word)
Beispiel #14
0
class TestKeyboardPredictiveKey(GaiaTestCase):
    def setUp(self):
        GaiaTestCase.setUp(self)
        # enable auto-correction of keyboard
        self.data_layer.set_setting('keyboard.autocorrect', True)

    def test_keyboard_predictive_key(self):
        self.ui_tests = UiTests(self.marionette)
        self.ui_tests.launch()

        # go to UI/keyboard page
        keyboard_page = self.ui_tests.tap_keyboard_option()
        keyboard_page.switch_to_frame()

        # tap the field "input type=text"
        keyboard = keyboard_page.tap_text_input()

        # type first 6 letters of the expected word
        keyboard.switch_to_keyboard()
        expected_word = 'keyboard '
        keyboard.send(expected_word[:6])

        # tap the first predictive word
        keyboard.tap_first_predictive_word()
        self.apps.switch_to_displayed_app()
        keyboard_page.switch_to_frame()

        # check if the word in the input field is the same as the expected word
        typed_word = keyboard_page.text_input
        self.assertEqual(typed_word, expected_word)
class TestEmailKeyboard(GaiaMtbfTestCase):

    def test_basic_email_keyboard(self):
        self.ui_tests = UiTests(self.marionette)
        self.app_id = self.launch_by_touch(self.ui_tests)
        self.ui_tests.tap_ui_button()

        keyboard_page = self.ui_tests.tap_keyboard_option()
        keyboard_page.switch_to_frame()

        keyboard = keyboard_page.tap_email_input()
        keyboard.send('post')
        self.apps.switch_to_displayed_app()

        keyboard_page.switch_to_frame()
        keyboard_page.tap_email_input()
        keyboard.switch_to_keyboard()
        keyboard._tap('@')
        keyboard.send('mydomain.com')

        keyboard_page.switch_to_frame()
        typed_email_adress = keyboard_page.email_input
        self.assertEqual(typed_email_adress, u'*****@*****.**')
        self.apps.switch_to_displayed_app()
        self.ui_tests.tap_back_button()
class TestA11yKeyboardWordSuggestions(GaiaTestCase):
    def setUp(self):
        GaiaTestCase.setUp(self)
        # enable auto-correction of keyboard
        self.data_layer.set_setting('keyboard.autocorrect', True)

    def test_a11y_keyboard_word_suggestions(self):
        self.ui_tests = UiTests(self.marionette)
        self.ui_tests.launch()

        # go to UI/keyboard page
        keyboard_page = self.ui_tests.tap_keyboard_option()
        keyboard_page.switch_to_frame()

        # tap the field "input type=text"
        keyboard = keyboard_page.tap_text_input()

        # type first 6 letters of the expected word
        expected_word = 'keyboard '
        keyboard.send(expected_word[:6])

        keyboard.switch_to_keyboard()

        # check that suggestions area has proper accessibility name
        self.assertEqual(keyboard.a11y_candidate_panel_name,
                         'Word suggestions')

        # check that suggestions list has proper accessibility role
        self.assertEqual(keyboard.a11y_suggestions_container_role, 'listbox')

        # check that word suggestion has proper accessibility role and name
        self.assertEqual(keyboard.a11y_first_predictive_word_name,
                         expected_word.strip())
        self.assertEqual(keyboard.a11y_first_predictive_word_role,
                         'listbox option')

        # check that suggestions dismiss has proper accessibility role and name
        self.assertEqual(keyboard.a11y_dismiss_suggestions_button_name,
                         'Dismiss')
        self.assertEqual(keyboard.a11y_dismiss_suggestions_button_role,
                         'pushbutton')

        # check that word suggestion can be selected via accessibility API
        keyboard.a11y_first_predictive_word_click()
        self.apps.switch_to_displayed_app()
        keyboard_page.switch_to_frame()

        # check if the word in the input field is the same as the expected word
        typed_word = keyboard_page.text_input
        self.assertEqual(typed_word, expected_word)
class TestA11yKeyboardWordSuggestions(GaiaTestCase):

    def setUp(self):
        GaiaTestCase.setUp(self)
        # enable auto-correction of keyboard
        self.data_layer.set_setting('keyboard.autocorrect', True)

    def test_a11y_keyboard_word_suggestions(self):
        self.ui_tests = UiTests(self.marionette)
        self.ui_tests.launch()

        # go to UI/keyboard page
        keyboard_page = self.ui_tests.tap_keyboard_option()
        keyboard_page.switch_to_frame()

        # tap the field "input type=text"
        keyboard = keyboard_page.tap_text_input()

        # type first 7 letters of the expected word
        expected_word = 'keyboard '
        keyboard.send(expected_word[:7])

        keyboard.switch_to_keyboard()

        # check that suggestions area has proper accessibility name
        self.assertEqual(keyboard.a11y_candidate_panel_name, 'Word suggestions')

        # check that suggestions list has proper accessibility role
        self.assertEqual(keyboard.a11y_suggestions_container_role, 'listbox')

        # check that word suggestion has proper accessibility role and name
        self.assertEqual(
            keyboard.a11y_first_predictive_word_name, expected_word.strip())
        self.assertEqual(
            keyboard.a11y_first_predictive_word_role, 'listbox option')

        # check that suggestions dismiss has proper accessibility role and name
        self.assertEqual(keyboard.a11y_dismiss_suggestions_button_name, 'Dismiss')
        self.assertEqual(keyboard.a11y_dismiss_suggestions_button_role, 'pushbutton')

        # check that word suggestion can be selected via accessibility API
        keyboard.a11y_first_predictive_word_click()
        self.apps.switch_to_displayed_app()
        keyboard_page.switch_to_frame()

        # check if the word in the input field is the same as the expected word
        typed_word = keyboard_page.text_input
        self.assertEqual(typed_word, expected_word)
Beispiel #18
0
class TestNumberKeyboard(GaiaTestCase):
    def test_number_keyboard(self):
        self.ui_tests = UiTests(self.marionette)
        self.ui_tests.launch()
        self.ui_tests.tap_ui_button()

        keyboard_page = self.ui_tests.tap_keyboard_option()
        keyboard_page.switch_to_frame()

        keyboard = keyboard_page.tap_number_input()

        self.assertEqual(str(keyboard.current_keyboard), "number")

        keyboard.switch_to_keyboard()
        keyboard._tap("1")
        self.apps.switch_to_displayed_app()

        keyboard_page.switch_to_frame()
        typed_number = keyboard_page.number_input
        self.assertEqual(typed_number, u"1")
Beispiel #19
0
class TestNumberKeyboard(GaiaMtbfTestCase):

    def test_number_keyboard(self):
        self.ui_tests = UiTests(self.marionette)
        self.app_id = self.launch_by_touch(self.ui_tests)
        self.ui_tests.tap_ui_button()

        keyboard_page = self.ui_tests.tap_keyboard_option()
        keyboard_page.switch_to_frame()

        keyboard = keyboard_page.tap_number_input()

        self.assertEqual(str(keyboard.current_keyboard), 'number')

        keyboard.switch_to_keyboard()
        keyboard._tap('1')
        self.apps.switch_to_displayed_app()

        keyboard_page.switch_to_frame()
        typed_number = keyboard_page.number_input
        self.assertEqual(typed_number, u'1')

        self.apps.switch_to_displayed_app()
        self.ui_tests.tap_back_button()
Beispiel #20
0
class TestKeyboardPredictiveKey(GaiaTestCase):
    def setUp(self):
        GaiaTestCase.setUp(self)
        # enable auto-correction of keyboard
        self.data_layer.set_setting('keyboard.autocorrect', True)

    def test_keyboard_predictive_key(self):
        self.ui_tests = UiTests(self.marionette)
        self.ui_tests.launch()

        # go to UI/keyboard page
        keyboard_page = self.ui_tests.tap_keyboard_option()
        keyboard_page.switch_to_frame()

        # tap the field "input type=text"
        keyboard = keyboard_page.tap_text_input()

        # type first 7 letters of the expected word
        expected_word = 'keyboard'
        keyboard.send(expected_word[:7])

        # tap the first predictive word
        keyboard.tap_first_predictive_word()
        self.apps.switch_to_displayed_app()
        keyboard_page.switch_to_frame()

        # check if the word in the input field is the same as the expected word
        typed_word = keyboard_page.text_input
        self.assertEqual(typed_word, expected_word)

        ## TEST 2, tap second suggestion, then press space
        keyboard.send(' ')
        keyboard_page.switch_to_frame()

        # type some misspelled word
        keyboard.send('Tes')
        keyboard_page.switch_to_frame()
        self.assertEqual(keyboard_page.text_input, 'keyboard Tes')

        # tap second predictive word (tea)
        keyboard.tap_suggestion('Tea')
        self.apps.switch_to_displayed_app()

        # Send space
        keyboard.send(' ')
        keyboard_page.switch_to_frame()

        # Output should be 'Tea '
        self.assertEqual(keyboard_page.text_input, 'keyboard Tea ')

        ## TEST 3 - type something with autocorrect and press space
        keyboard.send('ye ')
        keyboard_page.switch_to_frame()
        self.assertEqual(keyboard_page.text_input, 'keyboard Tea he ')

        # TEST 4 - autocorrect, dot and backspace
        keyboard.send('wot.')
        keyboard_page.switch_to_frame()
        self.assertEqual(keyboard_page.text_input, 'keyboard Tea he wit.')

        keyboard.tap_backspace()
        keyboard_page.switch_to_frame()
        self.assertEqual(keyboard_page.text_input, 'keyboard Tea he wot')
Beispiel #21
0
class TestKeyboardPredictiveKey(GaiaTestCase):
    def setUp(self):
        GaiaTestCase.setUp(self)
        # enable auto-correction of keyboard
        self.data_layer.set_setting('keyboard.autocorrect', True)

    def test_keyboard_predictive_key(self):
        # Check that the device is in portrait mode as the autocorrect words returned depend on the screen orientation
        # Bug 1008932 - On desktopb2g, mozOrientation reports landscape when Gaia is oriented in portrait
        if self.device.is_desktop_b2g:
            self.assertNotEqual('portrait-primary',
                                self.device.screen_orientation)
        else:
            self.assertEqual('portrait-primary',
                             self.device.screen_orientation)

        self.ui_tests = UiTests(self.marionette)
        self.ui_tests.launch()

        # go to UI/keyboard page
        keyboard_page = self.ui_tests.tap_keyboard_option()
        keyboard_page.switch_to_frame()

        # tap the field "input type=text"
        keyboard = keyboard_page.tap_text_input()

        # type first 7 letters of the expected word
        expected_word = 'keyboard'
        keyboard.send(expected_word[:7])

        # tap the first predictive word
        keyboard.tap_first_predictive_word()
        self.apps.switch_to_displayed_app()
        keyboard_page.switch_to_frame()

        # check if the word in the input field is the same as the expected word
        typed_word = keyboard_page.text_input
        Wait(self.marionette).until(lambda m: typed_word == expected_word)

        ## TEST 2, tap second suggestion, then press space
        keyboard.send(' ')
        keyboard_page.switch_to_frame()

        # type some misspelled word
        keyboard.send('Tes')
        keyboard_page.switch_to_frame()
        Wait(self.marionette).until(
            lambda m: keyboard_page.text_input == 'keyboard Tes')

        # tap second predictive word (tea)
        keyboard.tap_suggestion('Tea')
        self.apps.switch_to_displayed_app()

        # Send space
        keyboard.send(' ')
        keyboard_page.switch_to_frame()

        # Output should be 'Tea '
        Wait(self.marionette).until(
            lambda m: keyboard_page.text_input == 'keyboard Tea ')

        ## TEST 3 - type something with autocorrect and press space
        keyboard.send('ye ')
        keyboard_page.switch_to_frame()
        Wait(self.marionette).until(
            lambda m: keyboard_page.text_input == 'keyboard Tea he ')

        # TEST 4 - autocorrect, dot and backspace
        keyboard.send('wot.')
        keyboard_page.switch_to_frame()
        Wait(self.marionette).until(
            lambda m: keyboard_page.text_input == 'keyboard Tea he wit.')

        keyboard.tap_backspace()
        keyboard_page.switch_to_frame()
        Wait(self.marionette).until(
            lambda m: keyboard_page.text_input == 'keyboard Tea he wot')
class TestKeyboardPredictiveKey(GaiaTestCase):

    def setUp(self):
        GaiaTestCase.setUp(self)
        # enable auto-correction of keyboard
        self.data_layer.set_setting('keyboard.autocorrect', True)

    def test_keyboard_predictive_key(self):
        # Check that the device is in portrait mode as the autocorrect words returned depend on the screen orientation
        # Bug 1008932 - On desktopb2g, mozOrientation reports landscape when Gaia is oriented in portrait
        if self.device.is_desktop_b2g:
          self.assertNotEqual('portrait-primary', self.device.screen_orientation)
        else:
          self.assertEqual('portrait-primary', self.device.screen_orientation)

        self.ui_tests = UiTests(self.marionette)
        self.ui_tests.launch()

        # go to UI/keyboard page
        keyboard_page = self.ui_tests.tap_keyboard_option()
        keyboard_page.switch_to_frame()

        # tap the field "input type=text"
        keyboard = keyboard_page.tap_text_input()

        # type first 7 letters of the expected word
        expected_word = 'keyboard'
        keyboard.send(expected_word[:7])

        # tap the first predictive word
        keyboard.tap_first_predictive_word()
        self.apps.switch_to_displayed_app()
        keyboard_page.switch_to_frame()

        # check if the word in the input field is the same as the expected word
        typed_word = keyboard_page.text_input
        Wait(self.marionette).until(lambda m: typed_word == expected_word)

        ## TEST 2, tap second suggestion, then press space
        keyboard.send(' ')
        keyboard_page.switch_to_frame()

        # type some misspelled word
        keyboard.send('Tes')
        keyboard_page.switch_to_frame()
        Wait(self.marionette).until(lambda m: keyboard_page.text_input == 'keyboard Tes')

        # tap second predictive word (tea)
        keyboard.tap_suggestion('Tea')
        self.apps.switch_to_displayed_app()

        # Send space
        keyboard.send(' ')
        keyboard_page.switch_to_frame()

        # Output should be 'Tea '
        Wait(self.marionette).until(lambda m: keyboard_page.text_input == 'keyboard Tea ')


        ## TEST 3 - type something with autocorrect and press space
        keyboard.send('ye ')
        keyboard_page.switch_to_frame()
        Wait(self.marionette).until(lambda m: keyboard_page.text_input == 'keyboard Tea he ')

        # TEST 4 - autocorrect, dot and backspace
        keyboard.send('wot.')
        keyboard_page.switch_to_frame()
        Wait(self.marionette).until(lambda m: keyboard_page.text_input == 'keyboard Tea he wit.')

        keyboard.tap_backspace()
        keyboard_page.switch_to_frame()
        Wait(self.marionette).until(lambda m: keyboard_page.text_input == 'keyboard Tea he wot')
class TestKeyboardPredictiveKey(GaiaTestCase):

    def setUp(self):
        GaiaTestCase.setUp(self)
        # enable auto-correction of keyboard
        self.data_layer.set_setting('keyboard.autocorrect', True)

    def test_keyboard_predictive_key(self):
        self.ui_tests = UiTests(self.marionette)
        self.ui_tests.launch()

        # go to UI/keyboard page
        keyboard_page = self.ui_tests.tap_keyboard_option()
        keyboard_page.switch_to_frame()

        # tap the field "input type=text"
        keyboard = keyboard_page.tap_text_input()

        # type first 7 letters of the expected word
        expected_word = 'keyboard'
        keyboard.send(expected_word[:7])

        # tap the first predictive word
        keyboard.tap_first_predictive_word()
        self.apps.switch_to_displayed_app()
        keyboard_page.switch_to_frame()

        # check if the word in the input field is the same as the expected word
        typed_word = keyboard_page.text_input
        self.assertEqual(typed_word, expected_word)

        ## TEST 2, tap second suggestion, then press space
        keyboard.send(' ')
        keyboard_page.switch_to_frame()

        # type some misspelled word
        keyboard.send('Tes')
        keyboard_page.switch_to_frame()
        self.assertEqual(keyboard_page.text_input, 'keyboard Tes')

        # tap second predictive word (tea)
        keyboard.tap_suggestion('Tea')
        self.apps.switch_to_displayed_app()

        # Send space
        keyboard.send(' ')
        keyboard_page.switch_to_frame()

        # Output should be 'Tea '
        self.assertEqual(keyboard_page.text_input, 'keyboard Tea ')

        ## TEST 3 - type something with autocorrect and press space
        keyboard.send('ye ')
        keyboard_page.switch_to_frame()
        self.assertEqual(keyboard_page.text_input, 'keyboard Tea he ')

        # TEST 4 - autocorrect, dot and backspace
        keyboard.send('wot.')
        keyboard_page.switch_to_frame()
        self.assertEqual(keyboard_page.text_input, 'keyboard Tea he wit.')

        keyboard.tap_backspace()
        keyboard_page.switch_to_frame()
        self.assertEqual(keyboard_page.text_input, 'keyboard Tea he wot')