puppet-httpd/spec/acceptance/basic_spec.rb
Colleen Murphy efd4267ef4 Depend on helper gem for spec_helper_acceptance
Instead of keeping a local copy of spec_helper_acceptance.rb and
requiring updates to all modules for any change, we can move it into the
common helper gem and require it from there. This will make it easier to
create and review changes that affect all puppet modules. Also change
the Gemfile to look for the gem in the local workspace if running in a
zuul environment.

Change-Id: I8233333e7c35a3a1191c0f8d070f6de5dfb7b33d
2017-08-18 10:41:43 +02:00

58 lines
1.8 KiB
Ruby

require 'puppet-openstack_infra_spec_helper/spec_helper_acceptance'
describe 'puppet-httpd module' do
def pp_path
base_path = File.dirname(__FILE__)
File.join(base_path, 'fixtures')
end
def default_puppet_module
module_path = File.join(pp_path, 'default.pp')
File.read(module_path)
end
it 'should work with no errors' do
apply_manifest(default_puppet_module, catch_failures: true)
end
it 'should be idempotent', :if => ['debian', 'ubuntu'].include?(os[:family]) do
apply_manifest(default_puppet_module, catch_changes: true)
end
it 'should be idempotent', :if => ['fedora', 'redhat'].include?(os[:family]) do
pending('this module is not idempotent on CentOS yet')
apply_manifest(default_puppet_module, catch_changes: true)
end
describe 'required services' do
describe service('httpd'), :if => ['fedora', 'redhat'].include?(os[:family]) do
it { should be_enabled }
it { should be_running }
end
describe service('apache2'), :if => ['debian', 'ubuntu'].include?(os[:family]) do
it { should be_enabled }
it { should be_running }
end
describe command('a2query -m ssl'), :if => ['debian', 'ubuntu'].include?(os[:family]) do
its(:stdout) { should match 'enabled' }
end
describe 'vhosts' do
describe command('curl --verbose http://localhost') do
its(:stdout) { should include 'Index of /' }
end
describe command('curl --verbose -H "Host: proxy" http://localhost/acceptance.txt') do
its(:stdout) { should include 'Acceptance Test' }
end
describe command('curl --verbose -H "Host: redirect" http://localhost') do
its(:stdout) { should include '302' }
its(:stdout) { should include 'http://localhost:8080/acceptance.txt' }
end
end
end
end