Files
SwiftLint/Tests/CoreTests/StringExtensionTests.swift
2025-10-08 08:12:05 +02:00

50 lines
2.1 KiB
Swift

import SwiftLintCore
import TestHelpers
import XCTest
final class StringExtensionTests: SwiftLintTestCase {
func testRelativePathExpression() {
XCTAssertEqual("Folder/Test", "Root/Folder/Test".path(relativeTo: "Root"))
XCTAssertEqual("Test", "Root/Folder/Test".path(relativeTo: "Root/Folder"))
XCTAssertEqual("", "Root/Folder/Test".path(relativeTo: "Root/Folder/Test"))
XCTAssertEqual("../Test", "Root/Folder/Test".path(relativeTo: "Root/Folder/SubFolder"))
XCTAssertEqual("../..", "Root".path(relativeTo: "Root/Folder/SubFolder"))
XCTAssertEqual("../../OtherFolder/Test", "Root/OtherFolder/Test".path(relativeTo: "Root/Folder/SubFolder"))
XCTAssertEqual("../MyFolder123", "Folder/MyFolder123".path(relativeTo: "Folder/MyFolder"))
XCTAssertEqual("../MyFolder123", "Folder/MyFolder123".path(relativeTo: "Folder/MyFolder/"))
XCTAssertEqual("Test", "Root////Folder///Test/".path(relativeTo: "Root//Folder////"))
XCTAssertEqual("Root/Folder/Test", "Root/Folder/Test/".path(relativeTo: ""))
}
func testIndent() {
XCTAssertEqual("string".indent(by: 3), " string")
XCTAssertEqual(" string".indent(by: 2), " string")
XCTAssertEqual("""
1
2
3
""".indent(by: 2), """
1
2
3
"""
)
}
func testCharacterPosition() {
XCTAssertNil("string".characterPosition(of: -1))
XCTAssertEqual("string".characterPosition(of: 0), 0)
XCTAssertEqual("string".characterPosition(of: 1), 1)
XCTAssertNil("string".characterPosition(of: 6))
XCTAssertNil("string".characterPosition(of: 7))
XCTAssertEqual("s🤵🏼‍♀️s".characterPosition(of: 0), 0)
XCTAssertEqual("s🤵🏼‍♀️s".characterPosition(of: 1), 1)
for bytes in 2...17 {
XCTAssertNil("s🤵🏼‍♀️s".characterPosition(of: bytes))
}
XCTAssertEqual("s🤵🏼‍♀️s".characterPosition(of: 18), 2)
XCTAssertNil("s🤵🏼‍♀️s".characterPosition(of: 19))
}
}