diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-04-20 13:00:54 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-04-20 13:00:54 +0300 |
commit | 3cccd102ba543e02725d247893729e5c73b38295 (patch) | |
tree | f36a04ec38517f5deaaacb5acc7d949688d1e187 /spec/controllers/profiles | |
parent | 205943281328046ef7b4528031b90fbda70c75ac (diff) |
Add latest changes from gitlab-org/gitlab@14-10-stable-eev14.10.0-rc42
Diffstat (limited to 'spec/controllers/profiles')
4 files changed, 65 insertions, 6 deletions
diff --git a/spec/controllers/profiles/accounts_controller_spec.rb b/spec/controllers/profiles/accounts_controller_spec.rb index 011528016ce..1b4b67eeaff 100644 --- a/spec/controllers/profiles/accounts_controller_spec.rb +++ b/spec/controllers/profiles/accounts_controller_spec.rb @@ -31,7 +31,7 @@ RSpec.describe Profiles::AccountsController do end end - [:twitter, :facebook, :google_oauth2, :gitlab, :github, :bitbucket, :crowd, :auth0, :authentiq, :dingtalk].each do |provider| + [:twitter, :facebook, :google_oauth2, :gitlab, :github, :bitbucket, :crowd, :auth0, :authentiq, :dingtalk, :alicloud].each do |provider| describe "#{provider} provider" do let(:user) { create(:omniauth_user, provider: provider.to_s) } diff --git a/spec/controllers/profiles/keys_controller_spec.rb b/spec/controllers/profiles/keys_controller_spec.rb index 66f6135df1e..63818337722 100644 --- a/spec/controllers/profiles/keys_controller_spec.rb +++ b/spec/controllers/profiles/keys_controller_spec.rb @@ -17,7 +17,25 @@ RSpec.describe Profiles::KeysController do post :create, params: { key: build(:key, expires_at: expires_at).attributes } end.to change { Key.count }.by(1) - expect(Key.last.expires_at).to be_like_time(expires_at) + key = Key.last + expect(key.expires_at).to be_like_time(expires_at) + expect(key.fingerprint_md5).to be_present + expect(key.fingerprint_sha256).to be_present + end + + context 'with FIPS mode', :fips_mode do + it 'creates a new key without MD5 fingerprint' do + expires_at = 3.days.from_now + + expect do + post :create, params: { key: build(:rsa_key_4096, expires_at: expires_at).attributes } + end.to change { Key.count }.by(1) + + key = Key.last + expect(key.expires_at).to be_like_time(expires_at) + expect(key.fingerprint_md5).to be_nil + expect(key.fingerprint_sha256).to be_present + end end end end diff --git a/spec/controllers/profiles/preferences_controller_spec.rb b/spec/controllers/profiles/preferences_controller_spec.rb index b7870a63f9d..7add3a72337 100644 --- a/spec/controllers/profiles/preferences_controller_spec.rb +++ b/spec/controllers/profiles/preferences_controller_spec.rb @@ -46,6 +46,8 @@ RSpec.describe Profiles::PreferencesController do it "changes the user's preferences" do prefs = { color_scheme_id: '1', + diffs_deletion_color: '#123456', + diffs_addition_color: '#abcdef', dashboard: 'stars', theme_id: '2', first_day_of_week: '1', @@ -84,5 +86,27 @@ RSpec.describe Profiles::PreferencesController do expect(response.parsed_body['type']).to eq('alert') end end + + context 'on invalid diffs colors setting' do + it 'responds with error for diffs_deletion_color' do + prefs = { diffs_deletion_color: '#1234567' } + + go params: prefs + + expect(response).to have_gitlab_http_status(:bad_request) + expect(response.parsed_body['message']).to eq _('Failed to save preferences.') + expect(response.parsed_body['type']).to eq('alert') + end + + it 'responds with error for diffs_addition_color' do + prefs = { diffs_addition_color: '#1234567' } + + go params: prefs + + expect(response).to have_gitlab_http_status(:bad_request) + expect(response.parsed_body['message']).to eq _('Failed to save preferences.') + expect(response.parsed_body['type']).to eq('alert') + end + end end end diff --git a/spec/controllers/profiles/two_factor_auths_controller_spec.rb b/spec/controllers/profiles/two_factor_auths_controller_spec.rb index 47086ccdd2c..33cba675777 100644 --- a/spec/controllers/profiles/two_factor_auths_controller_spec.rb +++ b/spec/controllers/profiles/two_factor_auths_controller_spec.rb @@ -104,17 +104,29 @@ RSpec.describe Profiles::TwoFactorAuthsController do expect(subject).to receive(:build_qr_code).and_return(code) get :show - expect(assigns[:qr_code]).to eq code + expect(assigns[:qr_code]).to eq(code) end - it 'generates a unique otp_secret every time the page is loaded' do - expect(User).to receive(:generate_otp_secret).with(32).and_call_original.twice + it 'generates a single otp_secret with multiple page loads', :freeze_time do + expect(User).to receive(:generate_otp_secret).with(32).and_call_original.once + + user.update!(otp_secret: nil, otp_secret_expires_at: nil) 2.times do get :show end end + it 'generates a new otp_secret once the ttl has expired' do + expect(User).to receive(:generate_otp_secret).with(32).and_call_original.once + + user.update!(otp_secret: "FT7KAVNU63YZH7PBRVPVL7CPSAENXY25", otp_secret_expires_at: 2.minutes.from_now) + + travel_to(10.minutes.from_now) do + get :show + end + end + it_behaves_like 'user must first verify their primary email address' do let(:go) { get :show } end @@ -183,7 +195,12 @@ RSpec.describe Profiles::TwoFactorAuthsController do expect(subject).to receive(:build_qr_code).and_return(code) go - expect(assigns[:qr_code]).to eq code + expect(assigns[:qr_code]).to eq(code) + end + + it 'assigns account_string' do + go + expect(assigns[:account_string]).to eq("#{Gitlab.config.gitlab.host}:#{user.email}") end it 'renders show' do |