def test_register_smoke(self, set_capabilities, setup_logging): """ Verify that tapping "Create your account" button after filling all required input(valid) types, will validate all inputs and load "Whats new feature screen" with specific user logged in Verify that user should be able to log out and re-login with new created account credentials """ android_register_page = AndroidRegister(set_capabilities, setup_logging) global_contents = Globals(setup_logging) user_name = global_contents.generate_random_credentials(5) email = user_name + '@example.com' first_name = global_contents.generate_random_credentials(4) last_name = global_contents.generate_random_credentials(4) name = first_name + ' ' + last_name full_name = name password = global_contents.generate_random_credentials(8) setup_logging.info( 'Email - {}, Username - {}, Full Name - {}, Password -{}'.format( email, user_name, full_name, password)) android_register_page.back_and_forth_register() register_output = android_register_page.register( email, full_name, user_name, password, global_contents.country) global_contents.wait_for_android_activity_to_load( set_capabilities, global_contents.REGISTER_ACTIVITY_NAME) # assert register_output == Globals.WHATS_NEW_ACTIVITY_NAME android_whats_new_page = AndroidWhatsNew(set_capabilities, setup_logging) android_whats_new_page.navigate_features() assert android_whats_new_page.navigate_features( ).text == strings.WHATS_NEW_DONE assert android_whats_new_page.exit_features( ) == Globals.MAIN_DASHBOARD_ACTIVITY_NAME android_main_dashboard_page = AndroidMainDashboard( set_capabilities, setup_logging) assert android_main_dashboard_page.get_logout_account_option( ).text == strings.ACCOUNT_LOGOUT assert android_main_dashboard_page.log_out( ) == Globals.DISCOVERY_LAUNCH_ACTIVITY_NAME android_new_landing_page = AndroidNewLanding(set_capabilities, setup_logging) assert android_new_landing_page.load_login_screen( ) == Globals.LOGIN_ACTIVITY_NAME android_login_page = AndroidLogin(set_capabilities, setup_logging) login_output = android_login_page.login(user_name, password, False) assert login_output == Globals.MAIN_DASHBOARD_ACTIVITY_NAME setup_logging.info('{} is successfully logged in'.format(user_name)) setup_logging.info('-- Ending {} Test Case'.format( TestAndroidRegister.__name__))
def test_start_register_smoke(self, set_capabilities, setup_logging): """ Scenario: Verify Register screen is loaded successfully """ setup_logging.info('-- Starting {} Test Case'.format(TestAndroidRegister.__name__)) android_new_landing_page = AndroidNewLanding(set_capabilities, setup_logging) android_register_page = AndroidRegister(set_capabilities, setup_logging) android_new_landing_page.load_register_screen() assert android_register_page.on_screen() == Globals.REGISTER_ACTIVITY_NAME
def test_required_and_optional_fields_smoke(self, set_capabilities, setup_logging): """ Scenarios: Verify that following input types are required, Email editfield, Full Name editfield, Public, User Name, editfield, Password editfield, "Country or Region of Residence" spinner Verify that following input types are optional, "Gender" spinner, "Year of birth" spinner, "Highest level of education completed" spinner, "Tell us why you're interested in edX" label with edit - field below """ android_register_page = AndroidRegister(set_capabilities, setup_logging) assert android_register_page.validate_required_optional_fields() assert android_register_page.get_email_validation_textview( ).text == strings.REGISTER_EMAIL_BLANK_ERROR assert android_register_page.get_full_name_validation_textview( ).text == strings.REGISTER_FULL_NAME_BLANK_ERROR assert android_register_page.get_username_validation_textview( ).text == strings.REGISTER_USER_NAME_BLANK_ERROR assert android_register_page.get_password_validation_textview( ).text == strings.REGISTER_PASSWORD_BLANK_ERROR assert android_register_page.get_country_validation_textview( ).text == strings.REGISTER_COUNTRY_BLANK_ERROR
def test_show_hide_optional_fields_smoke(self, set_capabilities, setup_logging): """ Scenarios: Verify that tapping "Show optional fields" will turn to "Hide optional fields" and load following optional contents below, "Gender" spinner, "Year of birth" spinner, "Highest level of education completed" spinner, "Tell us why you're interested in edX" label with edit-field below, Verify that tapping "Hide optional fields" will turn to "Show optional fields" and all optional contents will be hidden Verify all optional contents/elements have default values """ android_register_page = AndroidRegister(set_capabilities, setup_logging) assert android_register_page.show_hide_optional_fields( ).text == strings.REGISTER_HIDE_OPTIONAL_FIELDS_OPTION assert android_register_page.get_gender_spinner( ).text == strings.BLANK_FIELD assert android_register_page.get_year_of_birth_spinner( ).text == strings.BLANK_FIELD assert android_register_page.get_eduction_spinner( ).text == strings.BLANK_FIELD assert android_register_page.get_why_interested_editfield() assert android_register_page.show_hide_optional_fields( ).text == strings.REGISTER_SHOW_OPTIONAL_FIELDS_OPTION
def test_back_and_forth_smoke(self, set_capabilities, setup_logging): """ Scenarios: Verify tapping "Back" icon will load New Logistration/New Landing screen back to 'New Logistration' screen. Verify tapping "edX Terms of Service and Honor Code" loads "End User License Agreement" screen Verify tapping back icon from "End User License Agreement" screen navigate user back to 'Register' screen. Verify that user is able to load EULA screen and get back to Register Screen Verify that user is able to load Terms screen and get back to Register Screen Verify that user is able to load Privacy screen and get back to Register Screen """ android_register_page = AndroidRegister(set_capabilities, setup_logging) assert android_register_page.back_and_forth_register()
def test_ui_elements_smoke(self, set_capabilities, setup_logging): """ Scenarios: Verify following contents are visible on screen, "Register with" label, "Facebook" button "Google" button, "or register with email" label, Email edit-field, "This is what you will use to login" label below, Full Name edit-field, "The name will be used on any certificates that you earn" label below, Public User Name edit-field, "The name that will identify you in your courses. It cannot be changed later." label below, Password edit-field, "Your password must contain at least 8 characters, including 1 letter & 1 number.", "Country or Region of Residence" spinner, "The country or region where you live." label below, "Show optional fields" option below, "Create my account" button, "By creating an account you agree to the "edX Terms of Service and Honor Code" option Verify all contents/elements have default value Verify that user should be able to scroll screen to see all contents """ android_register_page = AndroidRegister(set_capabilities, setup_logging) assert android_register_page.get_register_divider_textview().text == strings.REGISTER_SCREEN_REGISTER_WITH assert android_register_page.get_facebook_textview().text == strings.FACEBOOK_OPTION assert android_register_page.get_google_textview().text == strings.GOOGLE_OPTION email_divider = android_register_page.get_register_with_email_divider_textview() assert email_divider.text == strings.REGISTER_SCREEN_REGISTER_WITH android_register_page.page_scroll_down() assert android_register_page.get_email_editfield().text == strings.REGISTER_EMAIL_LABEL assert android_register_page.get_email_instructions_textview().text == strings.REGISTER_EMAIL_INSTRUCTIONS assert android_register_page.get_full_name_editfield().text == strings.REGISTER_FULL_NAME_LABEL full_name_instructions = android_register_page.get_full_name_instructions_textview() assert full_name_instructions.text == strings.REGISTER_FULL_NAME_INSTRUCTIONS assert android_register_page.get_user_name_editfield().text == strings.REGISTER_USER_NAME_LABEL user_name_instructions = android_register_page.get_user_name_instructions_textview() assert user_name_instructions.text == strings.REGISTER_USER_NAME_INSTRUCTIONS assert android_register_page.get_password_editfield().text == strings.REGISTER_PASSWORD_LABEL password_instructions = android_register_page.get_password_instructions_textview() assert password_instructions.text == strings.REGISTER_PASSWORD_INSTRUCTIONS assert android_register_page.get_country_spinner().text == strings.REGISTER_COUNTRY_DEFAULT_VALUE android_register_page.page_scroll_down() assert android_register_page.get_create_my_account_textview().text == strings.REGISTER_CREATE_MY_ACCOUNT show_optional_fields = android_register_page.get_show_optional_fields_textview() assert show_optional_fields.text == strings.REGISTER_SHOW_OPTIONAL_FIELDS_OPTION country_spinner_instructions = android_register_page.get_country_spinner_instructions_textview() assert country_spinner_instructions.text == strings.REGISTER_COUNTRY_INSTRUCTIONS assert android_register_page.get_agreement_textview().text == strings.REGISTER_AGREEMENT_ANDROID
def test_required_and_optional_fields_smoke(self, set_capabilities, setup_logging): """ Scenarios: Verify that following input types are required, Email editfield, Full Name editfield, Public, User Name, editfield, Password editfield, "Country or Region of Residence" spinner Verify that following input types are optional, "Gender" spinner, "Year of birth" spinner, "Highest level of education completed" spinner, "Tell us why you're interested in edX" label with edit - field below Verify that, if user fill all data except "Full Name" and tap on 'Create my account' button, alert pop up should appear along with the error message. Verify that, if user fill all data except "User Name" and tap on 'Create my account' button, alert pop up should appear along with the error message. Verify that, if user fill all data except "Password" and tap on 'Create my account' button, alert pop up should appear along with the error message. Verify that, if user fill all data except "Country" and tap on 'Create my account' button, alert pop up should appear along with the error message. Verify that, if user fill all data but with wrong email format and tap on 'Create my account' button, email format error message should appear. Verify that, if user fill all data but with wrong email format and tap on 'Create my account' button, email format error message should appear. Verify that, password required at least 8 characters with special character in it. """ global_contents = Globals(setup_logging) android_register_page = AndroidRegister(set_capabilities, setup_logging) assert android_register_page.validate_required_optional_fields() assert android_register_page.get_email_validation_textview( ).text == strings.REGISTER_EMAIL_BLANK_ERROR assert android_register_page.get_full_name_validation_textview( ).text == strings.REGISTER_FULL_NAME_BLANK_ERROR assert android_register_page.get_username_validation_textview( ).text == strings.REGISTER_USER_NAME_BLANK_ERROR assert android_register_page.get_password_validation_textview( ).text == strings.REGISTER_PASSWORD_BLANK_ERROR assert android_register_page.get_country_validation_textview( ).text == strings.REGISTER_COUNTRY_BLANK_ERROR user_name = global_contents.generate_random_credentials(5) email = user_name + '@example.com' first_name = global_contents.generate_random_credentials(4) last_name = global_contents.generate_random_credentials(4) name = "{} {}".format(first_name, last_name) full_name = name password = global_contents.generate_random_credentials(8) android_register_page.register(email, '', user_name, password, global_contents.country) assert android_register_page.validate_required_optional_fields( click_create_account=False) assert android_register_page.get_full_name_validation_textview( ).text == strings.REGISTER_FULL_NAME_BLANK_ERROR android_register_page.register(email, full_name, '', password, global_contents.country) assert android_register_page.validate_required_optional_fields( click_create_account=False) android_register_page.register(email, full_name, user_name, '', global_contents.country) assert android_register_page.validate_required_optional_fields( click_create_account=False) android_register_page.register(email, full_name, user_name, password, '') assert android_register_page.validate_required_optional_fields( click_create_account=False) android_register_page.register(email, full_name, user_name, 'xxxxxxxx', global_contents.country) assert android_register_page.validate_required_optional_fields( click_create_account=False) android_register_page.register('xxxx@xxxxx', full_name, user_name, password, global_contents.country) assert android_register_page.validate_required_optional_fields( click_create_account=False) assert android_register_page.get_email_format_validation_textview().text \ == strings.LOGIN_WRONG_CREDENTIALS_ALERT_MSG