ASMR/src/test/kotlin/net/shadowfacts/cacao/WindowLayoutTests.kt

92 lines
2.0 KiB
Kotlin
Raw Normal View History

2019-06-22 19:02:17 +00:00
package net.shadowfacts.cacao
2019-06-22 15:17:29 +00:00
import net.shadowfacts.kiwidsl.dsl
2019-06-22 19:02:17 +00:00
import net.shadowfacts.cacao.geometry.Size
import net.shadowfacts.cacao.view.View
2019-08-08 23:17:14 +00:00
import net.shadowfacts.cacao.viewcontroller.ViewController
2019-06-22 15:17:29 +00:00
import org.junit.jupiter.api.Assertions.*
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
/**
* @author shadowfacts
*/
2019-06-23 20:32:51 +00:00
class WindowLayoutTests {
2019-06-22 15:17:29 +00:00
2019-08-08 23:17:14 +00:00
lateinit var viewController: ViewController
2019-06-22 15:17:29 +00:00
lateinit var window: Window
2019-08-08 23:17:14 +00:00
val view: View
get() = viewController.view
2019-06-22 15:17:29 +00:00
@BeforeEach
fun setup() {
2019-08-08 23:17:14 +00:00
viewController = object: ViewController() {
override fun loadView() {
view = View()
}
}
window = Window(viewController)
2019-06-22 15:17:29 +00:00
}
@Test
fun testConstraintToConstant() {
2019-08-08 23:17:14 +00:00
val view = view.addSubview(View())
2019-06-22 15:17:29 +00:00
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() {
2019-08-08 23:17:14 +00:00
val one = view.addSubview(View())
val two = view.addSubview(View())
2019-06-22 15:17:29 +00:00
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() {
2019-08-08 23:17:14 +00:00
val view = view.addSubview(View()).apply {
2019-06-22 15:17:29 +00:00
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)
}
}