summaryrefslogtreecommitdiff
path: root/tests/functional/features/steps/login.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional/features/steps/login.py')
-rw-r--r--tests/functional/features/steps/login.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/functional/features/steps/login.py b/tests/functional/features/steps/login.py
new file mode 100644
index 00000000..4a5981a1
--- /dev/null
+++ b/tests/functional/features/steps/login.py
@@ -0,0 +1,45 @@
+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')