require 'spec_helper_acceptance' case fact('osfamily') when 'RedHat' mod_dir = '/etc/httpd/conf.d' servicename = 'httpd' when 'Debian' mod_dir = '/etc/apache2/mods-available' servicename = 'apache2' when 'FreeBSD' mod_dir = '/usr/local/etc/apache22/Modules' servicename = 'apache22' end describe 'apache::default_mods class', :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do describe 'no default mods' do # Using puppet_apply as a helper it 'should apply with no errors' do pp = <<-EOS class { 'apache': default_mods => false, } EOS # Run it twice and test for idempotency apply_manifest(pp, :catch_failures => true) expect(apply_manifest(pp, :catch_failures => true).exit_code).to be_zero end describe service(servicename) do it { is_expected.to be_running } end end describe 'no default mods and failing' do # Using puppet_apply as a helper it 'should apply with errors' do pp = <<-EOS class { 'apache': default_mods => false, } apache::vhost { 'defaults.example.com': docroot => '/var/www/defaults', aliases => { alias => '/css', path => '/var/www/css', }, setenv => 'TEST1 one', } EOS apply_manifest(pp, { :expect_failures => true }) end # Are these the same? describe service(servicename) do it { is_expected.not_to be_running } end describe "service #{servicename}" do it 'should not be running' do shell("pidof #{servicename}", {:acceptable_exit_codes => 1}) end end end describe 'alternative default mods' do # Using puppet_apply as a helper it 'should apply with no errors' do pp = <<-EOS class { 'apache': default_mods => [ 'info', 'alias', 'mime', 'env', 'expires', ], } apache::vhost { 'defaults.example.com': docroot => '/var/www/defaults', aliases => { alias => '/css', path => '/var/www/css', }, setenv => 'TEST1 one', } EOS apply_manifest(pp, :catch_failures => true) shell('sleep 10') expect(apply_manifest(pp, :catch_failures => true).exit_code).to be_zero end describe service(servicename) do it { is_expected.to be_running } end end describe 'change loadfile name' do it 'should apply with no errors' do pp = <<-EOS class { 'apache': default_mods => false } ::apache::mod { 'auth_basic': loadfile_name => 'zz_auth_basic.load', } EOS # Run it twice and test for idempotency apply_manifest(pp, :catch_failures => true) expect(apply_manifest(pp, :catch_failures => true).exit_code).to be_zero end describe service(servicename) do it { is_expected.to be_running } end describe file("#{mod_dir}/zz_auth_basic.load") do it { is_expected.to be_file } end end end