Skip to content

Commit

Permalink
tests
Browse files Browse the repository at this point in the history
  • Loading branch information
kyleve committed Dec 9, 2020
1 parent fb694ec commit d4c534d
Showing 1 changed file with 61 additions and 0 deletions.
61 changes: 61 additions & 0 deletions BlueprintUI/Tests/LayoutWriterTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,66 @@ import XCTest

class LayoutWriterTests : XCTestCase {

func test_measurement() {

/// `.unionOfChildren`

do {
let writer = LayoutWriter { context, layout in
layout.add(with: CGRect(x: 10, y: 20, width: 50, height: 50), child: TestElement())
layout.add(with: CGRect(x: 20, y: 10, width: 20, height: 100), child: TestElement())

layout.sizing = .unionOfChildren
}

XCTAssertEqual(writer.content.measure(in: .unconstrained), CGSize(width: 60, height: 110))
}


/// `.fixed`

do {
let writer = LayoutWriter { context, layout in
layout.add(with: CGRect(x: 10, y: 20, width: 50, height: 50), child: TestElement())

layout.sizing = .fixed(CGSize(width: 100, height: 100))
}

XCTAssertEqual(writer.content.measure(in: .unconstrained), CGSize(width: 100, height: 100))
}

}

func test_layout() {
let writer = LayoutWriter { context, layout in
layout.add(with: CGRect(x: 10, y: 20, width: 50, height: 50), child: TestElement())
layout.add(with: CGRect(x: 20, y: 10, width: 20, height: 100), child: TestElement())
}

let layoutResult = writer.content.performLayout(attributes: LayoutAttributes(size: CGSize(width: 100, height: 100)), environment: .empty)
let innerElement = layoutResult[0]

let nodes = innerElement.node.children.map(\.node)

XCTAssertEqual(nodes.count, 2)

let first = nodes[0]
let second = nodes[1]

XCTAssertEqual(first.layoutAttributes.frame, CGRect(x: 10, y: 20, width: 50, height: 50))
XCTAssertEqual(second.layoutAttributes.frame, CGRect(x: 20, y: 10, width: 20, height: 100))
}
}


fileprivate struct TestElement : Element {

var content: ElementContent {
ElementContent { $0.maximum }
}

func backingViewDescription(bounds: CGRect, subtreeExtent: CGRect?) -> ViewDescription? {
UIView.describe { _ in }
}

}

0 comments on commit d4c534d

Please sign in to comment.