Files
SwiftLint/Tests/FrameworkTests/StringViewExtensionTests.swift
Danny Mösch 15b285527a Separate built-in rule tests from framework tests (#5924)
* Short names for test modules
* Lint plugins and `Package.swift` in integration tests
* Simplify and merge file groups in Bazel
* Move common functions to `TestHelpers`
2024-12-30 12:26:46 +01:00

23 lines
1011 B
Swift

import SourceKittenFramework
import XCTest
final class StringViewExtensionTests: SwiftLintTestCase {
func testByteOffsetInvalidCases() {
let view = StringView("")
XCTAssertNil(view.byteOffset(forLine: 0, bytePosition: 1))
XCTAssertNil(view.byteOffset(forLine: 1, bytePosition: 0))
XCTAssertNil(view.byteOffset(forLine: -10, bytePosition: 1))
XCTAssertNil(view.byteOffset(forLine: 0, bytePosition: -11))
XCTAssertNil(view.byteOffset(forLine: 2, bytePosition: 1))
}
func testByteOffsetFromLineAndBytePosition() {
XCTAssertEqual(StringView("").byteOffset(forLine: 1, bytePosition: 1), 0)
XCTAssertEqual(StringView("a").byteOffset(forLine: 1, bytePosition: 1), 0)
XCTAssertEqual(StringView("aaa").byteOffset(forLine: 1, bytePosition: 3), 2)
XCTAssertEqual(StringView("a🍰a").byteOffset(forLine: 1, bytePosition: 6), 5)
XCTAssertEqual(StringView("a🍰a\na").byteOffset(forLine: 2, bytePosition: 1), 7)
}
}