def test_Registration(self):
      
       browser=self.driver
       registration_page = RegistrationPage(driver=browser)
       
       registration_page.go()
       registration_page.firstName_input.input_text(self.data['firstName'])
       registration_page.lastName_input.input_text(self.data['lastName'])
       registration_page.phone_input.input_text(self.data['phone'])
       registration_page.email_input.input_text(self.data['email'])
       registration_page.address1_input.input_text(self.data['address1'])
       registration_page.address2_input.input_text(self.data['address2'])
       registration_page.city_input.input_text(self.data['city'])
       registration_page.state_input.input_text(self.data['state'])
       registration_page.postalCode_input.input_text(self.data['postalCode'])
       registration_page.country_selection.select(self.data['country'])
       registration_page.userName_input.input_text(self.data['email'])
       registration_page.password_input.input_text(self.data['password'])
       registration_page.confirmPassword_input.input_text(self.data['password'])
       registration_page.submit_button.click()
      
       current_url = urlparse(browser.current_url)
       result = '{uri.scheme}://{uri.netloc}{uri.path}'.format(uri=current_url)
       
       assert result == 'http://newtours.demoaut.com/create_account_success.php', "Unexpected URL"

       sign_in_page = SignInPage(driver=browser)
       sign_in_page.go()
       sign_in_page.userName_input.input_text(self.data['email'])
       sign_in_page.password_input.input_text(self.data['password'])
       sign_in_page.submit_button.click()

       current_url = urlparse(browser.current_url)
       result = '{uri.scheme}://{uri.netloc}{uri.path}'.format(uri=current_url)
       
       assert result == 'http://newtours.demoaut.com/mercuryreservation.php', "Unexpected URL"
Ejemplo n.º 2
0
class FirstRegistrationPageTests(unittest.TestCase):

    delete_confirmation_email = False

    def setUp(self):
        if Mail.email_address is None:
            Mail.generate_email_address()

        self.browser = webdriver.Chrome()
        self.registration_page = RegistrationPage(driver=self.browser)
        self.registration_page.go()

    def test_first_registration_page_submission(self):

        self.delete_confirmation_email = True

        self.registration_page.email_input.input_text(Mail.email_address)
        self.assertEqual(self.registration_page.email_input.attribute('value'),
                         Mail.email_address,
                         'Email field was not populated with test data.')

        self.registration_page.password_input.input_text(TestData.password)
        self.assertEqual(
            self.registration_page.password_input.attribute('value'),
            TestData.password,
            'Password field was not populated with test data.')

        self.registration_page.terms_checkbox.click()
        self.registration_page.sign_up_btn.click()

        self.assertTrue(Mail.get_registration_pin())
        self.assertTrue(self.registration_page.pin_input.find(),
                        'Second page of registration form is not opened,')

    def test_email_validation_ignore_side_spaces(self):

        self.delete_confirmation_email = True

        self.registration_page.email_input.input_text(
            f'  {Mail.email_address}   ')
        self.assertFalse(self.registration_page.email_error.find())

        self.registration_page.password_input.input_text(TestData.password)
        self.registration_page.terms_checkbox.click()
        self.registration_page.sign_up_btn.click()

        self.assertTrue(Mail.get_registration_pin())
        self.assertTrue(self.registration_page.pin_input.find(),
                        'Second page of registration form is not opened,')

    def test_email_validation_empty_field(self):

        self.delete_confirmation_email = False

        self.registration_page.email_input.click()
        self.registration_page.password_input.click()

        self.assertTrue(self.registration_page.email_error.find())
        self.assertEqual(self.registration_page.email_error.text(),
                         'Email is required')

    def test_email_validation_missing_at(self):

        self.delete_confirmation_email = False

        self.registration_page.email_input.input_text('testemailyopmail.com')
        self.registration_page.password_input.click()

        self.assertTrue(self.registration_page.email_error.find())
        self.assertEqual(self.registration_page.email_error.text(),
                         'Please enter a valid email')

    def test_password_validation_empty_field(self):

        self.delete_confirmation_email = False

        self.registration_page.email_input.input_text(Mail.email_address)
        self.registration_page.password_input.click()
        self.registration_page.email_input.click()

        self.assertTrue(self.registration_page.password_error.find())
        self.assertEqual(self.registration_page.password_error.text(),
                         'Password is required')

    def test_promocode_field_appearance(self):

        self.delete_confirmation_email = False

        self.registration_page.promocode_question.click()
        self.assertTrue(self.registration_page.promocode_input.find())

        self.registration_page.close_promocode_icon.click()
        self.assertFalse(self.registration_page.promocode_input.find())

    def test_redirect_to_login_page(self):

        self.delete_confirmation_email = False

        self.registration_page.login_link.click()
        self.assertEqual(self.browser.current_url,
                         'https://www.optibet.lv/en/login')

    def tearDown(self):
        if self.delete_confirmation_email:
            Mail.delete_confirmation_message()
        self.browser.quit()
Ejemplo n.º 3
0
class SecondRegistrationPageTests(unittest.TestCase):
    def setUp(self):
        if Mail.email_address is None:
            Mail.generate_email_address()

        self.browser = webdriver.Chrome()
        self.registration_page = RegistrationPage(driver=self.browser)
        self.registration_page.go()
        self.registration_page.go_to_second_registration_page(
            Mail.email_address, TestData.password)
        Mail.get_registration_pin()

    def test_age_less_18_not_acceptable(self):

        # I created this test assuming people under 18 should not be able to complete registration.
        # They should not even be able to select their birth date.
        # However, birth dates for people who have 18th birthday later this year are available in the form.
        # Looks like a bug to me.
        # Not sure what would be the best way to handle such cases (display error, don't have such dates available etc.)
        # In this test I'm expecting an error under the selected date.

        date = TestData.get_invalid_birth_date()
        self.registration_page.select_birth_date(date)
        self.registration_page.id_input.click()

        self.assertTrue(
            self.registration_page.second_page_validation_error.find())

    def test_birth_date_pid_correlation(self):

        self.registration_page.fill_second_registration_page(
            pin=Mail.registration_pin,
            phone=TestData.phone,
            first_name=TestData.first_name,
            last_name=TestData.last_name,
            birth_date=TestData.birth_date,
            pid=TestData.pid_not_matching_birth_date,
        )

        self.registration_page.save_btn.click()

        self.assertTrue(
            self.registration_page.second_page_validation_error.find())
        self.assertEqual(
            self.registration_page.second_page_validation_error.text(),
            'Date of birth does not match with personal ID')

    def test_changing_email(self):

        self.registration_page.change_email_link.click()

        self.assertTrue(self.registration_page.email_input.find())

    def test_second_registration_page_successful_submission(self):

        self.registration_page.fill_second_registration_page(
            pin=Mail.registration_pin,
            phone=TestData.phone,
            first_name=TestData.first_name,
            last_name=TestData.last_name,
            birth_date=TestData.birth_date,
            pid=TestData.pid_matching_birth_date,
        )

        self.registration_page.save_btn.click()
        self.assertEqual(
            self.browser.current_url,
            'https://www.optibet.lv/en/account/profile?dialogType=set-limit')

    def tearDown(self):
        Mail.delete_confirmation_message()
        self.browser.quit()