mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-28 19:59:17 +00:00
LibUnicode: Avoid rejecting end-of-text position as a valid boundary
When the cursor was positioned at the end of text, attempting to move it left(using the left arrow key) would fail because align_boundary() was rejecting the end-of-text position as a valid boundary.
This commit is contained in:
parent
0b23717bc9
commit
8ec72d6906
Notes:
github-actions[bot]
2025-04-11 19:31:19 +00:00
Author: https://github.com/mikiubo
Commit: 8ec72d6906
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/4273
Reviewed-by: https://github.com/trflynn89 ✅
2 changed files with 38 additions and 18 deletions
|
@ -136,11 +136,23 @@ TEST_CASE(out_of_bounds)
|
|||
auto segmenter = Unicode::Segmenter::create(Unicode::SegmenterGranularity::Word);
|
||||
segmenter->set_segmented_text(text);
|
||||
|
||||
auto result = segmenter->previous_boundary(text.byte_count());
|
||||
auto result = segmenter->previous_boundary(text.byte_count() + 1);
|
||||
EXPECT(result.has_value());
|
||||
|
||||
result = segmenter->next_boundary(text.byte_count() + 1);
|
||||
EXPECT(!result.has_value());
|
||||
|
||||
result = segmenter->previous_boundary(text.byte_count());
|
||||
EXPECT(result.has_value());
|
||||
|
||||
result = segmenter->next_boundary(text.byte_count());
|
||||
EXPECT(!result.has_value());
|
||||
|
||||
result = segmenter->next_boundary(0);
|
||||
EXPECT(result.has_value());
|
||||
|
||||
result = segmenter->previous_boundary(0);
|
||||
EXPECT(!result.has_value());
|
||||
}
|
||||
{
|
||||
auto text = MUST(AK::utf8_to_utf16("foo"sv));
|
||||
|
@ -148,10 +160,22 @@ TEST_CASE(out_of_bounds)
|
|||
auto segmenter = Unicode::Segmenter::create(Unicode::SegmenterGranularity::Word);
|
||||
segmenter->set_segmented_text(Utf16View { text });
|
||||
|
||||
auto result = segmenter->previous_boundary(text.size());
|
||||
auto result = segmenter->previous_boundary(text.size() + 1);
|
||||
EXPECT(result.has_value());
|
||||
|
||||
result = segmenter->next_boundary(text.size() + 1);
|
||||
EXPECT(!result.has_value());
|
||||
|
||||
result = segmenter->previous_boundary(text.size());
|
||||
EXPECT(result.has_value());
|
||||
|
||||
result = segmenter->next_boundary(text.size());
|
||||
EXPECT(!result.has_value());
|
||||
|
||||
result = segmenter->next_boundary(0);
|
||||
EXPECT(result.has_value());
|
||||
|
||||
result = segmenter->previous_boundary(0);
|
||||
EXPECT(!result.has_value());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue