Files
GradientLoadingBar/Example/Tests/GradientLoadingBarTests.swift
T
Felix Mau 115d04c0ec * allow subclassing "GradientLoadingBar" and setting custom constraints
* added superview property to allow adding loading bar to other views (e.g. buttons)
2017-10-04 09:22:50 +02:00

77 lines
2.0 KiB
Swift

//
// GradientLoadingBarTests.swift
// GradientLoadingBar_Example
//
// Created by Felix Mau on 03.10.17.
// Copyright © 2017 CocoaPods. All rights reserved.
//
import XCTest
@testable import GradientLoadingBar
class GradientLoadingBarTests: XCTestCase {
var superview: UIView!
var gradientLoadingBar: GradientLoadingBar!
override func setUp() {
super.setUp()
superview = UIView()
gradientLoadingBar = GradientLoadingBar(onView: superview)
}
override func tearDown() {
superview = nil
gradientLoadingBar = nil
super.tearDown()
}
func testInit() {
XCTAssertEqual(superview.subviews.count, 1)
XCTAssertEqual(superview.subviews[0], gradientLoadingBar.gradientView)
}
func testDeinit() {
XCTAssertEqual(superview.subviews.count, 1)
XCTAssertEqual(superview.subviews[0], gradientLoadingBar.gradientView)
gradientLoadingBar = nil
XCTAssertEqual(superview.subviews.count, 0)
}
func testShow() {
gradientLoadingBar.show()
XCTAssertTrue(gradientLoadingBar.isVisible)
XCTAssertEqual(superview.subviews.count, 1)
}
func testHide() {
gradientLoadingBar.show()
XCTAssertTrue(gradientLoadingBar.isVisible)
XCTAssertEqual(superview.subviews.count, 1)
gradientLoadingBar.hide()
XCTAssertFalse(gradientLoadingBar.isVisible)
XCTAssertEqual(superview.subviews.count, 1)
}
func testOnlyAddedOnceToSuperview() {
for _ in 1...100 {
gradientLoadingBar.show()
XCTAssertTrue(gradientLoadingBar.isVisible)
XCTAssertEqual(superview.subviews.count, 1)
}
}
func testToggle() {
for i in 1...100 {
gradientLoadingBar.toggle()
let isVisible = (i % 2) == 1 // Visible on first iteration, after first call to toggle.
XCTAssertEqual(gradientLoadingBar.isVisible, isVisible)
XCTAssertEqual(superview.subviews.count, 1)
}
}
}