@@ -26,6 +26,7 @@ import com.badlogic.gdx.scenes.scene2d.actions.SequenceAction
2626import org.junit.Assert.assertEquals
2727import org.catrobat.catroid.content.ActionFactory
2828import org.catrobat.catroid.content.Sprite
29+ import org.catrobat.catroid.content.actions.conditional.GlideToAction
2930import org.catrobat.catroid.formulaeditor.Formula
3031import org.catrobat.catroid.test.StaticSingletonInitializer.Companion.initializeStaticSingletonMethods
3132import org.junit.Before
@@ -58,6 +59,34 @@ class GlideToActionTest {
5859 assertEquals(Y_POSITION , sprite.look.yInUserInterfaceDimensionUnit)
5960 }
6061
62+ @Test
63+ fun testGlideToBoundaryPositionsImmediate () {
64+ val glideToMax = sprite.actionFactory.createGlideToAction(
65+ sprite,
66+ SequenceAction (),
67+ Formula (Int .MAX_VALUE ),
68+ Formula (Int .MAX_VALUE ),
69+ Formula (0f )
70+ )
71+ runActionUntilFinished(glideToMax)
72+
73+ assertEquals(Int .MAX_VALUE .toFloat(), sprite.look.xInUserInterfaceDimensionUnit)
74+ assertEquals(Int .MAX_VALUE .toFloat(), sprite.look.yInUserInterfaceDimensionUnit)
75+
76+ val glideToMin = sprite.actionFactory.createGlideToAction(
77+ sprite,
78+ SequenceAction (),
79+ Formula (Int .MIN_VALUE ),
80+ Formula (Int .MIN_VALUE ),
81+ Formula (0f )
82+ )
83+ runActionUntilFinished(glideToMin)
84+
85+ assertEquals(Int .MIN_VALUE .toFloat(), sprite.look.xInUserInterfaceDimensionUnit)
86+ assertEquals(Int .MIN_VALUE .toFloat(), sprite.look.yInUserInterfaceDimensionUnit)
87+ }
88+
89+
6190 @Test(expected = NullPointerException ::class )
6291 fun testNullActor () {
6392 val xPosition = Formula (X_POSITION )
@@ -120,6 +149,28 @@ class GlideToActionTest {
120149 assertEquals(0f , sprite.look.yInUserInterfaceDimensionUnit)
121150 }
122151
152+ @Test
153+ fun testDurationChangesAfterRestart () {
154+ val xPosition = Formula (X_POSITION )
155+ val yPosition = Formula (Y_POSITION )
156+ val duration = Formula (DURATION )
157+
158+ sprite.look.setPositionInUserInterfaceDimensionUnit(0f , 0f )
159+
160+ val action = sprite.actionFactory.createGlideToAction(sprite, SequenceAction (), xPosition, yPosition, duration
161+ ) as GlideToAction
162+
163+ action.act(0f )
164+ val durationBefore = action.durationValue
165+
166+ sprite.look.setPositionInUserInterfaceDimensionUnit(10f , 10f )
167+
168+ action.act(0.5f )
169+ val durationAfter = action.durationValue
170+
171+ assert (durationAfter < durationBefore)
172+ }
173+
123174 private fun runActionUntilFinished (action : com.badlogic.gdx.scenes.scene2d.Action ) {
124175 while (! action.act(1.0f )) {
125176 // does nothing
0 commit comments