
- Re-factor - Remove code for notifications - Remove addons - Remove travis-core gem. - Ignore logs directory only - Move core tests to spec/lib
87 lines
3.0 KiB
Ruby
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
|