diff --git a/src/test/kotlin/net/shadowfacts/shadowui/WindowTests.kt b/src/test/kotlin/net/shadowfacts/shadowui/WindowTests.kt new file mode 100644 index 0000000..34e7b55 --- /dev/null +++ b/src/test/kotlin/net/shadowfacts/shadowui/WindowTests.kt @@ -0,0 +1,81 @@ +package net.shadowfacts.shadowui + +import net.shadowfacts.kiwidsl.dsl +import net.shadowfacts.shadowui.geometry.Size +import org.junit.jupiter.api.Assertions.* +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.Test + +/** + * @author shadowfacts + */ +class WindowTests { + + lateinit var window: Window + + @BeforeEach + fun setup() { + window = Window() + } + + @Test + fun testConstraintToConstant() { + val view = window.addView(View()) + window.solver.dsl { + view.leftAnchor equalTo 100 + view.rightAnchor equalTo 200 + + view.topAnchor equalTo 100 + view.heightAnchor equalTo 200 + } + window.layout() + + assertEquals(100.0, view.widthAnchor.value) + assertEquals(300.0, view.bottomAnchor.value) + } + + @Test + fun testConstraintToView() { + val one = window.addView(View()) + val two = window.addView(View()) + window.solver.dsl { + one.leftAnchor equalTo 0 + one.widthAnchor equalTo 100 + + one.topAnchor equalTo 0 + one.heightAnchor equalTo 200 + + two.leftAnchor equalTo one.rightAnchor + two.rightAnchor equalTo 400 + + two.topAnchor equalTo one.bottomAnchor + two.heightAnchor equalTo one.heightAnchor + } + window.layout() + + assertEquals(100.0, two.leftAnchor.value) + assertEquals(300.0, two.widthAnchor.value) + + assertEquals(200.0, two.topAnchor.value) + assertEquals(400.0, two.bottomAnchor.value) + } + + @Test + fun testIntrinsicContentSize() { + val view = window.addView(View()).apply { + intrinsicContentSize = Size(100.0, 200.0) + } + window.solver.dsl { + view.leftAnchor equalTo 0 + view.topAnchor equalTo 100 + } + window.layout() + + assertEquals(100.0, view.widthAnchor.value) + assertEquals(100.0, view.rightAnchor.value) + + assertEquals(200.0, view.heightAnchor.value) + assertEquals(300.0, view.bottomAnchor.value) + } + +} \ No newline at end of file