PanModal/Tests/PanModalTests.swift

85 lines
3.0 KiB
Swift
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// PanModalTests.swift
// PanModalTests
//
// Created by Tosin Afolabi on 2/26/19.
// Copyright © 2019 PanModal. All rights reserved.
//
import XCTest
@testable import PanModal
/**
Run tests on iPhone 8 iOS (12.1) Sim
*/
class PanModalTests: XCTestCase {
class MockViewController: UIViewController, PanModalPresentable {
var panScrollable: UIScrollView? { return nil }
}
class AdjustedMockViewController: UITableViewController, PanModalPresentable {
var panScrollable: UIScrollView? { return tableView }
var shortFormHeight: PanModalHeight { return .contentHeight(300) }
var longFormHeight: PanModalHeight { return .maxHeightWithTopInset(50) }
// for testing purposes - to mimic safe area insets
var topLayoutOffset: CGFloat { return 20 }
var bottomLayoutOffset: CGFloat { return 44 }
}
private var vc: AdjustedMockViewController!
override func setUp() {
super.setUp()
vc = AdjustedMockViewController()
}
override func tearDown() {
super.tearDown()
vc = nil
}
func testPresentableDefaults() {
let vc = MockViewController()
XCTAssertEqual(vc.topOffset, 41.0)
XCTAssertEqual(vc.shortFormHeight, PanModalHeight.maxHeight)
XCTAssertEqual(vc.longFormHeight, PanModalHeight.maxHeight)
XCTAssertEqual(vc.springDamping, 0.8)
XCTAssertEqual(vc.panModalBackgroundColor, UIColor.black.withAlphaComponent(0.7))
XCTAssertEqual(vc.dragIndicatorBackgroundColor, UIColor.lightGray)
XCTAssertEqual(vc.scrollIndicatorInsets, .zero)
XCTAssertEqual(vc.anchorModalToLongForm, true)
XCTAssertEqual(vc.allowsExtendedPanScrolling, false)
XCTAssertEqual(vc.allowsDragToDismiss, true)
XCTAssertEqual(vc.allowsTapToDismiss, true)
XCTAssertEqual(vc.isUserInteractionEnabled, true)
XCTAssertEqual(vc.isHapticFeedbackEnabled, true)
XCTAssertEqual(vc.shouldRoundTopCorners, false)
XCTAssertEqual(vc.showDragIndicator, false)
XCTAssertEqual(vc.shouldRoundTopCorners, false)
XCTAssertEqual(vc.cornerRadius, 8.0)
XCTAssertEqual(vc.transitionDuration, PanModalAnimator.Constants.defaultTransitionDuration)
XCTAssertEqual(vc.transitionAnimationOptions, [.curveEaseInOut, .allowUserInteraction, .beginFromCurrentState])
}
func testPresentableYValues() {
XCTAssertEqual(vc.topLayoutOffset, 20)
XCTAssertEqual(vc.bottomLayoutOffset, 44)
XCTAssertEqual(vc.topMargin(from: .maxHeight), 0)
XCTAssertEqual(vc.topMargin(from: .maxHeightWithTopInset(40)), 40)
XCTAssertEqual(vc.topMargin(from: .contentHeight(200)), 447)
XCTAssertEqual(vc.topMargin(from: .contentHeightIgnoringSafeArea(200)), 447)
XCTAssertEqual(vc.shortFormYPos, 388)
XCTAssertEqual(vc.longFormYPos, 91)
XCTAssertEqual(vc.bottomYPos, vc.view.frame.height)
XCTAssertEqual(vc.view.frame.height, UIScreen.main.bounds.size.height - 20)
}
}