Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-04-20 13:00:54 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-04-20 13:00:54 +0300
commit3cccd102ba543e02725d247893729e5c73b38295 (patch)
treef36a04ec38517f5deaaacb5acc7d949688d1e187 /spec/controllers/profiles
parent205943281328046ef7b4528031b90fbda70c75ac (diff)
Add latest changes from gitlab-org/gitlab@14-10-stable-eev14.10.0-rc42
Diffstat (limited to 'spec/controllers/profiles')
-rw-r--r--spec/controllers/profiles/accounts_controller_spec.rb2
-rw-r--r--spec/controllers/profiles/keys_controller_spec.rb20
-rw-r--r--spec/controllers/profiles/preferences_controller_spec.rb24
-rw-r--r--spec/controllers/profiles/two_factor_auths_controller_spec.rb25
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