mirror of
https://github.com/realm/SwiftLint.git
synced 2026-06-06 20:18:40 +00:00
b83e0991b9
The MIT license doesn't require that all files be prepended with this licensing or copyright information. Realm confirmed that they're ok with this change. This will enable some companies to contribute to SwiftLint and the date & authorship information will remain accessible via git source control.
107 lines
3.9 KiB
Swift
107 lines
3.9 KiB
Swift
import Foundation
|
|
@testable import SwiftLintFramework
|
|
import XCTest
|
|
|
|
class DisableAllTests: XCTestCase {
|
|
/// Example violations. Could be replaced with other single violations.
|
|
private let violatingPhrases = [
|
|
"let r = 0\n", // Violates identifier_name
|
|
"let myString:String = \"\"\n", // Violates colon_whitespace
|
|
"// TODO: Some todo\n" // Violates todo
|
|
]
|
|
|
|
// MARK: Violating Phrase
|
|
/// Tests whether example violating phrases trigger when not applying disable rule
|
|
func testViolatingPhrase() {
|
|
for violatingPhrase in violatingPhrases {
|
|
XCTAssertEqual(violations(violatingPhrase).count, 1)
|
|
}
|
|
}
|
|
|
|
// MARK: Enable / Disable Base
|
|
/// Tests whether swiftlint:disable all protects properly
|
|
func testDisableAll() {
|
|
for violatingPhrase in violatingPhrases {
|
|
let protectedPhrase = "// swiftlint:disable all\n" + violatingPhrase
|
|
XCTAssertEqual(violations(protectedPhrase).count, 0)
|
|
}
|
|
}
|
|
|
|
/// Tests whether swiftlint:enable all unprotects properly
|
|
func testEnableAll() {
|
|
for violatingPhrase in violatingPhrases {
|
|
let unprotectedPhrase =
|
|
"// swiftlint:disable all\n" +
|
|
violatingPhrase +
|
|
"// swiftlint:enable all\n" +
|
|
violatingPhrase
|
|
XCTAssertEqual(violations(unprotectedPhrase).count, 1)
|
|
}
|
|
}
|
|
|
|
// MARK: Enable / Disable Previous
|
|
/// Tests whether swiftlint:disable:previous all protects properly
|
|
func testDisableAllPrevious() {
|
|
for violatingPhrase in violatingPhrases {
|
|
let protectedPhrase = violatingPhrase + "// swiftlint:disable:previous all\n"
|
|
XCTAssertEqual(violations(protectedPhrase).count, 0)
|
|
}
|
|
}
|
|
|
|
/// Tests whether swiftlint:enable:previous all unprotects properly
|
|
func testEnableAllPrevious() {
|
|
for violatingPhrase in violatingPhrases {
|
|
let unprotectedPhrase =
|
|
"// swiftlint:disable all\n" +
|
|
violatingPhrase +
|
|
violatingPhrase +
|
|
"// swiftlint:enable:previous all\n"
|
|
XCTAssertEqual(violations(unprotectedPhrase).count, 1)
|
|
}
|
|
}
|
|
|
|
// MARK: Enable / Disable Next
|
|
/// Tests whether swiftlint:disable:next all protects properly
|
|
func testDisableAllNext() {
|
|
for violatingPhrase in violatingPhrases {
|
|
let protectedPhrase = "// swiftlint:disable:next all\n" + violatingPhrase
|
|
XCTAssertEqual(violations(protectedPhrase).count, 0)
|
|
}
|
|
}
|
|
|
|
/// Tests whether swiftlint:enable:next all unprotects properly
|
|
func testEnableAllNext() {
|
|
for violatingPhrase in violatingPhrases {
|
|
let unprotectedPhrase =
|
|
"// swiftlint:disable all\n" +
|
|
violatingPhrase +
|
|
"// swiftlint:enable:next all\n" +
|
|
violatingPhrase
|
|
XCTAssertEqual(violations(unprotectedPhrase).count, 1)
|
|
}
|
|
}
|
|
|
|
// MARK: Enable / Disable This
|
|
/// Tests whether swiftlint:disable:this all protects properly
|
|
func testDisableAllThis() {
|
|
for violatingPhrase in violatingPhrases {
|
|
let rawViolatingPhrase = violatingPhrase.replacingOccurrences(of: "\n", with: "")
|
|
let protectedPhrase = rawViolatingPhrase + "// swiftlint:disable:this all\n"
|
|
XCTAssertEqual(violations(protectedPhrase).count, 0)
|
|
}
|
|
}
|
|
|
|
/// Tests whether swiftlint:enable:next all unprotects properly
|
|
func testEnableAllThis() {
|
|
for violatingPhrase in violatingPhrases {
|
|
let rawViolatingPhrase = violatingPhrase.replacingOccurrences(of: "\n", with: "")
|
|
let unprotectedPhrase =
|
|
"// swiftlint:disable all\n" +
|
|
violatingPhrase +
|
|
rawViolatingPhrase +
|
|
"// swiftlint:enable:this all\n"
|
|
XCTAssertEqual(violations(unprotectedPhrase).count, 1)
|
|
}
|
|
}
|
|
}
|