1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
This commit is contained in:
Benoit Daloze 2019-04-28 23:20:11 +02:00
parent 994833085a
commit 79671ec57e
135 changed files with 4415 additions and 4885 deletions

View file

@ -27,40 +27,38 @@ describe "ENV.[]" do
end
end
with_feature :encoding do
describe "ENV.[]" do
before :each do
@variable = "env_element_reference_encoding_specs"
describe "ENV.[]" do
before :each do
@variable = "env_element_reference_encoding_specs"
@external = Encoding.default_external
@internal = Encoding.default_internal
@external = Encoding.default_external
@internal = Encoding.default_internal
Encoding.default_external = Encoding::ASCII_8BIT
end
Encoding.default_external = Encoding::ASCII_8BIT
end
after :each do
Encoding.default_external = @external
Encoding.default_internal = @internal
after :each do
Encoding.default_external = @external
Encoding.default_internal = @internal
ENV.delete @variable
end
ENV.delete @variable
end
it "uses the locale encoding if Encoding.default_internal is nil" do
Encoding.default_internal = nil
it "uses the locale encoding if Encoding.default_internal is nil" do
Encoding.default_internal = nil
locale = Encoding.find('locale')
locale = Encoding::ASCII_8BIT if locale == Encoding::US_ASCII
ENV[@variable] = "\xC3\xB8"
ENV[@variable].encoding.should == locale
end
locale = Encoding.find('locale')
locale = Encoding::ASCII_8BIT if locale == Encoding::US_ASCII
ENV[@variable] = "\xC3\xB8"
ENV[@variable].encoding.should == locale
end
it "transcodes from the locale encoding to Encoding.default_internal if set" do
# We cannot reliably know the locale encoding, so we merely check that
# the result string has the expected encoding.
ENV[@variable] = ""
Encoding.default_internal = Encoding::IBM437
it "transcodes from the locale encoding to Encoding.default_internal if set" do
# We cannot reliably know the locale encoding, so we merely check that
# the result string has the expected encoding.
ENV[@variable] = ""
Encoding.default_internal = Encoding::IBM437
ENV[@variable].encoding.should equal(Encoding::IBM437)
end
ENV[@variable].encoding.should equal(Encoding::IBM437)
end
end

View file

@ -25,39 +25,37 @@ describe :env_each, shared: true do
end
it_should_behave_like :enumeratorized_with_origin_size
with_feature :encoding do
describe "with encoding" do
before :each do
@external = Encoding.default_external
@internal = Encoding.default_internal
describe "with encoding" do
before :each do
@external = Encoding.default_external
@internal = Encoding.default_internal
Encoding.default_external = Encoding::ASCII_8BIT
Encoding.default_external = Encoding::ASCII_8BIT
@locale_encoding = Encoding.find "locale"
@locale_encoding = Encoding.find "locale"
end
after :each do
Encoding.default_external = @external
Encoding.default_internal = @internal
end
it "uses the locale encoding when Encoding.default_internal is nil" do
Encoding.default_internal = nil
ENV.send(@method) do |key, value|
key.encoding.should equal(@locale_encoding)
value.encoding.should equal(@locale_encoding)
end
end
after :each do
Encoding.default_external = @external
Encoding.default_internal = @internal
end
it "transcodes from the locale encoding to Encoding.default_internal if set" do
Encoding.default_internal = internal = Encoding::IBM437
it "uses the locale encoding when Encoding.default_internal is nil" do
Encoding.default_internal = nil
ENV.send(@method) do |key, value|
key.encoding.should equal(@locale_encoding)
value.encoding.should equal(@locale_encoding)
end
end
it "transcodes from the locale encoding to Encoding.default_internal if set" do
Encoding.default_internal = internal = Encoding::IBM437
ENV.send(@method) do |key, value|
key.encoding.should equal(internal)
if value.ascii_only?
value.encoding.should equal(internal)
end
ENV.send(@method) do |key, value|
key.encoding.should equal(internal)
if value.ascii_only?
value.encoding.should equal(internal)
end
end
end

View file

@ -24,36 +24,34 @@ describe "ENV.shift" do
end
end
with_feature :encoding do
describe "ENV.shift" do
before :each do
@orig = ENV.to_hash
@external = Encoding.default_external
@internal = Encoding.default_internal
describe "ENV.shift" do
before :each do
@orig = ENV.to_hash
@external = Encoding.default_external
@internal = Encoding.default_internal
Encoding.default_external = Encoding::ASCII_8BIT
end
Encoding.default_external = Encoding::ASCII_8BIT
end
after :each do
Encoding.default_external = @external
Encoding.default_internal = @internal
ENV.replace @orig
end
after :each do
Encoding.default_external = @external
Encoding.default_internal = @internal
ENV.replace @orig
end
it "uses the locale encoding if Encoding.default_internal is nil" do
Encoding.default_internal = nil
it "uses the locale encoding if Encoding.default_internal is nil" do
Encoding.default_internal = nil
pair = ENV.shift
pair.first.encoding.should equal(Encoding.find("locale"))
pair.last.encoding.should equal(Encoding.find("locale"))
end
pair = ENV.shift
pair.first.encoding.should equal(Encoding.find("locale"))
pair.last.encoding.should equal(Encoding.find("locale"))
end
it "transcodes from the locale encoding to Encoding.default_internal if set" do
Encoding.default_internal = Encoding::IBM437
it "transcodes from the locale encoding to Encoding.default_internal if set" do
Encoding.default_internal = Encoding::IBM437
pair = ENV.shift
pair.first.encoding.should equal(Encoding::IBM437)
pair.last.encoding.should equal(Encoding::IBM437)
end
pair = ENV.shift
pair.first.encoding.should equal(Encoding::IBM437)
pair.last.encoding.should equal(Encoding::IBM437)
end
end