Report abuse

--- /dev/null	2008-05-16 09:22:08.054002371 -0700
+++ selinux.rb	2008-05-16 13:27:43.000000000 -0700
@@ -0,0 +1,136 @@
+#!/usr/bin/env ruby
+
+require File.dirname(__FILE__) + '/../../spec_helper'
+
+selboolean_provider = Puppet::Type.type(:selboolean).provider(:getsetsebool)
+
+describe selboolean_provider, " when manipulating boolean values" do
+	before :each do
+		@bool = Puppet::Type.type(:selboolean)
+	end
+	it "should set a boolean" do
+		@bool = { :name => "user_ping",
+		        :value => "off",
+			:persistent => false }
+		provider = selboolean_provider.new(@bool)
+		provider.setsebool
+	end
+	it "should have a name of 'user_ping'" do
+		@bool = { :name => "user_ping",
+		        :value => "off",
+			:persistent => false }
+		provider = selboolean_provider.new(@bool)
+		provider.getsebool(:name).should == 'user_ping'
+	end
+	it "should have a value of 'on'" do
+		@bool = { :name => "user_ping",
+		        :value => "on",
+			:persistent => false }
+		provider = selboolean_provider.new(@bool)
+		provider.getsebool(:value).should == 'on'
+	end
+	it "should have a value of 'off'" do
+		@bool = { :name => "user_ping",
+		        :value => "off",
+			:persistent => false }
+		provider = selboolean_provider.new(@bool)
+		provider.getsebool(:value).should == 'off'
+	end
+	it "should have persistence" do
+		@bool = { :name => "user_ping",
+		        :value => "off",
+			:persistent => true }
+		provider = selboolean_provider.new(@bool)
+		provider.getsebool(:value).should be_true
+	end
+	it "should not have persistence" do
+		@bool = { :name => "user_ping",
+		        :value => "off",
+			:persistent => false }
+		provider = selboolean_provider.new(@bool)
+		provider.getsebool(:value).should be_false
+	end
+end
+
+selmodule_provider = Puppet::Type.type(:selmodule).provider(:semodule)
+
+describe selmodule_provider, " when working with policy modules" do
+	it "should install a module"
+	it "should remove a module"
+	it "should upgrade a module when the version is larger"
+	it "should not upgrade a module when the version is smaller"
+	it "should list a module"
+end
+
+describe Puppet::Type::File, " when manipulating file contexts" do
+	before :each do
+		@file = Puppet.type(:file).create(
+			:path => "/tmp/foo",
+			:ensure => "file"
+		)
+	end
+	it "should use :seluser to get/set an SELinux user file context attribute" do
+		@file[:seltype] = "type_t"
+		@file[:seltype].should == "type_t"
+	end
+	it "should use :seluser to get/set an SELinux role file context attribute" do
+		@file[:selrole] = "role_r"
+		@file[:selrole].should == "role_r"
+	end
+	it "should use :seluser to get/set an SELinux user file context attribute" do
+		@file[:seluser] = "user_u"
+		@file[:seluser].should == "user_u"
+	end
+end
+
+describe Puppet::Type::Selboolean, " when manipulating booleans" do
+	before :each do
+		@bool = Puppet::Type.type(:selboolean)
+	end
+	it "should set the boolean name" do
+		@bool = { :name => "foo" }
+		@bool[:name].should == "foo"
+	end
+	it "should set the boolean value to on" do
+		@bool = { :value => "on" }
+		@bool[:value].should == "on"
+	end
+	it "should set the boolean value to off" do
+		@bool = { :value => "off" }
+		@bool[:value].should == "off"
+	end
+	it "should set the boolean persistence to true" do
+		@bool = { :persistent => "true" }
+		@bool[:persistent].should == "true"
+	end
+	it "should set the boolean persistence to false" do
+		@bool = { :persistent => "false" }
+		@bool[:persistent].should == "false"
+	end
+end
+
+describe Puppet::Type::Selmodule, " when checking policy modules" do
+	before :each do
+		@module = Puppet::Type.type(:selmodule)
+	end
+	it "should set the module name" do
+		@module = { :name => "foo" }
+		@module[:name].should == "foo"
+	end
+	it "should set the module dir" do
+		@module = { :selmoduledir => "/some/path" }
+		@module[:selmoduledir].should == "/some/path"
+	end
+	it "should set the module path" do
+		@module = { :selmodulepath => "/some/path/to/foo.pp" }
+		@module[:selmodulepath].should == "/some/path/to/foo.pp"
+	end
+	it "should set the syncversion value to true" do
+		@module = { :syncversion => true }
+		@module[:syncversion].should be_true
+	end
+	it "should set the syncversion value to false" do
+		@module = { :syncversion => false }
+		@module[:syncversion].should be_false
+	end
+end