Initial Commit
This commit is contained in:
76
Tests/TextualAutoLayoutTests/TextualAutoLayoutTests.swift
Normal file
76
Tests/TextualAutoLayoutTests/TextualAutoLayoutTests.swift
Normal file
@@ -0,0 +1,76 @@
|
||||
import XCTest
|
||||
@testable import TextualAutoLayout
|
||||
|
||||
final class TextualAutoLayoutTests: XCTestCase {
|
||||
var parent, A, B: ConstraintView!
|
||||
|
||||
override func setUp() {
|
||||
parent = ConstraintView()
|
||||
A = ConstraintView()
|
||||
B = ConstraintView()
|
||||
parent.addSubview(A)
|
||||
parent.addSubview(B)
|
||||
}
|
||||
|
||||
func testBasic() {
|
||||
let x = A.bottomAnchor =&= B.topAnchor + 20.3 | .defaultLow
|
||||
XCTAssertEqual(x.relation, NSLayoutConstraint.Relation.equal)
|
||||
XCTAssertEqual(x.priority, ConstraintPriority.defaultLow)
|
||||
XCTAssertEqual(x.constant, 20.3)
|
||||
XCTAssertEqual(x.isActive, true)
|
||||
}
|
||||
|
||||
func testDimensional() {
|
||||
let x = A.heightAnchor =<= 2 * B.widthAnchor - 4
|
||||
XCTAssertEqual(x.relation, NSLayoutConstraint.Relation.lessThanOrEqual)
|
||||
XCTAssertEqual(x.priority, ConstraintPriority.required)
|
||||
XCTAssertEqual(x.multiplier, 2)
|
||||
XCTAssertEqual(x.constant, -4)
|
||||
XCTAssertEqual(x.isActive, true)
|
||||
|
||||
XCTAssertEqual((A.widthAnchor =>= 2 * A.heightAnchor).constant, 0)
|
||||
XCTAssertEqual((A.widthAnchor =<= 250).constant, 250)
|
||||
}
|
||||
|
||||
func testIntrinsicContent() {
|
||||
A.constrainHuggingCompression(.vertical, .required)
|
||||
// newly set values
|
||||
XCTAssertEqual(A.contentCompressionResistancePriority(for: .vertical), ConstraintPriority.required)
|
||||
XCTAssertEqual(A.contentHuggingPriority(for: .vertical), ConstraintPriority.required)
|
||||
// default values
|
||||
XCTAssertEqual(A.contentCompressionResistancePriority(for: .horizontal), ConstraintPriority.defaultHigh)
|
||||
XCTAssertEqual(A.contentHuggingPriority(for: .horizontal), ConstraintPriority.defaultLow)
|
||||
}
|
||||
|
||||
func testReturnConstraint() {
|
||||
XCTAssertEqual((A.rightAnchor =&= B.leftAnchor).firstItem as? ConstraintView, A)
|
||||
}
|
||||
|
||||
func testViewMultiConstraint() {
|
||||
A.anchor([.left, .right, .top], to: parent!, padding: 76) | .defaultHigh
|
||||
let x = parent.constraints
|
||||
XCTAssertEqual(x.count, 3)
|
||||
XCTAssertEqual(A.translatesAutoresizingMaskIntoConstraints, false)
|
||||
XCTAssertEqual(parent.translatesAutoresizingMaskIntoConstraints, true)
|
||||
|
||||
for u in x {
|
||||
XCTAssertEqual(u.relation, NSLayoutConstraint.Relation.equal)
|
||||
XCTAssertEqual(u.priority, ConstraintPriority.defaultHigh)
|
||||
XCTAssertEqual(u.constant, 76)
|
||||
XCTAssertEqual(u.firstAttribute, u.secondAttribute)
|
||||
XCTAssertEqual(u.isActive, true)
|
||||
|
||||
let first = u.firstItem as? ConstraintView
|
||||
let second = u.secondItem as? ConstraintView
|
||||
if u.firstAttribute == .right {
|
||||
XCTAssertEqual(first, parent)
|
||||
XCTAssertEqual(second, A)
|
||||
} else {
|
||||
XCTAssertEqual(first, A)
|
||||
XCTAssertEqual(second, parent)
|
||||
}
|
||||
}
|
||||
x.setActive(false)
|
||||
for u in x { XCTAssertEqual(u.isActive, false) }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user