diff options
author | Claire McQuin <claire@getchef.com> | 2014-06-25 14:31:49 -0700 |
---|---|---|
committer | Claire McQuin <claire@getchef.com> | 2014-06-27 12:43:55 -0700 |
commit | 4c77658ef23c689a1364414f0c7d2bfca47c4dcd (patch) | |
tree | 9d8afce8c642b66e7dc866ea299ebfda08bffe32 /spec/functional/mixin | |
parent | 8fbd370f59a1a4e89c976ce227b0809aca80e660 (diff) | |
download | chef-4c77658ef23c689a1364414f0c7d2bfca47c4dcd.tar.gz |
Add functional test for shell_out_with_systems_locale
Diffstat (limited to 'spec/functional/mixin')
-rw-r--r-- | spec/functional/mixin/shell_out_spec.rb | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/spec/functional/mixin/shell_out_spec.rb b/spec/functional/mixin/shell_out_spec.rb new file mode 100644 index 0000000000..7e57de2a0a --- /dev/null +++ b/spec/functional/mixin/shell_out_spec.rb @@ -0,0 +1,56 @@ +# +# Copyright:: Copyright (c) 2014 Chef Software, Inc. +# 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 'spec_helper' + +describe Chef::Mixin::ShellOut do + include Chef::Mixin::ShellOut + + describe "shell_out_with_systems_locale" do + describe "when environment['LC_ALL'] is not set" do + it "should use the default shell_out setting" do + cmd = if windows? + shell_out_with_systems_locale('echo %LC_ALL%') + else + shell_out_with_systems_locale('echo $LC_ALL') + end + + # From mixlib-shellout/lib/mixlib/shell_out.rb: + # + # * +environment+: a Hash of environment variables to set before the command + # is run. By default, the environment will *always* be set to 'LC_ALL' => 'C' + # to prevent issues with multibyte characters in Ruby 1.8. To avoid this, + # use :environment => nil for *no* extra environment settings, or + # :environment => {'LC_ALL'=>nil, ...} to set other environment settings + # without changing the locale. + cmd.stdout.chomp.should eq 'C' + end + end + + describe "when environment['LC_ALL'] is set" do + it "should use the option's setting" do + cmd = if windows? + shell_out_with_systems_locale('echo %LC_ALL%', :environment => {'LC_ALL' => 'POSIX'}) + else + shell_out_with_systems_locale('echo $LC_ALL', :environment => {'LC_ALL' => 'POSIX'}) + end + + cmd.stdout.chomp.should eq 'POSIX' + end + end + end +end |