travis-api/spec/lib/model/ssl_key_spec.rb
Aakriti Gupta 65f1a29d86 Move travis-core files from /vendor to /lib.
- Re-factor
- Remove code for notifications
- Remove addons
- Remove travis-core gem.
- Ignore logs directory only
- Move core tests to spec/lib
2016-07-20 11:22:25 +02:00

87 lines
3.0 KiB
Ruby

describe SslKey do
let(:key) { SslKey.new }
before(:each) do
key.generate_keys
end
it "is a SslKey" do
key.should be_a(SslKey)
end
describe "generate_keys" do
it "generates the public key" do
key.public_key.should be_a(String)
end
it "generates the private key" do
key.private_key.should be_a(String)
end
it "does not generate a new public key if one already exists" do
public_key = key.public_key
key.generate_keys
key.public_key.should == public_key
end
it "does not generate a new private key if one already exists" do
private_key = key.private_key
key.generate_keys
key.private_key.should == private_key
end
end
describe "generate_keys!" do
it "generates a new public key even if one already exists" do
public_key = key.public_key
key.generate_keys!
key.public_key.should_not == public_key
end
it "generates a new private key even if one already exists" do
private_key = key.private_key
key.generate_keys!
key.private_key.should_not == private_key
end
end
describe "encrypt" do
it "encrypts something" do
key.encrypt("hello").should_not be_nil
key.encrypt("hello").should_not eql("hello")
end
it "is decryptable" do
encrypted = key.encrypt("hello")
key.decrypt(encrypted).should eql("hello")
end
end
describe "decrypt" do
it "decrypts something" do
encrypted_string = key.encrypt("hello world")
key.decrypt(encrypted_string).should_not be_nil
key.decrypt(encrypted_string).should_not eql("hello")
end
end
describe 'encoding' do
SSL_KEYS = {
:public_key => "-----BEGIN PUBLIC KEY-----\nMDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhALlyZuHmCjZf8pGCUmqz1NESpeVMJoes\nWQblf1p2WhnZAgMBAAE=\n-----END PUBLIC KEY-----\n",
:private_key => "-----BEGIN RSA PRIVATE KEY-----\nMIGrAgEAAiEAuXJm4eYKNl/ykYJSarPU0RKl5Uwmh6xZBuV/WnZaGdkCAwEAAQIg\nVHk9Tjd4fW5VU1z25+4EyXQNnMvaJGr0vP/iG2xSRpECEQD0k/AbOvzsxT5KDXP9\nnsxNAhEAwhuFRSrB1ef6EIPEyLDZvQIRAMGkH4ZvvbD4uciHvj4fbEECEBAl0fRr\nFi0BW2A8VgaMD9ECEQCYSndvz+Vw6SnR9YqElWqc\n-----END RSA PRIVATE KEY-----\n",
:public_base64 => "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAIQC5cmbh5go2X/KRglJqs9TREqXlTCaHrFkG5X9adloZ2Q==",
:private_base64 => "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUdyQWdFQUFpRUF1\nWEptNGVZS05sL3lrWUpTYXJQVTBSS2w1VXdtaDZ4WkJ1Vi9XblphR2RrQ0F3\nRUFBUUlnClZIazlUamQ0Zlc1VlUxejI1KzRFeVhRTm5NdmFKR3IwdlAvaUcy\neFNScEVDRVFEMGsvQWJPdnpzeFQ1S0RYUDkKbnN4TkFoRUF3aHVGUlNyQjFl\nZjZFSVBFeUxEWnZRSVJBTUdrSDRadnZiRDR1Y2lIdmo0ZmJFRUNFQkFsMGZS\ncgpGaTBCVzJBOFZnYU1EOUVDRVFDWVNuZHZ6K1Z3NlNuUjlZcUVsV3FjCi0t\nLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg=="
}
let(:key) { SslKey.new(SSL_KEYS.slice(:private_key, :public_key)) }
it 'generates the correct key format to export to github' do
key.encoded_public_key.should == SSL_KEYS[:public_base64]
end
it 'encodes the private key properly for the build' do
key.encoded_private_key.should == SSL_KEYS[:private_base64]
end
end
end