Flutter Engine
Loading...
Searching...
No Matches
string_range_sanitization_unittests.mm
Go to the documentation of this file.
1
// Copyright 2013 The Flutter Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#include <Foundation/Foundation.h>
6
7
#include "
flutter/fml/platform/darwin/string_range_sanitization.h
"
8
#include "gtest/gtest.h"
9
10
TEST
(StringRangeSanitizationTest, CanHandleUnicode) {
11
auto
result =
fml::RangeForCharacterAtIndex
(
@"😠"
, 1);
12
EXPECT_EQ(result.location, 0UL);
13
EXPECT_EQ(result.length, 2UL);
14
}
15
16
TEST
(StringRangeSanitizationTest, HandlesInvalidRanges) {
17
auto
ns_not_found =
static_cast<
unsigned
long
>
(NSNotFound);
18
EXPECT_EQ(
fml::RangeForCharacterAtIndex
(
@"😠"
, 3).location, ns_not_found);
19
EXPECT_EQ(
fml::RangeForCharacterAtIndex
(
@"😠"
, -1).location, ns_not_found);
20
EXPECT_EQ(
fml::RangeForCharacterAtIndex
(nil, 0).location, ns_not_found);
21
EXPECT_EQ(
fml::RangeForCharactersInRange
(
@"😠"
, NSMakeRange(1, 2)).location, ns_not_found);
22
EXPECT_EQ(
fml::RangeForCharactersInRange
(
@"😠"
, NSMakeRange(3, 0)).location, ns_not_found);
23
EXPECT_EQ(
fml::RangeForCharactersInRange
(nil, NSMakeRange(0, 0)).location, ns_not_found);
24
}
25
26
TEST
(StringRangeSanitizationTest, CanHandleUnicodeRange) {
27
auto
result =
fml::RangeForCharactersInRange
(
@"😠"
, NSMakeRange(1, 0));
28
EXPECT_EQ(result.location, 0UL);
29
EXPECT_EQ(result.length, 0UL);
30
}
31
32
TEST
(StringRangeSanitizationTest, HandlesEndOfRange) {
33
EXPECT_EQ(
fml::RangeForCharacterAtIndex
(
@"1234"
, 4).location, 4UL);
34
EXPECT_EQ(
fml::RangeForCharacterAtIndex
(
@"1234"
, 4).
length
, 0UL);
35
}
length
size_t length
Definition
key_event_handler.cc:41
fml::RangeForCharacterAtIndex
NSRange RangeForCharacterAtIndex(NSString *text, NSUInteger index)
Definition
string_range_sanitization.mm:9
fml::RangeForCharactersInRange
NSRange RangeForCharactersInRange(NSString *text, NSRange range)
Definition
string_range_sanitization.mm:19
string_range_sanitization.h
TEST
TEST(StringRangeSanitizationTest, CanHandleUnicode)
Definition
string_range_sanitization_unittests.mm:10
fml
platform
darwin
string_range_sanitization_unittests.mm
Generated on Thu Nov 6 2025 16:11:22 for Flutter Engine by
1.9.8