summaryrefslogtreecommitdiff
path: root/spec/ruby/command_line/dash_upper_e_spec.rb
blob: b3c6ce262b7888abf5b0684522892d3cea8c09e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
require_relative '../spec_helper'

describe "ruby -E" do
  it "sets the external encoding with '-E external'" do
    result = ruby_exe("print Encoding.default_external", options: '-E euc-jp')
    result.should == "EUC-JP"
  end

  platform_is_not :windows do
    it "also sets the filesystem encoding with '-E external'" do
      result = ruby_exe("print Encoding.find('filesystem')", options: '-E euc-jp')
      result.should == "EUC-JP"
    end
  end

  it "sets the external encoding with '-E external:'" do
    result = ruby_exe("print Encoding.default_external", options: '-E Shift_JIS:')
    result.should == "Shift_JIS"
  end

  it "sets the internal encoding with '-E :internal'" do
    ruby_exe("print Encoding.default_internal", options: '-E :SHIFT_JIS').
      should == 'Shift_JIS'
  end

  it "sets the external and internal encodings with '-E external:internal'" do
    ruby_exe("puts Encoding.default_external, Encoding.default_internal", options: '-E euc-jp:SHIFT_JIS').
      should == "EUC-JP\nShift_JIS\n"
  end

  it "raises a RuntimeError if used with -U" do
    ruby_exe("p 1",
             options: '-Eascii:ascii -U',
             args: '2>&1').should =~ /RuntimeError/
  end
end