3
# Created by Luke Kanies on 2008-3-7.
4
# Copyright (c) 2007. All rights reserved.
8
require 'puppet/ssl/host'
9
require 'puppet/sslcertificates'
10
require 'puppet/sslcertificates/ca'
11
require 'puppet/indirector/certificate_request/ca'
13
describe Puppet::SSL::CertificateRequest::Ca do
14
include PuppetSpec::Files
17
Puppet[:ssldir] = tmpdir('ssl')
19
Puppet::SSL::Host.ca_location = :local
20
Puppet[:localcacert] = Puppet[:cacert]
21
Puppet::SSLCertificates::CA.new.mkrootcert
23
@ca = Puppet::SSL::CertificateAuthority.new
27
Puppet::SSL::Host.ca_location = :none
30
it "should have documentation" do
31
Puppet::SSL::CertificateRequest::Ca.doc.should be_instance_of(String)
34
it "should use the :csrdir as the collection directory" do
35
Puppet.settings.expects(:value).with(:csrdir).returns "/request/dir"
36
Puppet::SSL::CertificateRequest::Ca.collection_directory.should == "/request/dir"
39
it "should overwrite the previous certificate request if allow_duplicate_certs is true" do
40
Puppet[:allow_duplicate_certs] = true
41
host = Puppet::SSL::Host.new("foo")
42
host.generate_certificate_request
45
Puppet::SSL::Host.indirection.find("foo").generate_certificate_request
47
Puppet::SSL::Certificate.indirection.find("foo").name.should == "foo"
48
Puppet::SSL::CertificateRequest.indirection.find("foo").name.should == "foo"
49
Puppet::SSL::Host.indirection.find("foo").state.should == "requested"
52
it "should reject a new certificate request if allow_duplicate_certs is false" do
53
Puppet[:allow_duplicate_certs] = false
54
host = Puppet::SSL::Host.new("bar")
55
host.generate_certificate_request
58
expect { Puppet::SSL::Host.indirection.find("bar").generate_certificate_request }.should raise_error(/ignoring certificate request/)
60
Puppet::SSL::Certificate.indirection.find("bar").name.should == "bar"
61
Puppet::SSL::CertificateRequest.indirection.find("bar").should be_nil
62
Puppet::SSL::Host.indirection.find("bar").state.should == "signed"