@@ -896,6 +896,55 @@ def copy_fixtures(sources, dest)
896
896
. and output ( %r{Certificate 'CN=revoked' is revoked} ) . to_stderr
897
897
end
898
898
end
899
+
900
+ it "refreshes the CA and CRL" do
901
+ Puppet [ :localcacert ] = ca = tmpfile ( 'ca' )
902
+ Puppet [ :hostcrl ] = crl = tmpfile ( 'crl' )
903
+ copy_fixtures ( %w[ ca.pem intermediate.pem ] , ca )
904
+ copy_fixtures ( %w[ crl.pem intermediate-crl.pem ] , crl )
905
+
906
+ now = Time . now
907
+ yesterday = now - ( 60 * 60 * 24 )
908
+ Puppet ::FileSystem . touch ( ca , mtime : yesterday )
909
+ Puppet ::FileSystem . touch ( crl , mtime : yesterday )
910
+
911
+ server . start_server do |port |
912
+ Puppet [ :serverport ] = port
913
+ Puppet [ :ca_refresh_interval ] = 1
914
+
915
+ expect {
916
+ agent . command_line . args << '--test'
917
+ agent . run
918
+ } . to exit_with ( 0 )
919
+ . and output ( /Info: Refreshed CA certificate: / ) . to_stdout
920
+ end
921
+
922
+ # If the CA is updated, then the CRL must be updated too
923
+ expect ( Puppet ::FileSystem . stat ( ca ) . mtime ) . to be >= now
924
+ expect ( Puppet ::FileSystem . stat ( crl ) . mtime ) . to be >= now
925
+ end
926
+
927
+ it "refreshes only the CRL" do
928
+ Puppet [ :hostcrl ] = crl = tmpfile ( 'crl' )
929
+ copy_fixtures ( %w[ crl.pem intermediate-crl.pem ] , crl )
930
+
931
+ now = Time . now
932
+ yesterday = now - ( 60 * 60 * 24 )
933
+ Puppet ::FileSystem . touch ( crl , mtime : yesterday )
934
+
935
+ server . start_server do |port |
936
+ Puppet [ :serverport ] = port
937
+ Puppet [ :crl_refresh_interval ] = 1
938
+
939
+ expect {
940
+ agent . command_line . args << '--test'
941
+ agent . run
942
+ } . to exit_with ( 0 )
943
+ . and output ( /Info: Refreshed CRL: / ) . to_stdout
944
+ end
945
+
946
+ expect ( Puppet ::FileSystem . stat ( crl ) . mtime ) . to be >= now
947
+ end
899
948
end
900
949
901
950
context "legacy facts" do
0 commit comments