diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2023-08-25 00:52:53 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2023-08-26 08:58:02 +0900 |
commit | b054c2fe06598f1141fdc337b10046f41f0e227c (patch) | |
tree | de3725523fcaf4aa1e0f1bdcf04c152fab5e01d8 /spec | |
parent | 808b06708884bf928b2e9c23ed5dcbbdf6665972 (diff) |
[Bug #19784] Fix behaviors against prefix with broken encoding
- String#start_with?
- String#delete_prefix
- String#delete_prefix!
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/8296
Diffstat (limited to 'spec')
-rw-r--r-- | spec/ruby/core/string/start_with_spec.rb | 10 | ||||
-rw-r--r-- | spec/ruby/shared/string/start_with.rb | 6 |
2 files changed, 10 insertions, 6 deletions
diff --git a/spec/ruby/core/string/start_with_spec.rb b/spec/ruby/core/string/start_with_spec.rb index 3833289f96..81eed47f96 100644 --- a/spec/ruby/core/string/start_with_spec.rb +++ b/spec/ruby/core/string/start_with_spec.rb @@ -7,12 +7,14 @@ describe "String#start_with?" do it_behaves_like :start_with, :to_s # Here and not in the shared examples because this is invalid as a Symbol - it "does not check that we are not starting to match at the head of a character" do + it "matches part of a character with the same part" do "\xA9".should.start_with?("\xA9") # A9 is not a character head for UTF-8 end - it "does not check we are matching only part of a character" do - "\xe3\x81\x82".size.should == 1 - "\xe3\x81\x82".should.start_with?("\xe3") + ruby_bug "#19784", ""..."3.3" do + it "checks we are matching only part of a character" do + "\xe3\x81\x82".size.should == 1 + "\xe3\x81\x82".should_not.start_with?("\xe3") + end end end diff --git a/spec/ruby/shared/string/start_with.rb b/spec/ruby/shared/string/start_with.rb index 6932a017b6..91fc50c4cd 100644 --- a/spec/ruby/shared/string/start_with.rb +++ b/spec/ruby/shared/string/start_with.rb @@ -70,7 +70,9 @@ describe :start_with, shared: true do $1.should be_nil end - it "does not check that we are not matching part of a character" do - "\xC3\xA9".send(@method).should.start_with?("\xC3") + ruby_bug "#19784", ""..."3.3" do + it "checks that we are not matching part of a character" do + "\xC3\xA9".send(@method).should_not.start_with?("\xC3") + end end end |