puppet-horizon/spec/acceptance/horizon_with_apache_spec.rb
Cody Herriges 64f5872e5f Making root_url configurable
This commit will make universal modifications to the way the "root_url"
  parameter is set so that a person can modify it.  Adjusts tests
  accordingly and improves on beaker success scenario.

  This needs to occur to allow people the ability to serve horizon from the
  root of a vhost.

Change-Id: If43ea694b2601c55a4b07c1cd5fc411abbaaaa2d
2016-02-25 17:20:31 -08:00

75 lines
2.4 KiB
Ruby

require 'spec_helper_acceptance'
describe 'horizon class' do
context 'default parameters' do
it 'should work with no errors' do
pp= <<-EOS
include ::openstack_integration
include ::openstack_integration::repos
class { '::horizon':
secret_key => 'big_secret',
# need to disable offline compression due to
# https://bugs.launchpad.net/ubuntu/+source/horizon/+bug/1424042
compress_offline => false,
allowed_hosts => [$::fqdn, 'localhost'],
server_aliases => [$::fqdn, 'localhost'],
}
EOS
# Run it twice and test for idempotency
apply_manifest(pp, :catch_failures => true)
apply_manifest(pp, :catch_changes => true)
end
# basic test for now, to make sure Apache serve /horizon dashboard
if os[:family] == 'Debian'
it 'executes curl and returns 200' do
shell('curl --connect-timeout 5 -sL -w "%{http_code} %{url_effective}\n" http://localhost/horizon -o /dev/null', :acceptable_exit_codes => [0]) do |r|
expect(r.stdout).to match(/^200/)
end
end
elsif os[:family] == 'RedHat'
it 'executes curl and returns 200' do
shell('curl --connect-timeout 5 -sL -w "%{http_code} %{url_effective}\n" http://localhost/dashboard -o /dev/null', :acceptable_exit_codes => [0]) do |r|
expect(r.stdout).to match(/^200/)
end
end
end
end
context 'parameters with modified root' do
it 'should work with no errors' do
pp= <<-EOS
include ::openstack_integration
include ::openstack_integration::repos
class { '::horizon':
secret_key => 'big_secret',
# need to disable offline compression due to
# https://bugs.launchpad.net/ubuntu/+source/horizon/+bug/1424042
compress_offline => false,
allowed_hosts => [$::fqdn, 'localhost'],
server_aliases => [$::fqdn, 'localhost'],
root_url => '',
}
EOS
# Run it twice and test for idempotency
apply_manifest(pp, :catch_failures => true)
apply_manifest(pp, :catch_changes => true)
end
# basic test for now, to make sure Apache serve /horizon dashboard
it 'executes curl and returns 200' do
shell('curl --connect-timeout 5 -sL -w "%{http_code} %{url_effective}\n" http://localhost -o /dev/null', :acceptable_exit_codes => [0]) do |r|
expect(r.stdout).to match(/^200/)
end
end
end
end