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
path: root/spec
diff options
context:
space:
mode:
authorAlexis Reigel <mail@koffeinfrei.org>2017-07-13 16:22:15 +0300
committerAlexis Reigel <mail@koffeinfrei.org>2017-07-27 16:44:39 +0300
commitcd01e82873b3cd471203dbf557c71571fd683d16 (patch)
tree08372f91287ec4c9a14d95044a0eff7fbe8e78c3 /spec
parent506836a695ae40ff200add21c639f3d13aaee9e9 (diff)
store gpg user name and email on the signature
Diffstat (limited to 'spec')
-rw-r--r--spec/lib/gitlab/gpg/commit_spec.rb6
-rw-r--r--spec/lib/gitlab/gpg_spec.rb14
-rw-r--r--spec/models/gpg_key_spec.rb26
-rw-r--r--spec/support/gpg_helpers.rb8
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