Files
2025-10-04 08:46:46 +01:00

50 lines
1.6 KiB
Swift
Executable File

// Copyright © 2017 Schibsted. All rights reserved.
import UIKit
import XCTest
@testable import Layout
final class TableViewController: UIViewController, LayoutLoading, UITableViewDataSource, UITableViewDelegate {
@objc var tableView: UITableView?
var didLoadRows = false
override func viewDidLoad() {
super.viewDidLoad()
edgesForExtendedLayout = []
loadLayout(named: "TableViewTest.xml", bundle: Bundle(for: type(of: self)))
}
func tableView(_: UITableView, numberOfRowsInSection _: Int) -> Int {
didLoadRows = true
return 5
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let node = tableView.dequeueReusableCellNode(withIdentifier: "testCell", for: indexPath)
node.setState([])
return node.view as! UITableViewCell
}
}
final class TableViewTests: XCTestCase {
func testTableCellSizing() {
let vc = TableViewController()
vc.view.frame = CGRect(x: 0, y: 0, width: 512, height: 512)
XCTAssertNotNil(vc.tableView)
vc.tableView?.reloadData()
XCTAssert(vc.didLoadRows)
guard let cell = vc.tableView?.cellForRow(at: IndexPath(row: 0, section: 0)) else {
XCTFail()
return
}
XCTAssertEqual(cell.frame.width, 512)
guard let cellLayoutView = cell.contentView.subviews.first else {
XCTFail()
return
}
XCTAssertNotNil(cellLayoutView._layoutNode)
XCTAssertEqual(cellLayoutView.frame.width, 512)
XCTAssertEqual(cellLayoutView.frame.origin.x, 0)
}
}