Update concat
[mirror/dsa-puppet.git] / 3rdparty / modules / concat / spec / acceptance / concat_spec.rb
index c5c9727..3e24a58 100644 (file)
@@ -5,28 +5,40 @@ case fact('osfamily')
     username = 'root'
     groupname = 'system'
     scriptname = 'concatfragments.rb'
-    vardir = default['puppetvardir']
+    vardir = default.puppet['vardir']
+    if vardir.nil? or vardir == ''
+      vardir = '/opt/puppetlabs/puppet/cache'
+    end
   when 'Darwin'
     username = 'root'
     groupname = 'wheel'
     scriptname = 'concatfragments.rb'
-    vardir = default['puppetvardir']
+    vardir = default.puppet['vardir']
+    if vardir.nil? or vardir == ''
+      vardir = '/opt/puppetlabs/puppet/cache'
+    end
   when 'windows'
     username = 'Administrator'
     groupname = 'Administrators'
     scriptname = 'concatfragments.rb'
-    result = on default, "echo #{default['puppetvardir']}"
+    result = on default, "echo #{default.puppet['vardir']}"
     vardir = result.raw_output.chomp
   when 'Solaris'
     username = 'root'
     groupname = 'root'
     scriptname = 'concatfragments.rb'
-    vardir = default['puppetvardir']
+    vardir = default.puppet['vardir']
+    if vardir.nil? or vardir == ''
+      vardir = '/opt/puppetlabs/puppet/cache'
+    end
   else
     username = 'root'
     groupname = 'root'
     scriptname = 'concatfragments.rb'
-    vardir = default['puppetvardir']
+    vardir = default.puppet['vardir']
+    if vardir.nil? or vardir == ''
+      vardir = '/opt/puppetlabs/puppet/cache'
+    end
 end
 
 describe 'basic concat test' do
@@ -38,56 +50,6 @@ describe 'basic concat test' do
       apply_manifest(pp, :catch_failures => true)
       apply_manifest(pp, :catch_changes => true)
     end
-
-    describe file("#{vardir}/concat") do
-      it { should be_directory }
-      it { should be_owned_by username }
-      it("should be mode", :unless => (fact('osfamily') == 'AIX' or fact('osfamily') == 'windows')) {
-        should be_mode 755
-      }
-    end
-    describe file("#{vardir}/concat/bin") do
-      it { should be_directory }
-      it { should be_owned_by username }
-      it("should be mode", :unless => (fact('osfamily') == 'AIX' or fact('osfamily') == 'windows')) {
-        should be_mode 755
-      }
-    end
-    describe file("#{vardir}/concat/bin/#{scriptname}") do
-      it { should be_file }
-      it { should be_owned_by username }
-      it("should be mode", :unless => (fact('osfamily') == 'AIX' or fact('osfamily') == 'windows')) {
-        should be_mode 755
-      }
-    end
-    describe file("#{vardir}/concat/#{safe_basedir}_file") do
-      it { should be_directory }
-      it { should be_owned_by username }
-      it("should be mode", :unless => (fact('osfamily') == 'AIX' or fact('osfamily') == 'windows')) {
-        should be_mode 750
-      }
-    end
-    describe file("#{vardir}/concat/#{safe_basedir}_file/fragments") do
-      it { should be_directory }
-      it { should be_owned_by username }
-      it("should be mode", :unless => (fact('osfamily') == 'AIX' or fact('osfamily') == 'windows')) {
-        should be_mode 750
-      }
-    end
-    describe file("#{vardir}/concat/#{safe_basedir}_file/fragments.concat") do
-      it { should be_file }
-      it { should be_owned_by username }
-      it("should be mode", :unless => (fact('osfamily') == 'AIX' or fact('osfamily') == 'windows')) {
-        should be_mode 640
-      }
-    end
-    describe file("#{vardir}/concat/#{safe_basedir}_file/fragments.concat.out") do
-      it { should be_file }
-      it { should be_owned_by username }
-      it("should be mode", :unless => (fact('osfamily') == 'AIX' or fact('osfamily') == 'windows')) {
-        should be_mode 640
-      }
-    end
   end
 
   context 'owner/group root' do
@@ -133,20 +95,6 @@ describe 'basic concat test' do
         should match '2'
       }
     end
-    describe file("#{vardir}/concat/#{safe_basedir}_file/fragments/01_1") do
-      it { should be_file }
-      it { should be_owned_by username }
-      it("should be mode", :unless => (fact('osfamily') == 'AIX' or fact('osfamily') == 'windows')) {
-        should be_mode 640
-      }
-    end
-    describe file("#{vardir}/concat/#{safe_basedir}_file/fragments/02_2") do
-      it { should be_file }
-      it { should be_owned_by username }
-      it("should be mode", :unless => (fact('osfamily') == 'AIX' or fact('osfamily') == 'windows')) {
-        should be_mode 640
-      }
-    end
   end
 
   context 'ensure' do
@@ -209,6 +157,69 @@ describe 'basic concat test' do
         apply_manifest(pp, :catch_changes => true)
       end
 
+      describe file("#{basedir}/file") do
+        it { should_not be_file }
+      end
+    end
+    context 'works when set to present with path that has special characters' do
+      filename = fact('osfamily') == 'windows' ? 'file(1)' : 'file(1:2)'
+
+      before(:all) do
+        pp = <<-EOS
+        file { '#{basedir}':
+          ensure => directory,
+        }
+        EOS
+        apply_manifest(pp)
+      end
+      pp="
+        concat { '#{filename}':
+          ensure => present,
+          path   => '#{basedir}/#{filename}',
+          mode   => '0644',
+        }
+        concat::fragment { '1':
+          target  => '#{filename}',
+          content => '1',
+          order   => '01',
+        }
+      "
+
+      it_behaves_like 'successfully_applied', pp
+
+      describe file("#{basedir}/#{filename}") do
+        it { should be_file }
+        it("should be mode", :unless => (fact('osfamily') == 'AIX' or fact('osfamily') == 'windows')) {
+          should be_mode 644
+        }
+        its(:content) { should match '1' }
+      end
+    end
+    context 'noop properly' do
+      before(:all) do
+        pp = <<-EOS
+        file { '#{basedir}':
+          ensure => directory,
+        }
+        EOS
+        apply_manifest(pp)
+      end
+      pp="
+        concat { 'file':
+          ensure => present,
+          path   => '#{basedir}/file',
+          mode   => '0644',
+          noop   => true,
+        }
+        concat::fragment { '1':
+          target  => 'file',
+          content => '1',
+          order   => '01',
+        }
+      "
+
+      it_behaves_like 'successfully_applied', pp
+
       describe file("#{basedir}/file") do
         it { should_not be_file }
       end