diff options
Diffstat (limited to 'spec/ruby/core/encoding/locale_charmap_spec.rb')
| -rw-r--r-- | spec/ruby/core/encoding/locale_charmap_spec.rb | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/spec/ruby/core/encoding/locale_charmap_spec.rb b/spec/ruby/core/encoding/locale_charmap_spec.rb new file mode 100644 index 0000000000..0d77bf227b --- /dev/null +++ b/spec/ruby/core/encoding/locale_charmap_spec.rb @@ -0,0 +1,56 @@ +require_relative '../../spec_helper' + +describe "Encoding.locale_charmap" do + it "returns a String" do + Encoding.locale_charmap.should.instance_of?(String) + end + + describe "when setting LC_ALL=C" do + before :each do + @old_lc_all = ENV['LC_ALL'] + end + + after :each do + ENV['LC_ALL'] = @old_lc_all + end + + # FIXME: Get this working on Windows + platform_is :linux do + platform_is_not :android do + it "returns a value based on the LC_ALL environment variable" do + ENV['LC_ALL'] = 'C' + ruby_exe("print Encoding.locale_charmap").should == 'ANSI_X3.4-1968' + end + end + end + + platform_is :freebsd, :openbsd, :darwin do + it "returns a value based on the LC_ALL environment variable" do + ENV['LC_ALL'] = 'C' + ruby_exe("print Encoding.locale_charmap").should == 'US-ASCII' + end + end + + platform_is :netbsd do + it "returns a value based on the LC_ALL environment variable" do + ENV['LC_ALL'] = 'C' + ruby_exe("print Encoding.locale_charmap").should == '646' + end + end + + platform_is :android do + it "always returns UTF-8" do + ENV['LC_ALL'] = 'C' + ruby_exe("print Encoding.locale_charmap").should == 'UTF-8' + end + end + + platform_is :bsd, :darwin, :linux do + it "is unaffected by assigning to ENV['LC_ALL'] in the same process" do + old_charmap = Encoding.locale_charmap + ENV['LC_ALL'] = 'C' + Encoding.locale_charmap.should == old_charmap + end + end + end +end |
