from .base_page import BasePage
from .locators import LoginPageLocators


class LoginPage(BasePage):
    def should_be_login_page(self):
        self.should_be_login_url()
        self.should_be_login_form()
        self.should_be_register_form()

    def should_be_login_url(self):
        assert 'login' in self.url,  \
            f"URL:{self.url} doesn`t contain the word 'login'"

    def should_be_login_form(self):
        assert self.is_element_present(
            *LoginPageLocators.LOGIN_FORM
        ),  "Login form is not presented"

    def should_be_register_form(self):
        assert self.is_element_present(
            *LoginPageLocators.REGISTER_FORM
        ),  "Register form is not presented"

    def register_new_user(self, email, password):
        email_field = self.browser.find_element(
            *LoginPageLocators.EMAIL_FIELD
        )
        password_field = self.browser.find_element(
            *LoginPageLocators.PASSWORD_FIELD
        )
        repeat_password_field = self.browser.find_element(
            *LoginPageLocators.REPEAT_PASSWORD_FIELD
        )
        register_button = self.browser.find_element(
            *LoginPageLocators.REGISTER_BUTTON
        )
        email_field.send_keys(email)
        password_field.send_keys(password)
        repeat_password_field.send_keys(password)
        register_button.click()
