diff options
author | Tim Smith <tsmith@chef.io> | 2016-07-30 12:27:40 -0700 |
---|---|---|
committer | Tim Smith <tsmith@chef.io> | 2016-07-30 15:54:50 -0700 |
commit | d76ba2bf1e440421f23ea18099dd429bca563d5f (patch) | |
tree | 8ee9dc9d4549b98eb487de03a1b1cfe12e6de517 /spec | |
parent | 30367a3208f032ac79e60cdc71875e732d039fa4 (diff) | |
download | ohai-d76ba2bf1e440421f23ea18099dd429bca563d5f.tar.gz |
Add a plugin for collecting available shellsshells
The exact shell paths vary by OS so it would be really nice to have a list of the shells so you could find the path to bash by walking the array.
Signed-off-by: Tim Smith <tsmith@chef.io>
Diffstat (limited to 'spec')
-rw-r--r-- | spec/unit/plugins/shells_spec.rb | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/spec/unit/plugins/shells_spec.rb b/spec/unit/plugins/shells_spec.rb new file mode 100644 index 00000000..4c0381aa --- /dev/null +++ b/spec/unit/plugins/shells_spec.rb @@ -0,0 +1,56 @@ +# +# Author:: Tim Smith (<tsmith@chef.io>) +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper.rb") + +describe Ohai::System, "plugin shells" do + let(:plugin) { get_plugin("shells") } + + # content from OS X 10.11 + shell_file = ["# List of acceptable shells for chpass(1).\n", + "# Ftpd will not allow users to connect who are not using\n", + "# one of these shells.\n", + "\n", + "/bin/bash\n", + "/bin/csh\n", + "/bin/ksh\n", + "/bin/sh\n", + "/bin/tcsh\n", + "/bin/zsh\n"] + + let(:shell_file_content) { shell_file } + + it "does not set shells attribute if /etc/shells does not exist" do + allow(::File).to receive(:exist?).with("/etc/shells").and_return(false) + plugin.run + expect(plugin).not_to have_key(:shells) + end + + it "sets shells to an array of shells if /etc/shells exists" do + allow(::File).to receive(:readlines).with("/etc/shells").and_return(shell_file_content) + allow(::File).to receive(:exist?).with("/etc/shells").and_return(true) + plugin.run + expect(plugin.shells).to match_array([ + "/bin/bash", + "/bin/csh", + "/bin/ksh", + "/bin/sh", + "/bin/tcsh", + "/bin/zsh", + ]) + end +end |