from behave import given, when, then

from common import (
    click_button,
    fill_by_css_selector,
    find_element_by_css_selector
)


@when(u'I login')
def login_user(context):
    login_page(context)
    enter_credentials(context)
    click_button(context, 'Log In')


def login_page(context):
    context.browser.get(context.login_url)
    context.browser.refresh()


def enter_credentials(context):
    fill_by_css_selector(context, 'textarea[id="loginUsername"]',
                         context.username)
    fill_by_css_selector(context, 'input[id="loginPassword"]',
                         context.password)


@then(u'I should see the user panel')
def see_home_screen(context):
    find_element_by_css_selector(context, '.main-panel')


@then(u'I logout')
@when(u'I logout')
def click_logout(context):
    # TODO: Have identifiers for the "second" login screen
    click_button(context, 'Log Out')


@then(u'I should see the second login page')
def see_second_login_page(context):
    # TODO: Have unique identifiers for the second login page
    #       (that differentiates from user panel)
    find_element_by_css_selector(context, '#loginUsername')