Skip to content

Commit

Permalink
Merge pull request #482 from TheGrizzlyDev/string-size-spec
Browse files Browse the repository at this point in the history
Add spec for String#size
  • Loading branch information
seven1m authored Jan 30, 2022
2 parents 711b31e + 26cd454 commit 979f10f
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 0 deletions.
40 changes: 40 additions & 0 deletions spec/core/string/shared/length.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# encoding: utf-8

describe :string_length, shared: true do
it "returns the length of self" do
"".send(@method).should == 0
"\x00".send(@method).should == 1
"one".send(@method).should == 3
"two".send(@method).should == 3
"three".send(@method).should == 5
"four".send(@method).should == 4
end

# NATFIXME
xit "returns the length of a string in different encodings" do
utf8_str = 'こにちわ' * 100
utf8_str.size.should == 400
utf8_str.encode(Encoding::UTF_32BE).size.should == 400
utf8_str.encode(Encoding::SHIFT_JIS).size.should == 400
end

it "returns the length of the new self after encoding is changed" do
str = 'こにちわ'
str.send(@method)

str.force_encoding('BINARY').send(@method).should == 12
end

it "returns the correct length after force_encoding(BINARY)" do
utf8 = "あ"
ascii = "a"
concat = utf8 + ascii

concat.encoding.should == Encoding::UTF_8
concat.bytesize.should == 4

concat.size.should == 2
concat.force_encoding(Encoding::ASCII_8BIT)
concat.size.should == 4
end
end
7 changes: 7 additions & 0 deletions spec/core/string/size_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
require_relative '../../spec_helper'
require_relative 'fixtures/classes'
require_relative 'shared/length'

describe "String#size" do
it_behaves_like :string_length, :size
end

0 comments on commit 979f10f

Please sign in to comment.