require 'spec_helper' require 'lumberg/whm' CERT = File.read('./spec/sample_certs/main.crt') SELF_CERT = File.read('./spec/sample_certs/sample.crt') SELF_KEY = File.read('./spec/sample_certs/sample.key') module Lumberg describe Whm::Cert do before(:each) do @login = { host: @whm_host, hash: @whm_hash } @server = Whm::Server.new(@login.dup) @cert = Whm::Cert.new(server: @server.dup) end describe "#listcrts" do use_vcr_cassette "whm/cert/listcrts" it "lists installed certificates" do result = @cert.listcrts result[:success].should be_true result[:message].should be_true end end describe "#fetchsslinfo" do use_vcr_cassette "whm/cert/fetchsslinfo" it "displays the SSL certificate, private key, and CA bundle/intermediate certificate associated with a specified domain" do result = @cert.fetchsslinfo(domain: "myhost.com", crtdata: CERT) result[:success].should be_true result[:message].should match("ok") result[:params][:crt].should match(/.*BEGIN CERTIFICATE.*/) result[:params][:key].should match(/.*KEY.*/) end end describe "#generatessl" do use_vcr_cassette "whm/cert/generatessl" context "generating a new CSR" do subject do @cert.generatessl( city: "houston", host: "myhost.com", country: "US", state: "TX", company: "Company", company_division: "Dept", email: "test@myhost.com", pass: "abc123", xemail: "", noemail: 1 ) end its([:success]) { should be_true } its([:message]) { should == "Key, Certificate, and CSR generated OK" } its([:params]) { should have_key :csr } its([:params]) { should have_key :key } its([:params]) { should have_key :cert } end context "generating a new CSR with an ampersand in company name" do subject do @cert.generatessl( city: "houston", host: "myhost.com", country: "US", state: "TX", company: "Foo & Bar", company_division: "Dept", email: "test@myhost.com", pass: "abc123", xemail: "", noemail: 1 ) end its([:success]) { should be_true } its([:message]) { should == "Key, Certificate, and CSR generated OK" } its([:params]) { should have_key :csr } its([:params]) { should have_key :key } its([:params]) { should have_key :cert } end end describe "#installssl" do use_vcr_cassette "whm/cert/installssl" it "installs a certificate" do result = @cert.installssl(domain: 'check.com', user: "nobody", cert: SELF_CERT, key: SELF_KEY, ip: '192.1.2.3') result[:success].should be_true result[:message].should match(/Certificate successfully installed/) end end end end