diff options
author | Alexis Reigel <mail@koffeinfrei.org> | 2017-07-13 16:22:15 +0300 |
---|---|---|
committer | Alexis Reigel <mail@koffeinfrei.org> | 2017-07-27 16:44:39 +0300 |
commit | cd01e82873b3cd471203dbf557c71571fd683d16 (patch) | |
tree | 08372f91287ec4c9a14d95044a0eff7fbe8e78c3 /spec | |
parent | 506836a695ae40ff200add21c639f3d13aaee9e9 (diff) |
store gpg user name and email on the signature
Diffstat (limited to 'spec')
-rw-r--r-- | spec/lib/gitlab/gpg/commit_spec.rb | 6 | ||||
-rw-r--r-- | spec/lib/gitlab/gpg_spec.rb | 14 | ||||
-rw-r--r-- | spec/models/gpg_key_spec.rb | 26 | ||||
-rw-r--r-- | spec/support/gpg_helpers.rb | 8 |
4 files changed, 45 insertions, 9 deletions
diff --git a/spec/lib/gitlab/gpg/commit_spec.rb b/spec/lib/gitlab/gpg/commit_spec.rb index 661956b7bb7..ddb8dd9f0f4 100644 --- a/spec/lib/gitlab/gpg/commit_spec.rb +++ b/spec/lib/gitlab/gpg/commit_spec.rb @@ -32,6 +32,8 @@ RSpec.describe Gitlab::Gpg::Commit do project: project, gpg_key: gpg_key, gpg_key_primary_keyid: GpgHelpers::User1.primary_keyid, + gpg_key_user_name: GpgHelpers::User1.names.first, + gpg_key_user_email: GpgHelpers::User1.emails.first, valid_signature: true ) end @@ -67,6 +69,8 @@ RSpec.describe Gitlab::Gpg::Commit do project: project, gpg_key: gpg_key, gpg_key_primary_keyid: GpgHelpers::User1.primary_keyid, + gpg_key_user_name: GpgHelpers::User1.names.first, + gpg_key_user_email: GpgHelpers::User1.emails.first, valid_signature: false ) end @@ -102,6 +106,8 @@ RSpec.describe Gitlab::Gpg::Commit do project: project, gpg_key: nil, gpg_key_primary_keyid: GpgHelpers::User1.primary_keyid, + gpg_key_user_name: nil, + gpg_key_user_email: nil, valid_signature: false ) end diff --git a/spec/lib/gitlab/gpg_spec.rb b/spec/lib/gitlab/gpg_spec.rb index ebb7720eaea..8041518117d 100644 --- a/spec/lib/gitlab/gpg_spec.rb +++ b/spec/lib/gitlab/gpg_spec.rb @@ -28,16 +28,18 @@ describe Gitlab::Gpg do end end - describe '.emails_from_key' do - it 'returns the emails' do - expect( - described_class.emails_from_key(GpgHelpers::User1.public_key) - ).to eq GpgHelpers::User1.emails + describe '.user_infos_from_key' do + it 'returns the names and emails' do + user_infos = described_class.user_infos_from_key(GpgHelpers::User1.public_key) + expect(user_infos).to eq([{ + name: GpgHelpers::User1.names.first, + email: GpgHelpers::User1.emails.first + }]) end it 'returns an empty array when the key is invalid' do expect( - described_class.emails_from_key('bogus') + described_class.user_infos_from_key('bogus') ).to eq [] end end diff --git a/spec/models/gpg_key_spec.rb b/spec/models/gpg_key_spec.rb index ddd0bbfb9ba..06bdbb59a11 100644 --- a/spec/models/gpg_key_spec.rb +++ b/spec/models/gpg_key_spec.rb @@ -46,11 +46,31 @@ describe GpgKey do end end - describe '#emails' do - it 'returns the emails from the gpg key' do + describe '#user_infos' do + it 'returns the user infos from the gpg key' do gpg_key = create :gpg_key, key: GpgHelpers::User1.public_key + expect(Gitlab::Gpg).to receive(:user_infos_from_key).with(gpg_key.key) - expect(gpg_key.emails).to eq GpgHelpers::User1.emails + gpg_key.user_infos + end + end + + describe '#verified_user_infos' do + it 'returns the user infos if it is verified' do + user = create :user, email: GpgHelpers::User1.emails.first + gpg_key = create :gpg_key, key: GpgHelpers::User1.public_key, user: user + + expect(gpg_key.verified_user_infos).to eq([{ + name: GpgHelpers::User1.names.first, + email: GpgHelpers::User1.emails.first + }]) + end + + it 'returns an empty array if the user info is not verified' do + user = create :user, email: 'unrelated@example.com' + gpg_key = create :gpg_key, key: GpgHelpers::User1.public_key, user: user + + expect(gpg_key.verified_user_infos).to eq([]) end end diff --git a/spec/support/gpg_helpers.rb b/spec/support/gpg_helpers.rb index f9128a629f2..96ea6f28b30 100644 --- a/spec/support/gpg_helpers.rb +++ b/spec/support/gpg_helpers.rb @@ -98,6 +98,10 @@ module GpgHelpers '5F7EA3981A5845B141ABD522CCFBE19F00AC8B1D' end + def names + ['Nannie Bernhard'] + end + def emails ['nannie.bernhard@example.com'] end @@ -187,6 +191,10 @@ module GpgHelpers '6D494CA6FC90C0CAE0910E42BF9D925F911EFD65' end + def names + ['Bette Cartwright', 'Bette Cartwright'] + end + def emails ['bette.cartwright@example.com', 'bette.cartwright@example.net'] end |