Files
GitHawk/FreetimeTests/IssueCommentTableTests.swift
Ryan Nystrom c23945ac7d Enable SwiftLint and fix issues (#2292)
* update swiftlint

* build with lint enabled

* fix almost all warnings

* remove wholemodule
2018-10-16 21:54:55 -04:00

98 lines
3.1 KiB
Swift

//
// IssueCommentTableTests.swift
// FreetimeTests
//
// Created by B_Litwin on 6/6/18.
// Copyright © 2018 Ryan Nystrom. All rights reserved.
//
import XCTest
import StyledText
@testable import Freetime
class IssueCommentTableTests: XCTestCase {
var textItem: StyledTextRenderer!
var medTextItem: StyledTextRenderer!
var longerTextItem: StyledTextRenderer!
var tallerItem: StyledTextRenderer!
let contentSizeCategory = UIApplication.shared.preferredContentSizeCategory
override func setUp() {
super.setUp()
textItem = StyledTextRenderer(
string: StyledTextString(
styledTexts: [StyledText(
text: "item"
)]
),
contentSizeCategory: contentSizeCategory
)
medTextItem = StyledTextRenderer(
string: StyledTextString(
styledTexts: [StyledText(
text: "medium item"
)]
),
contentSizeCategory: contentSizeCategory
)
longerTextItem = StyledTextRenderer(
string: StyledTextString(
styledTexts: [StyledText(
text: "longer text length item"
)]
),
contentSizeCategory: contentSizeCategory
)
tallerItem = StyledTextRenderer(
string: StyledTextString(
styledTexts: [StyledText(
text: "T"
)]
),
contentSizeCategory: .accessibilityExtraExtraLarge
)
}
func test_tableDimensions() {
// create table rows with text elements of different sizes and test whether the
// model recieves appropriate height and width dimensions
let rowOne: [StyledTextRenderer] = [textItem, textItem, textItem]
let rowTwo: [StyledTextRenderer] = [textItem, medTextItem, textItem]
let rowThree: [StyledTextRenderer] = [textItem, textItem, longerTextItem]
let rowFour: [StyledTextRenderer] = [tallerItem, textItem, textItem]
let rows = [rowOne, rowTwo, rowThree, rowFour]
var buckets = [TableBucket()]
var rowHeights = [CGFloat]()
rows.forEach {
fillBuckets(
rows: $0,
buckets: &buckets,
rowHeights: &rowHeights,
fill: false
)
}
let model = IssueCommentTableModel(
buckets: buckets,
rowHeights: rowHeights
)
let columns = model.columns
//widths should reflect the width of widest cell in column
XCTAssertEqual(columns[0].width, textItem.viewSize(in: 0).width)
XCTAssertEqual(columns[1].width, medTextItem.viewSize(in: 0).width)
XCTAssertEqual(columns[2].width, longerTextItem.viewSize(in: 0).width)
//heights should reflect the height of the tallest cell across horizontal row
XCTAssertEqual(rowHeights[0], textItem.viewSize(in: 0).height)
XCTAssertEqual(rowHeights[3], tallerItem.viewSize(in: 0).height)
}
}