#!/usr/bin/env ruby
$:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
require 'puppet'
require 'puppet/sslcertificates/ca.rb'
require 'puppettest'
require 'puppettest/certificates'
class TestCA < Test::Unit::TestCase
include PuppetTest
def hosts
%w{host.domain.com Other.Testing.Com}
end
def mkca
Puppet::SSLCertificates::CA.new
end
def test_clean
dirs = [:csrdir, :signeddir, :publickeydir, :privatekeydir, :certdir]
ca = mkca
hosts.each do |host|
files = []
dirs.each do |dir|
dir = Puppet[dir]
# We handle case insensitivity through downcasing
file = File.join(dir, host.downcase + ".pem")
File.open(file, "w") do |f|
f.puts "testing"
end
files << file
end
assert_nothing_raised do
ca.clean(host)
end
files.each do |f|
assert(! FileTest.exists?(f), "File %s was not deleted" % f)
end
end
end
def test_host2Xfile
ca = mkca
hosts.each do |host|
{:signeddir => :host2certfile, :csrdir => :host2csrfile}.each do |dir, method|
val = nil
assert_nothing_raised do
val = ca.send(method, host)
end
assert_equal(File.join(Puppet[dir], host.downcase + ".pem"), val,
"incorrect response from %s" % method)
end
end
end
def test_list
ca = mkca
# Make a fake csr
dir = Puppet[:csrdir]
list = []
hosts.each do |host|
file = File.join(dir, host.downcase + ".pem")
File.open(file, "w") { |f| f.puts "yay" }
list << host.downcase
end
assert_equal(list.sort, ca.list.sort, "list was not correct")
end
# #142 - test storing the public key
def test_store_public_key
ca = mkca
assert_nothing_raised do
ca.mkrootcert
end
assert(FileTest.exists?(Puppet[:capub]), "did not store public key")
end
end
# $Id: ca.rb 2232 2007-02-27 22:14:56Z luke $
syntax highlighted by Code2HTML, v. 0.9.1