--- /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