77 lines
2.2 KiB
Ruby
77 lines
2.2 KiB
Ruby
require File.expand_path('../support/helpers', __FILE__)
|
|
|
|
describe 'apache2::default' do
|
|
include Helpers::Apache
|
|
|
|
it 'installs apache' do
|
|
package(node['apache']['package']).must_be_installed
|
|
end
|
|
|
|
it 'starts apache' do
|
|
apache_service.must_be_running
|
|
end
|
|
|
|
it 'enables apache' do
|
|
apache_service.must_be_enabled
|
|
end
|
|
|
|
it 'creates the conf.d directory' do
|
|
directory("#{node['apache']['dir']}/conf.d").must_exist.with(:mode, '755')
|
|
end
|
|
|
|
it 'creates the logs directory' do
|
|
directory(node['apache']['log_dir']).must_exist
|
|
end
|
|
|
|
it 'enables the default site unless it is disabled' do
|
|
skip unless node['apache']['default_site_enabled']
|
|
file("#{node['apache']['dir']}/sites-enabled/000-default").must_exist
|
|
file("#{node['apache']['dir']}/sites-available/default").must_exist
|
|
end
|
|
|
|
it 'ensures the debian-style apache module scripts are present' do
|
|
%w{a2ensite a2dissite a2enmod a2dismod}.each do |mod_script|
|
|
file("/usr/sbin/#{mod_script}").must_exist
|
|
end
|
|
end
|
|
|
|
it 'reports server name only, not detailed version info' do
|
|
assert_match(/^ServerTokens #{node['apache']['servertokens']} *$/, File.read("#{node['apache']['dir']}/conf.d/security"))
|
|
end
|
|
|
|
it 'listens on port 80' do
|
|
apache_configured_ports.must_include(80)
|
|
end
|
|
|
|
it 'only listens on port 443 when SSL is enabled' do
|
|
unless ran_recipe?('apache2::mod_ssl')
|
|
apache_configured_ports.wont_include(443)
|
|
end
|
|
end
|
|
|
|
it 'reports server name only, not detailed version info' do
|
|
file("#{node['apache']['dir']}/conf.d/security").must_match(/^ServerTokens #{node['apache']['servertokens']} *$/)
|
|
end
|
|
|
|
it 'enables default_modules' do
|
|
node['apache']['default_modules'].each do |a2mod|
|
|
apache_enabled_modules.must_include "#{a2mod}_module"
|
|
end
|
|
end
|
|
|
|
describe 'centos' do
|
|
it 'ensures no modules are loaded in conf.d' do
|
|
Dir["#{node['apache']['dir']}/conf.d/*"].each do |f|
|
|
file(f).wont_include 'LoadModule'
|
|
end
|
|
end
|
|
end
|
|
|
|
describe 'configuration' do
|
|
it { config.must_include '# Generated by Chef' }
|
|
it { config.must_include %Q{ServerRoot "#{node['apache']['dir']}"} }
|
|
it { config.must_include "Include #{node['apache']['dir']}/conf.d/" }
|
|
it { apache_config_parses? }
|
|
end
|
|
end
|