Skip to content

Commit b4e7f19

Browse files
committed
Add test that cuts through an emoji
1 parent 74e0b6b commit b4e7f19

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

Tool/Tests/XcodeInspectorTests/EditorRangeConversionTests.swift

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,28 @@ class SourceEditorRangeConversionTests: XCTestCase {
6666
XCTAssertEqual(cursorRange.start, .init(line: 1, character: 3))
6767
XCTAssertEqual(cursorRange.end, .init(line: 3, character: 3))
6868
}
69+
70+
func test_convert_multiline_range_cutting_emoji() {
71+
// undefined behavior
72+
73+
let code = """
74+
import Foundation
75+
import 🎆🎆🎆🎆🎆🎆
76+
77+
class SourceEditorRangeConversionTests {
78+
func testSomething() {
79+
// test
80+
}
81+
}
82+
83+
"""
84+
85+
let range = 26...42 // in the middle of the emoji
86+
let cursorRange = SourceEditor.convertRangeToCursorRange(range, in: code)
87+
88+
XCTAssertEqual(cursorRange.start, .init(line: 1, character: 8))
89+
XCTAssertEqual(cursorRange.end, .init(line: 3, character: 3))
90+
}
6991

7092
func test_convert_range_with_no_code() {
7193
let code = ""

0 commit comments

Comments
 (0)