mirror of
https://github.com/mastodon/mastodon.git
synced 2024-11-25 07:05:20 +00:00
Extract shared behavior methods in oauth feature spec (#28360)
This commit is contained in:
parent
14aa7f1e15
commit
974c7672e5
|
@ -61,15 +61,11 @@ describe 'Using OAuth from an external app' do
|
||||||
expect(page).to have_content(I18n.t('auth.login'))
|
expect(page).to have_content(I18n.t('auth.login'))
|
||||||
|
|
||||||
# Failing to log-in presents the form again
|
# Failing to log-in presents the form again
|
||||||
fill_in 'user_email', with: email
|
fill_in_auth_details(email, 'wrong password')
|
||||||
fill_in 'user_password', with: 'wrong password'
|
|
||||||
click_on I18n.t('auth.login')
|
|
||||||
expect(page).to have_content(I18n.t('auth.login'))
|
expect(page).to have_content(I18n.t('auth.login'))
|
||||||
|
|
||||||
# Logging in redirects to an authorization page
|
# Logging in redirects to an authorization page
|
||||||
fill_in 'user_email', with: email
|
fill_in_auth_details(email, password)
|
||||||
fill_in 'user_password', with: password
|
|
||||||
click_on I18n.t('auth.login')
|
|
||||||
expect(page).to have_content(I18n.t('doorkeeper.authorizations.buttons.authorize'))
|
expect(page).to have_content(I18n.t('doorkeeper.authorizations.buttons.authorize'))
|
||||||
|
|
||||||
# Upon authorizing, it redirects to the apps' callback URL
|
# Upon authorizing, it redirects to the apps' callback URL
|
||||||
|
@ -88,15 +84,11 @@ describe 'Using OAuth from an external app' do
|
||||||
expect(page).to have_content(I18n.t('auth.login'))
|
expect(page).to have_content(I18n.t('auth.login'))
|
||||||
|
|
||||||
# Failing to log-in presents the form again
|
# Failing to log-in presents the form again
|
||||||
fill_in 'user_email', with: email
|
fill_in_auth_details(email, 'wrong password')
|
||||||
fill_in 'user_password', with: 'wrong password'
|
|
||||||
click_on I18n.t('auth.login')
|
|
||||||
expect(page).to have_content(I18n.t('auth.login'))
|
expect(page).to have_content(I18n.t('auth.login'))
|
||||||
|
|
||||||
# Logging in redirects to an authorization page
|
# Logging in redirects to an authorization page
|
||||||
fill_in 'user_email', with: email
|
fill_in_auth_details(email, password)
|
||||||
fill_in 'user_password', with: password
|
|
||||||
click_on I18n.t('auth.login')
|
|
||||||
expect(page).to have_content(I18n.t('doorkeeper.authorizations.buttons.authorize'))
|
expect(page).to have_content(I18n.t('doorkeeper.authorizations.buttons.authorize'))
|
||||||
|
|
||||||
# Upon denying, it redirects to the apps' callback URL
|
# Upon denying, it redirects to the apps' callback URL
|
||||||
|
@ -118,25 +110,19 @@ describe 'Using OAuth from an external app' do
|
||||||
expect(page).to have_content(I18n.t('auth.login'))
|
expect(page).to have_content(I18n.t('auth.login'))
|
||||||
|
|
||||||
# Failing to log-in presents the form again
|
# Failing to log-in presents the form again
|
||||||
fill_in 'user_email', with: email
|
fill_in_auth_details(email, 'wrong password')
|
||||||
fill_in 'user_password', with: 'wrong password'
|
|
||||||
click_on I18n.t('auth.login')
|
|
||||||
expect(page).to have_content(I18n.t('auth.login'))
|
expect(page).to have_content(I18n.t('auth.login'))
|
||||||
|
|
||||||
# Logging in redirects to a two-factor authentication page
|
# Logging in redirects to a two-factor authentication page
|
||||||
fill_in 'user_email', with: email
|
fill_in_auth_details(email, password)
|
||||||
fill_in 'user_password', with: password
|
|
||||||
click_on I18n.t('auth.login')
|
|
||||||
expect(page).to have_content(I18n.t('simple_form.hints.sessions.otp'))
|
expect(page).to have_content(I18n.t('simple_form.hints.sessions.otp'))
|
||||||
|
|
||||||
# Filling in an incorrect two-factor authentication code presents the form again
|
# Filling in an incorrect two-factor authentication code presents the form again
|
||||||
fill_in 'user_otp_attempt', with: 'wrong'
|
fill_in_otp_details('wrong')
|
||||||
click_on I18n.t('auth.login')
|
|
||||||
expect(page).to have_content(I18n.t('simple_form.hints.sessions.otp'))
|
expect(page).to have_content(I18n.t('simple_form.hints.sessions.otp'))
|
||||||
|
|
||||||
# Filling in the correct TOTP code redirects to an app authorization page
|
# Filling in the correct TOTP code redirects to an app authorization page
|
||||||
fill_in 'user_otp_attempt', with: user.current_otp
|
fill_in_otp_details(user.current_otp)
|
||||||
click_on I18n.t('auth.login')
|
|
||||||
expect(page).to have_content(I18n.t('doorkeeper.authorizations.buttons.authorize'))
|
expect(page).to have_content(I18n.t('doorkeeper.authorizations.buttons.authorize'))
|
||||||
|
|
||||||
# Upon authorizing, it redirects to the apps' callback URL
|
# Upon authorizing, it redirects to the apps' callback URL
|
||||||
|
@ -155,25 +141,19 @@ describe 'Using OAuth from an external app' do
|
||||||
expect(page).to have_content(I18n.t('auth.login'))
|
expect(page).to have_content(I18n.t('auth.login'))
|
||||||
|
|
||||||
# Failing to log-in presents the form again
|
# Failing to log-in presents the form again
|
||||||
fill_in 'user_email', with: email
|
fill_in_auth_details(email, 'wrong password')
|
||||||
fill_in 'user_password', with: 'wrong password'
|
|
||||||
click_on I18n.t('auth.login')
|
|
||||||
expect(page).to have_content(I18n.t('auth.login'))
|
expect(page).to have_content(I18n.t('auth.login'))
|
||||||
|
|
||||||
# Logging in redirects to a two-factor authentication page
|
# Logging in redirects to a two-factor authentication page
|
||||||
fill_in 'user_email', with: email
|
fill_in_auth_details(email, password)
|
||||||
fill_in 'user_password', with: password
|
|
||||||
click_on I18n.t('auth.login')
|
|
||||||
expect(page).to have_content(I18n.t('simple_form.hints.sessions.otp'))
|
expect(page).to have_content(I18n.t('simple_form.hints.sessions.otp'))
|
||||||
|
|
||||||
# Filling in an incorrect two-factor authentication code presents the form again
|
# Filling in an incorrect two-factor authentication code presents the form again
|
||||||
fill_in 'user_otp_attempt', with: 'wrong'
|
fill_in_otp_details('wrong')
|
||||||
click_on I18n.t('auth.login')
|
|
||||||
expect(page).to have_content(I18n.t('simple_form.hints.sessions.otp'))
|
expect(page).to have_content(I18n.t('simple_form.hints.sessions.otp'))
|
||||||
|
|
||||||
# Filling in the correct TOTP code redirects to an app authorization page
|
# Filling in the correct TOTP code redirects to an app authorization page
|
||||||
fill_in 'user_otp_attempt', with: user.current_otp
|
fill_in_otp_details(user.current_otp)
|
||||||
click_on I18n.t('auth.login')
|
|
||||||
expect(page).to have_content(I18n.t('doorkeeper.authorizations.buttons.authorize'))
|
expect(page).to have_content(I18n.t('doorkeeper.authorizations.buttons.authorize'))
|
||||||
|
|
||||||
# Upon denying, it redirects to the apps' callback URL
|
# Upon denying, it redirects to the apps' callback URL
|
||||||
|
@ -185,6 +165,19 @@ describe 'Using OAuth from an external app' do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def fill_in_auth_details(email, password)
|
||||||
|
fill_in 'user_email', with: email
|
||||||
|
fill_in 'user_password', with: password
|
||||||
|
click_on I18n.t('auth.login')
|
||||||
|
end
|
||||||
|
|
||||||
|
def fill_in_otp_details(value)
|
||||||
|
fill_in 'user_otp_attempt', with: value
|
||||||
|
click_on I18n.t('auth.login')
|
||||||
|
end
|
||||||
|
|
||||||
# TODO: external auth
|
# TODO: external auth
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue