mirror of
https://github.com/zhigang1992/GitHawk.git
synced 2026-01-12 22:47:34 +08:00
100 lines
3.2 KiB
Swift
100 lines
3.2 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)
|
|
}
|
|
}
|
|
|