Merge branch 'qa-improve-main-login-page' into 'master'
Make Page::Main::Login#sign_in_using_credentials gracefully bail out when user is already logged-in See merge request gitlab-org/gitlab-ce!19964
This commit is contained in:
commit
d229e7d3f5
2 changed files with 40 additions and 34 deletions
|
@ -26,54 +26,59 @@ module QA
|
||||||
end
|
end
|
||||||
|
|
||||||
def initialize
|
def initialize
|
||||||
|
# The login page is usually the entry point for all the scenarios so
|
||||||
|
# we need to wait for the instance to start. That said, in some cases
|
||||||
|
# we are already logged-in so we check both cases here.
|
||||||
wait(max: 500) do
|
wait(max: 500) do
|
||||||
page.has_css?('.application')
|
page.has_css?('.login-page') ||
|
||||||
end
|
Page::Menu::Main.act { has_personal_area? }
|
||||||
end
|
|
||||||
|
|
||||||
def set_initial_password_if_present
|
|
||||||
if page.has_content?('Change your password')
|
|
||||||
fill_in :user_password, with: Runtime::User.password
|
|
||||||
fill_in :user_password_confirmation, with: Runtime::User.password
|
|
||||||
click_button 'Change your password'
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def sign_in_using_credentials
|
def sign_in_using_credentials
|
||||||
if Runtime::User.ldap_user?
|
# Don't try to log-in if we're already logged-in
|
||||||
sign_in_using_ldap_credentials
|
return if Page::Menu::Main.act { has_personal_area? }
|
||||||
else
|
|
||||||
sign_in_using_gitlab_credentials
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def sign_in_using_ldap_credentials
|
|
||||||
using_wait_time 0 do
|
using_wait_time 0 do
|
||||||
set_initial_password_if_present
|
set_initial_password_if_present
|
||||||
|
|
||||||
click_link 'LDAP'
|
if Runtime::User.ldap_user?
|
||||||
|
sign_in_using_ldap_credentials
|
||||||
fill_in :username, with: Runtime::User.ldap_username
|
else
|
||||||
fill_in :password, with: Runtime::User.ldap_password
|
sign_in_using_gitlab_credentials
|
||||||
click_button 'Sign in'
|
end
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def sign_in_using_gitlab_credentials
|
|
||||||
using_wait_time 0 do
|
|
||||||
set_initial_password_if_present
|
|
||||||
|
|
||||||
click_link 'Standard' if page.has_content?('LDAP')
|
|
||||||
|
|
||||||
fill_in :user_login, with: Runtime::User.name
|
|
||||||
fill_in :user_password, with: Runtime::User.password
|
|
||||||
click_button 'Sign in'
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.path
|
def self.path
|
||||||
'/users/sign_in'
|
'/users/sign_in'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def sign_in_using_ldap_credentials
|
||||||
|
click_link 'LDAP'
|
||||||
|
|
||||||
|
fill_in :username, with: Runtime::User.ldap_username
|
||||||
|
fill_in :password, with: Runtime::User.ldap_password
|
||||||
|
click_button 'Sign in'
|
||||||
|
end
|
||||||
|
|
||||||
|
def sign_in_using_gitlab_credentials
|
||||||
|
click_link 'Standard' if page.has_content?('LDAP')
|
||||||
|
|
||||||
|
fill_in :user_login, with: Runtime::User.name
|
||||||
|
fill_in :user_password, with: Runtime::User.password
|
||||||
|
click_button 'Sign in'
|
||||||
|
end
|
||||||
|
|
||||||
|
def set_initial_password_if_present
|
||||||
|
return unless page.has_content?('Change your password')
|
||||||
|
|
||||||
|
fill_in :user_password, with: Runtime::User.password
|
||||||
|
fill_in :user_password_confirmation, with: Runtime::User.password
|
||||||
|
click_button 'Change your password'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -55,7 +55,8 @@ module QA
|
||||||
end
|
end
|
||||||
|
|
||||||
def has_personal_area?
|
def has_personal_area?
|
||||||
page.has_selector?('.qa-user-avatar')
|
# No need to wait, either we're logged-in, or not.
|
||||||
|
using_wait_time(0) { page.has_selector?('.qa-user-avatar') }
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
Loading…
Reference in a new issue