require File.expand_path(File.join(File.dirname(__FILE__),'../spec_helper')) describe 'apache::vhost::template', :type => 'define' do let(:title){ 'example.com' } let(:facts){ { :fqdn => 'apache.example.com', :operatingsystem => 'CentOS', :operatingsystemmajrelease => '7', } } let(:pre_condition) { 'include apache' } describe 'with standard' do it { should contain_apache__vhost__file('example.com').with( :ensure => 'present', :do_includes => false, :run_mode => 'normal', :ssl_mode => false, :logmode => 'default', :mod_security => true, :htpasswd_file => 'absent', :htpasswd_path => 'absent', :use_mod_macro => false, )} it { should contain_apache__vhost__file('example.com').with_content( " Include include.d/defaults.inc ServerName example.com DocumentRoot /var/www/vhosts/example.com/www/ ErrorLog /var/www/vhosts/example.com/logs/error_log CustomLog /var/www/vhosts/example.com/logs/access_log combined AllowOverride None SecRuleEngine On SecAuditEngine RelevantOnly SecAuditLogType Concurrent SecAuditLogStorageDir /var/www/vhosts/example.com/logs/ SecAuditLog /var/www/vhosts/example.com/logs/mod_security_audit.log SecDebugLog /var/www/vhosts/example.com/logs/mod_security_debug.log " )} end describe 'with params' do let(:params){ { :do_includes => true, :ssl_mode => true, :logmode => 'anonym', :mod_security => false, :htpasswd_file => true, } } it { should contain_apache__vhost__file('example.com').with( :ensure => 'present', :do_includes => true, :run_mode => 'normal', :ssl_mode => true, :logmode => 'anonym', :mod_security => false, :htpasswd_file => true, :htpasswd_path => 'absent', :use_mod_macro => false, )} it { should contain_apache__vhost__file('example.com').with_content( " Include include.d/defaults.inc ServerName example.com DocumentRoot /var/www/vhosts/example.com/www/ ErrorLog /dev/null CustomLog /var/www/vhosts/example.com/logs/access_log noip AllowOverride None Options +Includes AuthType Basic AuthName \"Access fuer example.com\" AuthUserFile /var/www/htpasswds/example.com require valid-user SecRuleEngine Off SecAuditEngine Off SecAuditLogType Concurrent SecAuditLogStorageDir /var/www/vhosts/example.com/logs/ SecAuditLog /var/www/vhosts/example.com/logs/mod_security_audit.log SecDebugLog /var/www/vhosts/example.com/logs/mod_security_debug.log Include include.d/defaults.inc Include include.d/ssl_defaults.inc ServerName example.com DocumentRoot /var/www/vhosts/example.com/www/ ErrorLog /dev/null CustomLog /var/www/vhosts/example.com/logs/access_log noip AllowOverride None Options +Includes AuthType Basic AuthName \"Access fuer example.com\" AuthUserFile /var/www/htpasswds/example.com require valid-user SecRuleEngine Off SecAuditEngine Off SecAuditLogType Concurrent SecAuditLogStorageDir /var/www/vhosts/example.com/logs/ SecAuditLog /var/www/vhosts/example.com/logs/mod_security_audit.log SecDebugLog /var/www/vhosts/example.com/logs/mod_security_debug.log " )} end describe 'with params II' do let(:params){ { :do_includes => true, :ssl_mode => 'force', :logmode => 'semianonym', :mod_security => false, :htpasswd_file => true, } } it { should contain_apache__vhost__file('example.com').with( :ensure => 'present', :do_includes => true, :run_mode => 'normal', :ssl_mode => 'force', :logmode => 'semianonym', :mod_security => false, :htpasswd_file => true, :htpasswd_path => 'absent', :use_mod_macro => false, )} it { should contain_apache__vhost__file('example.com').with_content( " Include include.d/defaults.inc ServerName example.com DocumentRoot /var/www/vhosts/example.com/www/ ErrorLog /var/www/vhosts/example.com/logs/error_log CustomLog /var/www/vhosts/example.com/logs/access_log noip RewriteEngine On RewriteCond %{HTTPS} !=on RewriteCond %{HTTP:X-Forwarded-Proto} !=https RewriteRule (.*) https://%{SERVER_NAME}$1 [R=permanent,L] AllowOverride None Options +Includes AuthType Basic AuthName \"Access fuer example.com\" AuthUserFile /var/www/htpasswds/example.com require valid-user SecRuleEngine Off SecAuditEngine Off SecAuditLogType Concurrent SecAuditLogStorageDir /var/www/vhosts/example.com/logs/ SecAuditLog /var/www/vhosts/example.com/logs/mod_security_audit.log SecDebugLog /var/www/vhosts/example.com/logs/mod_security_debug.log Include include.d/defaults.inc Include include.d/ssl_defaults.inc ServerName example.com DocumentRoot /var/www/vhosts/example.com/www/ ErrorLog /var/www/vhosts/example.com/logs/error_log CustomLog /var/www/vhosts/example.com/logs/access_log noip AllowOverride None Options +Includes AuthType Basic AuthName \"Access fuer example.com\" AuthUserFile /var/www/htpasswds/example.com require valid-user SecRuleEngine Off SecAuditEngine Off SecAuditLogType Concurrent SecAuditLogStorageDir /var/www/vhosts/example.com/logs/ SecAuditLog /var/www/vhosts/example.com/logs/mod_security_audit.log SecDebugLog /var/www/vhosts/example.com/logs/mod_security_debug.log " )} end describe 'with params III' do let(:params){ { :do_includes => false, :ssl_mode => 'only', :logmode => 'nologs', :mod_security => true, :htpasswd_file => 'absent', } } it { should contain_apache__vhost__file('example.com').with( :ensure => 'present', :do_includes => false, :run_mode => 'normal', :ssl_mode => 'only', :logmode => 'nologs', :mod_security => true, :htpasswd_file => 'absent', :htpasswd_path => 'absent', :use_mod_macro => false, )} it { should contain_apache__vhost__file('example.com').with_content( " Include include.d/defaults.inc Include include.d/ssl_defaults.inc ServerName example.com DocumentRoot /var/www/vhosts/example.com/www/ ErrorLog /dev/null CustomLog /dev/null AllowOverride None SecRuleEngine On SecAuditEngine RelevantOnly SecAuditLogType Concurrent SecAuditLogStorageDir /var/www/vhosts/example.com/logs/ SecAuditLog /var/www/vhosts/example.com/logs/mod_security_audit.log SecDebugLog /var/www/vhosts/example.com/logs/mod_security_debug.log " )} end end