2017-05-07 08:04:49 -04:00
|
|
|
# -*- encoding: binary -*-
|
2018-03-04 10:09:32 -05:00
|
|
|
require_relative '../../spec_helper'
|
|
|
|
require_relative 'shared/codepoints'
|
|
|
|
require_relative 'shared/each_codepoint_without_block'
|
2017-05-07 08:04:49 -04:00
|
|
|
|
2019-04-28 17:20:11 -04:00
|
|
|
describe "String#codepoints" do
|
|
|
|
it_behaves_like :string_codepoints, :codepoints
|
2017-05-07 08:04:49 -04:00
|
|
|
|
2019-04-28 17:20:11 -04:00
|
|
|
it "returns an Array when no block is given" do
|
|
|
|
"abc".codepoints.should == [?a.ord, ?b.ord, ?c.ord]
|
|
|
|
end
|
2017-05-07 08:04:49 -04:00
|
|
|
|
2019-04-28 17:20:11 -04:00
|
|
|
it "raises an ArgumentError when no block is given if self has an invalid encoding" do
|
|
|
|
s = "\xDF".force_encoding(Encoding::UTF_8)
|
|
|
|
s.valid_encoding?.should be_false
|
2019-07-27 06:40:09 -04:00
|
|
|
-> { s.codepoints }.should raise_error(ArgumentError)
|
2017-05-07 08:04:49 -04:00
|
|
|
end
|
|
|
|
end
|