SwiftLint/Tests/SwiftLintFrameworkTests/ExtendedNSStringTests.swift

25 lines
1.1 KiB
Swift

import Foundation
import SourceKittenFramework
import XCTest
class ExtendedNSStringTests: XCTestCase {
func testLineAndCharacterForByteOffset_forContentsContainingMultibyteCharacters() {
let contents = "" +
"import Foundation\n" + // 18 characters
"class Test {\n" + // 13 characters
"func test() {\n" + // 14 characters
"// 日本語コメント : comment in Japanese\n" + // 33 characters
"// do something\n" + // 16 characters
"}\n" +
"}"
let string = NSString(string: contents)
// A character placed on 80 offset indicates a white-space before 'do' at 5th line.
if let lineAndCharacter = StringView(string).lineAndCharacter(forCharacterOffset: 80) {
XCTAssertEqual(lineAndCharacter.line, 5)
XCTAssertEqual(lineAndCharacter.character, 3)
} else {
XCTFail("NSString.lineAndCharacterForByteOffset should return non-nil tuple.")
}
}
}