summaryrefslogtreecommitdiff
path: root/spec/ruby/core/kernel/shared/sprintf_encoding.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/kernel/shared/sprintf_encoding.rb')
-rw-r--r--spec/ruby/core/kernel/shared/sprintf_encoding.rb18
1 files changed, 13 insertions, 5 deletions
diff --git a/spec/ruby/core/kernel/shared/sprintf_encoding.rb b/spec/ruby/core/kernel/shared/sprintf_encoding.rb
index c3d62bf3bb..5ca66b9083 100644
--- a/spec/ruby/core/kernel/shared/sprintf_encoding.rb
+++ b/spec/ruby/core/kernel/shared/sprintf_encoding.rb
@@ -1,11 +1,19 @@
describe :kernel_sprintf_encoding, shared: true do
- def format(*args)
- @method.call(*args)
+ it "can produce a string with valid encoding" do
+ string = @method.call("good day %{valid}", valid: "e")
+ string.encoding.should == Encoding::UTF_8
+ string.valid_encoding?.should be_true
+ end
+
+ it "can produce a string with invalid encoding" do
+ string = @method.call("good day %{invalid}", invalid: "\x80")
+ string.encoding.should == Encoding::UTF_8
+ string.valid_encoding?.should be_false
end
it "returns a String in the same encoding as the format String if compatible" do
string = "%s".force_encoding(Encoding::KOI8_U)
- result = format(string, "dogs")
+ result = @method.call(string, "dogs")
result.encoding.should equal(Encoding::KOI8_U)
end
@@ -13,7 +21,7 @@ describe :kernel_sprintf_encoding, shared: true do
string = "foo %s".force_encoding(Encoding::US_ASCII)
argument = "b\303\274r".force_encoding(Encoding::UTF_8)
- result = format(string, argument)
+ result = @method.call(string, argument)
result.encoding.should equal(Encoding::UTF_8)
end
@@ -22,7 +30,7 @@ describe :kernel_sprintf_encoding, shared: true do
argument = "Ђ".encode('windows-1251')
-> {
- format(string, argument)
+ @method.call(string, argument)
}.should raise_error(Encoding::CompatibilityError)
end
end