Increase test coverage and fix bugs

This commit is contained in:
Robert Payne 2016-09-02 00:54:18 +12:00
parent 0219f730a7
commit 17db4dee15
2 changed files with 96 additions and 11 deletions

View File

@ -52,25 +52,21 @@ extension ConstraintInsets: ConstraintInsetTarget {
extension ConstraintInsetTarget {
internal var constraintInsetTargetValue: ConstraintInsets {
let insets: ConstraintInsets
if let amount = self as? ConstraintInsets {
insets = amount
return amount
} else if let amount = self as? Float {
insets = ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount))
return ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount))
} else if let amount = self as? Double {
insets = ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount))
return ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount))
} else if let amount = self as? CGFloat {
insets = ConstraintInsets(top: amount, left: amount, bottom: amount, right: amount)
return ConstraintInsets(top: amount, left: amount, bottom: amount, right: amount)
} else if let amount = self as? Int {
insets = ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount))
return ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount))
} else if let amount = self as? UInt {
insets = ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount))
return ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount))
} else {
insets = ConstraintInsets(top: 0, left: 0, bottom: 0, right: 0)
return ConstraintInsets(top: 0, left: 0, bottom: 0, right: 0)
}
return ConstraintInsets(top: insets.top, left: insets.left, bottom: -insets.bottom, right: -insets.right)
}
}

View File

@ -115,6 +115,7 @@ class SnapKitTests: XCTestCase {
}
func testRemakeConstraints() {
let v1 = View()
let v2 = View()
@ -265,6 +266,94 @@ class SnapKitTests: XCTestCase {
XCTAssertEqual(constraints[3].constant, 50, "Should be 50")
}
func testUpdateReferencedConstraints() {
let v1 = View()
let v2 = View()
self.container.addSubview(v1)
self.container.addSubview(v2)
var c1: Constraint! = nil
var c2: Constraint! = nil
v1.snp.makeConstraints { (make) -> Void in
c1 = make.top.equalTo(v2.snp.top).offset(50).constraint
c2 = make.left.equalTo(v2.snp.top).offset(25).constraint
return
}
XCTAssertEqual(self.container.snp_constraints.count, 2, "Should have 2 constraints")
let before = (self.container.snp_constraints as! [NSLayoutConstraint]).sorted { $0.constant > $1.constant }
XCTAssertEqual(before[0].constant, 50, "Should be 50")
XCTAssertEqual(before[1].constant, 25, "Should be 25")
c1.update(offset: 15)
c2.update(offset: 20)
XCTAssertEqual(self.container.snp_constraints.count, 2, "Should have 2 constraints")
XCTAssertEqual(before[0].constant, 15, "Should be 15")
XCTAssertEqual(before[1].constant, 20, "Should be 20")
}
func testInsetsAsConstraintsConstant() {
let view = View()
self.container.addSubview(view)
view.snp.makeConstraints { (make) -> Void in
make.edges.equalTo(self.container).inset(50.0)
}
XCTAssertEqual(self.container.snp_constraints.count, 4, "Should have 4 constraints")
let constraints = (self.container.snp_constraints as! [NSLayoutConstraint]).sorted { $0.constant > $1.constant }
XCTAssertEqual(constraints[0].constant, 50, "Should be 50")
XCTAssertEqual(constraints[1].constant, 50, "Should be 50")
XCTAssertEqual(constraints[2].constant, -50, "Should be -50")
XCTAssertEqual(constraints[3].constant, -50, "Should be -50")
}
func testUIEdgeInsetsAsImpliedEqualToConstraints() {
let view = View()
self.container.addSubview(view)
view.snp.makeConstraints { (make) -> Void in
make.edges.equalTo(UIEdgeInsets(top: 25, left: 25, bottom: 25, right: 25))
}
XCTAssertEqual(self.container.snp_constraints.count, 4, "Should have 4 constraints")
let constraints = (self.container.snp_constraints as! [NSLayoutConstraint]).sorted { $0.constant > $1.constant }
XCTAssertEqual(constraints[0].constant, 25, "Should be 25")
XCTAssertEqual(constraints[1].constant, 25, "Should be 25")
XCTAssertEqual(constraints[2].constant, -25, "Should be -25")
XCTAssertEqual(constraints[3].constant, -25, "Should be -25")
}
func testUIEdgeInsetsAsConstraintsConstant() {
let view = View()
self.container.addSubview(view)
view.snp.makeConstraints { (make) -> Void in
make.edges.equalTo(self.container).inset(UIEdgeInsets(top: 25, left: 25, bottom: 25, right: 25))
}
XCTAssertEqual(self.container.snp_constraints.count, 4, "Should have 4 constraints")
let constraints = (self.container.snp_constraints as! [NSLayoutConstraint]).sorted { $0.constant > $1.constant }
XCTAssertEqual(constraints[0].constant, 25, "Should be 25")
XCTAssertEqual(constraints[1].constant, 25, "Should be 25")
XCTAssertEqual(constraints[2].constant, -25, "Should be -25")
XCTAssertEqual(constraints[3].constant, -25, "Should be -25")
}
func testSizeConstraints() {
let view = View()
self.container.addSubview(view)