#794: add specs for KeyPair model

This commit is contained in:
Vokhmin Alexey V 2012-12-20 20:21:43 +04:00
parent 7ed5fa1127
commit 09731e041e
6 changed files with 240 additions and 2 deletions

View File

@ -3,8 +3,18 @@ FactoryGirl.define do
factory :key_pair do
association :repository
association :user
public FactoryGirl.generate(:string)
secret FactoryGirl.generate(:string)
public {
file = File.open(Rails.root.join('spec', 'support', 'fixtures', 'pubring.gpg'), "rb")
contents = file.read
file.close
contents
}
secret {
file = File.open(Rails.root.join('spec', 'support', 'fixtures', 'secring.gpg'), "rb")
contents = file.read
file.close
contents
}
end
end

View File

@ -13,6 +13,57 @@ describe KeyPair do
it { should_not allow_mass_assignment_of(:user) }
it { should_not allow_mass_assignment_of(:key_id) }
describe 'check_keys validation' do
subject { FactoryGirl.build(:key_pair) }
it { subject.valid?.should be_true }
it 'checks error when wrong public key' do
subject.public = 'test'
subject.valid?
subject.errors[:public].should =~ [I18n.t('activerecord.errors.key_pair.wrong_key')]
end
it 'checks error when wrong secret key' do
subject.secret = 'test'
subject.valid?
subject.errors[:secret].should =~ [I18n.t('activerecord.errors.key_pair.wrong_key')]
end
it 'checks error when public key contains secret key' do
subject.public = subject.secret
subject.valid?
subject.errors[:public].should =~ [I18n.t('activerecord.errors.key_pair.contains_public_key')]
end
it 'checks error when secret key contains public key' do
subject.secret = subject.public
subject.valid?
subject.errors[:secret].should =~ [I18n.t('activerecord.errors.key_pair.contains_secret_key')]
end
it 'checks error when different fingerprint of keys' do
file = File.open(Rails.root.join('spec', 'support', 'fixtures', 'pubring.pass.gpg'), "rb")
subject.public = file.read
file.close
subject.valid?
subject.errors[:secret].should =~ [I18n.t('activerecord.errors.key_pair.wrong_keys')]
end
it 'checks error when secret key contains passphrase' do
file = File.open(Rails.root.join('spec', 'support', 'fixtures', 'pubring.pass.gpg'), "rb")
subject.public = file.read
file.close
file = File.open(Rails.root.join('spec', 'support', 'fixtures', 'secring.pass.gpg'), "rb")
subject.secret = file.read
file.close
subject.valid?
subject.errors[:secret].should =~ [I18n.t('activerecord.errors.key_pair.key_has_passphrase')]
end
end
after(:all) do
Platform.delete_all
User.delete_all

View File

@ -0,0 +1,30 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.12 (Darwin)
mQENBFDS81MBCADYXCU/PiiKKhufSW5OG2Fq3BYHpTxvzGHJjK1vHxx71iZZmxJb
jr1lB2Iac6TXGjZyZCJqXUyi6+d+AFvt1dE4SzCOYDXF30lGJ+sMgR85vA/dOsRm
dQuFeqmgtcCQDlD3ptDe4RXvLhbV7jTKSnhzL0OCOx7nw3NdVfUQ9lLWNxVj2/Wi
O4/AFwSA97V9zpqZoXY9xm+yN5WN0hHufjoTNLb5wCX4boaChJDrMcx041STtgec
HvJKBhLSS3rS4JwUPPPYWYZvlQ/QbCzo0ZVyPJFoP2QQ1hIADgfE2VL9qmbGb3hZ
CfQJqdYBqlJgaXXqU5tCVZygSn3JKrmtCbS/ABEBAAG0MFZva2htaW4gQWxleGV5
IFYgKGF2b2tobWluKSA8YXZva2htaW5AZ21haWwuY29tPokBOAQTAQIAIgUCUNLz
UwIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQasbV9duAtkco+gf+ObSa
PjGNybCtzo91AGQiyuHvckC4vsuakWV3wuPIvymLVBAwAK3NYpQt9HhV09YlgrTU
y2JYALAsAY9dFTVmn0u6AUjxzgcNJG3NJYoUGdxPJJF3Kb7PVMl4qKYvTFooPY/p
yo6fkLxqrLdjODNelqqPl3BOkryhEQAKgIiPkBfu3rkCuN0cHhxhbNu4nH7I3iyv
atsxi1DDRk2GKZkGiiVQWlAr09ZLP/PpVCzpUxMC3hdjA2yZ118fMfvHzFAM4jdL
BGbgFoads+6wbbhrrSXcD2JdW9knwqfX2GMKJQ55N/m0J56/lkD0zjMbEcCk7Tsv
yOjrYsNnRyWw7jGE8LkBDQRQ0vNTAQgAvdVpy2VgNNVAZ6BVPFDaAwrReksCnOBR
Bx5vtJHx4ZUudTpxYyxkkz8cxVap8pJKlBNrZiim2RS3RP/Ya9nTqNYrY597FHgc
KsS9wrdqw8SWse3Pt0QrCpTCcthXvFwho0WW6GP0b5NoEtblHLeCBXG6xBajs80M
7uX7RuOO8SPBCacHR70dmxHjlzQlPSUPrcwxDdlM5FeePSN/ANyrcHaHqNnk+3Dh
PBbmOxyEVf+CmSRlfuaKgCm2g6V7uhU6DBW/6rczOm8QD6cY3RLVfzFLi+gXK2ym
me99WaICe98qQI82HOaCmUk/JGEI8q3m7rMaL2HmYlHOH/6amYoxUQARAQABiQEf
BBgBAgAJBQJQ0vNTAhsMAAoJEGrG1fXbgLZHEB0H/0qmUSltASmyQhe7LAXQcqlJ
KxxSTCg5IfOAuL++4nn/b5SJFfMo1bkVtgo+r5ix33D8ZDFQsditGVf4red6ddSa
SfnNpZkUScOpeOz31N+ev6fspHnMieL9zoHre/FOqWk6h3Wjl4q1NWdRKwpP5zAn
ug17kWzTVxB7CeNbW5N403JoH4e2bWyGO7ZlcM9J26o0g05RU7h5i8y//iUkXt/d
PjBD6YChYl7jpSezAm3Xqv7z+oNtFNRp5kFDn8z7XeHKn4LbNlJq02dcCQkS3Asu
qNgHF0DPEd+lTyvx5ns4Rd5qt4tuwGJGj+VQSMfmLOX88tc/qqwza/0U3Bct+bI=
=ZCfP
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,30 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.12 (Darwin)
mQENBFDS98ABCACaw+nwAvake7DUS8p1vQfLcPMGWPACXxW1x0rvnd6OXakFIb97
lcFQFslLr581nYQIIFbNEJRXI3DO5hz21dEJ13uxNYsVjnwX79ToL7JxrEhi/mrH
mOyZqDhkVb4nwQQ231aF4gqmpMaxbylYhvUEwEDil2uxvnFCo1oB3lkD4xkhRkjg
n7LqNU15pbCKQsY/qYd502UMaYofacXpqaWY9nKMgPwIH1oMYrgbeJO7PrhZPHaX
CT0/9K8LELKvK7gVWcScfXShmYaITWS+udFUsEzy4D2zt9jQOie9lRCJHeeDWvoj
AvlWE4VVFnbNK3ShblXhhcr3pX6sKMarAPtRABEBAAG0IHF3ZXJ0eSAocXFxcXEp
IDxhcXdlckBqZmRzai5jb20+iQE4BBMBAgAiBQJQ0vfAAhsDBgsJCAcDAgYVCAIJ
CgsEFgIDAQIeAQIXgAAKCRC1dIaeWBn9lfgQB/9foCBWi/4BqjMfsFVVVEWhTCCo
GWMrY5BtQtgAoY7KX5NFNzCqECYua+HZaMAZgxZxElOq2N8Ig84msWnbuKibzZn9
+6LJCxYYqyn+5xcqeRpTl5zA3fFV7K6rICZF9AzoBFuJgNZ0Do15XEQCJHIlztm8
AtadgUGQDQkU5OuyGlApQ0KfVxlALyNbIb1b9p0wo+D7LEyTAbCXM6RxloDRBaMe
A4uoyzIHOzj3UxU+/38nizlcNAAGy5uyf0o29c9GpRN4ga1ZDspxPxTxrAg4y289
i6l1GNXqLxko/Cg69269rl6ejZ4c9tDra/3l7LyTWC7fPcorD0PVgj816y+guQEN
BFDS98ABCADpObjrAmbkll/9lzJpuKeComRFu3ry6FBtmuhX22zjbwCm8Xb4EmbS
e9HioZVelN2k8FNI2bxEfM6eKk0VwY4VTXkEYlEH74gYrK+iiYwUracBVaT3q1au
TrFB+xir4I8rZdFI39iwsKsaUt5XoNPVDrVwOWQRUjxTKfA0y1tOOmByyfDRzXNn
bo5tHOx/YXz6nJBe4XpQ7uWcVhHe8wgsd/ti9HPgRDM1Q1bxz9xxWLAn6VF3tvey
Jz1i3L5SSHoFHd8OInktSgi3VzhoSaZaBcHcbzm3OrqUofuGbLTKJgpXpCvQlqle
2ow/wpAL+stluRuPhYWjMSzKarTJwM1DABEBAAGJAR8EGAECAAkFAlDS98ACGwwA
CgkQtXSGnlgZ/ZVC0gf6Av6xYN/O3i4zxQ2anql2TqD6WP3zJX46+T7k+9ayIl67
5aH7vHFjmXBt4y8V2ESYIT8LYE3qak7XntNwzjqG4jS4kAw5mOTKaDbGjr+oCGFF
wfBUlK+JyuxbFL28i5bYa94S/rQJ/suKhjWIQu1O/NKLaNJuN5YlhcA53eA/ppPt
TJBNRG2NUD+rAYN5XGb4ctG5h26PpKfr4fxdd90JHf37S/yAcYPnfEfa/WqgnSPL
Bd6AHwmjHxeuRhQhOgIXRmTtWYp3LlPb2yNjL+Vk0ePmzaYp4QrIO1wF1XKTUPB2
S1x2nlZd4zDbyBYG/2rSWRCB8LwD0H1XVQAMBjBVvQ==
=O0re
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,58 @@
-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: GnuPG v1.4.12 (Darwin)
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
3Bct+bI=
=CNSZ
-----END PGP PRIVATE KEY BLOCK-----

View File

@ -0,0 +1,59 @@
-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: GnuPG v1.4.12 (Darwin)
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
0lkQgfC8A9B9V1UADAYwVb0=
=hZ8N
-----END PGP PRIVATE KEY BLOCK-----