summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2023-08-25 00:52:53 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2023-08-26 08:58:02 +0900
commitb054c2fe06598f1141fdc337b10046f41f0e227c (patch)
treede3725523fcaf4aa1e0f1bdcf04c152fab5e01d8 /spec
parent808b06708884bf928b2e9c23ed5dcbbdf6665972 (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.rb10
-rw-r--r--spec/ruby/shared/string/start_with.rb6
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