require File.expand_path(File.join(File.dirname(__FILE__),'../spec_helper')) describe 'apache::vhost::file', :type => 'define' do let(:title){ 'example.com' } let(:facts){ { :fqdn => 'apache.example.com', } } let(:pre_condition) { 'include apache' } describe 'with standard' do it { should contain_file('example.com.conf').with( :ensure => 'present', :source => [ "puppet:///modules/site_apache/vhosts.d/apache.example.com/example.com.conf", "puppet:///modules/site_apache/vhosts.d//example.com.conf", "puppet:///modules/site_apache/vhosts.d/./example.com.conf", "puppet:///modules/site_apache/vhosts.d//example.com.conf", "puppet:///modules/site_apache/vhosts.d/example.com.conf", "puppet:///modules/apache/vhosts.d/./example.com.conf", "puppet:///modules/apache/vhosts.d//example.com.conf", "puppet:///modules/apache/vhosts.d/example.com.conf" ], :path => '/etc/apache2/vhosts.d/example.com.conf', :require => 'File[vhosts_dir]', :notify => 'Service[apache]', :owner => 'root', :group => 0, :mode => '0644', )} it { should_not contain_file('/var/www/htpasswds/example.com') } it { should_not contain_class('apache::includes') } it { should_not contain_class('apache::mod_macro') } it { should_not contain_class('apache::noiplog') } it { should_not contain_class('apache::itk::lock') } it { should_not contain_class('mod_security::itk_plus') } it { should_not contain_class('mod_security') } end context 'on centos' do let(:facts){ { :fqdn => 'apache.example.com', :operatingsystem => 'CentOS', :operatingsystemmajrelease => '7', } } it { should contain_file('example.com.conf').with( :ensure => 'present', :source => [ "puppet:///modules/site_apache/vhosts.d/apache.example.com/example.com.conf", "puppet:///modules/site_apache/vhosts.d//example.com.conf", "puppet:///modules/site_apache/vhosts.d/CentOS.7/example.com.conf", "puppet:///modules/site_apache/vhosts.d/CentOS/example.com.conf", "puppet:///modules/site_apache/vhosts.d/example.com.conf", "puppet:///modules/apache/vhosts.d/CentOS.7/example.com.conf", "puppet:///modules/apache/vhosts.d/CentOS/example.com.conf", "puppet:///modules/apache/vhosts.d/example.com.conf" ], :path => '/etc/httpd/vhosts.d/example.com.conf', :require => 'File[vhosts_dir]', :notify => 'Service[apache]', :owner => 'root', :group => 0, :mode => '0644', )} it { should_not contain_file('/var/www/htpasswds/example.com') } it { should_not contain_class('apache::includes') } it { should_not contain_class('apache::mod_macro') } it { should_not contain_class('apache::noiplog') } it { should_not contain_class('apache::itk::lock') } it { should_not contain_class('mod_security::itk_plus') } it { should_not contain_class('mod_security') } context 'with params' do let(:params) { { :vhost_destination => '/tmp/a/example.com.conf', :vhost_source => 'modules/my_module/example.com.conf', :htpasswd_file => true, :do_includes => true, :mod_security => true, :use_mod_macro => true, :logmode => 'anonym', } } it { should contain_file('example.com.conf').with( :ensure => 'present', :source => 'puppet:///modules/my_module/example.com.conf', :path => '/tmp/a/example.com.conf', :require => 'File[vhosts_dir]', :notify => 'Service[apache]', :owner => 'root', :group => 0, :mode => '0644', )} it { should contain_file('/var/www/htpasswds/example.com').with( :source => [ "puppet:///modules/site_apache/htpasswds/apache.example.com/example.com", "puppet:///modules/site_apache/htpasswds//example.com", "puppet:///modules/site_apache/htpasswds/example.com" ], :owner => 'root', :group => 0, :mode => '0644', )} it { should contain_class('apache::includes') } it { should contain_class('apache::mod_macro') } it { should contain_class('apache::noiplog') } it { should_not contain_class('apache::itk::lock') } it { should_not contain_class('mod_security::itk_plus') } it { should contain_class('mod_security') } end context 'with content' do let(:params) { { :content => "\n Servername example.com\n" } } it { should contain_file('example.com.conf').with( :ensure => 'present', :path => '/etc/httpd/vhosts.d/example.com.conf', :require => 'File[vhosts_dir]', :notify => 'Service[apache]', :owner => 'root', :group => 0, :mode => '0644', )} it { should contain_file('example.com.conf').with_content( " Servername example.com " )} it { should_not contain_file('/var/www/htpasswds/example.com') } end end end