modules/graphics/src/test/java/test/javafx/animation/AnimationTest.java
Print this page
rev 9250 : 8134762: Refactor Javafx graphics module tests for clear separation of tests
Reviewed-by:
*** 21,49 ****
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
! package javafx.animation;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
!
! import com.sun.javafx.tk.Toolkit;
import javafx.animation.Animation.Status;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.util.Duration;
- import com.sun.scenario.animation.AbstractMasterTimerMock;
- import com.sun.scenario.animation.shared.ClipEnvelopeMock;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
- import static org.junit.Assert.*;
-
public class AnimationTest {
private static final Duration ONE_SEC = Duration.millis(1000);
private static final Duration TWO_SECS = Duration.millis(2000);
private static final Duration THREE_SECS = Duration.millis(3000);
--- 21,49 ----
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
! package test.javafx.animation;
+ import com.sun.javafx.tk.Toolkit;
+ import test.com.sun.scenario.animation.shared.ClipEnvelopeMock;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
! import javafx.animation.Animation;
import javafx.animation.Animation.Status;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.util.Duration;
import org.junit.After;
+ import static org.junit.Assert.assertEquals;
+ import static org.junit.Assert.assertFalse;
+ import static org.junit.Assert.assertTrue;
import org.junit.Before;
import org.junit.Test;
public class AnimationTest {
private static final Duration ONE_SEC = Duration.millis(1000);
private static final Duration TWO_SECS = Duration.millis(2000);
private static final Duration THREE_SECS = Duration.millis(3000);
*** 54,72 ****
private static final boolean DEFAULT_AUTO_REVERSE = false;
private static final double EPSILON = 1e-12;
private AbstractMasterTimerMock timer;
! private Animation animation;
private ClipEnvelopeMock clipEnvelope;
@Before
public void setUp() {
timer = new AbstractMasterTimerMock();
clipEnvelope = new ClipEnvelopeMock();
animation = new AnimationImpl(timer, clipEnvelope, 1);
! animation.setCycleDuration(ONE_SEC);
clipEnvelope.setAnimation(animation);
}
@After
public void tearDown() {
--- 54,72 ----
private static final boolean DEFAULT_AUTO_REVERSE = false;
private static final double EPSILON = 1e-12;
private AbstractMasterTimerMock timer;
! private AnimationImpl animation;
private ClipEnvelopeMock clipEnvelope;
@Before
public void setUp() {
timer = new AbstractMasterTimerMock();
clipEnvelope = new ClipEnvelopeMock();
animation = new AnimationImpl(timer, clipEnvelope, 1);
! animation.shim_setCycleDuration(ONE_SEC);
clipEnvelope.setAnimation(animation);
}
@After
public void tearDown() {
*** 127,148 ****
animation.setCycleCount(Animation.INDEFINITE);
assertEquals(Duration.INDEFINITE, animation.getTotalDuration());
animation.setCycleCount(1);
// Duration.ZERO
! animation.setCycleDuration(Duration.ZERO);
assertEquals(Duration.ZERO, animation.getTotalDuration());
animation.setCycleCount(0);
assertEquals(Duration.ZERO, animation.getTotalDuration());
animation.setCycleCount(7);
assertEquals(Duration.ZERO, animation.getTotalDuration());
animation.setCycleCount(Animation.INDEFINITE);
assertEquals(Duration.ZERO, animation.getTotalDuration());
animation.setCycleCount(1);
// Duration.INDEFINITE
! animation.setCycleDuration(Duration.INDEFINITE);
assertEquals(Duration.INDEFINITE, animation.getTotalDuration());
animation.setCycleCount(0);
assertEquals(Duration.INDEFINITE, animation.getTotalDuration());
animation.setCycleCount(7);
assertEquals(Duration.INDEFINITE, animation.getTotalDuration());
--- 127,148 ----
animation.setCycleCount(Animation.INDEFINITE);
assertEquals(Duration.INDEFINITE, animation.getTotalDuration());
animation.setCycleCount(1);
// Duration.ZERO
! animation.shim_setCycleDuration(Duration.ZERO);
assertEquals(Duration.ZERO, animation.getTotalDuration());
animation.setCycleCount(0);
assertEquals(Duration.ZERO, animation.getTotalDuration());
animation.setCycleCount(7);
assertEquals(Duration.ZERO, animation.getTotalDuration());
animation.setCycleCount(Animation.INDEFINITE);
assertEquals(Duration.ZERO, animation.getTotalDuration());
animation.setCycleCount(1);
// Duration.INDEFINITE
! animation.shim_setCycleDuration(Duration.INDEFINITE);
assertEquals(Duration.INDEFINITE, animation.getTotalDuration());
animation.setCycleCount(0);
assertEquals(Duration.INDEFINITE, animation.getTotalDuration());
animation.setCycleCount(7);
assertEquals(Duration.INDEFINITE, animation.getTotalDuration());
*** 152,170 ****
}
@Test
public void testDecreaseTotalDuration() {
animation.jumpTo(ONE_SEC);
! animation.setCycleDuration(ONE_SEC.divide(2));
assertEquals(ONE_SEC.divide(2), animation.getCurrentTime());
! animation.setCycleDuration(Duration.ZERO);
assertEquals(Duration.ZERO, animation.getCurrentTime());
}
@Test
public void testJumpTo() {
! animation.setCycleDuration(TWO_SECS);
// cycleCount = 1
animation.jumpTo(ONE_SEC);
assertEquals(ONE_SEC, animation.getCurrentTime());
assertEquals(6000, clipEnvelope.getLastJumpTo());
--- 152,171 ----
}
@Test
public void testDecreaseTotalDuration() {
animation.jumpTo(ONE_SEC);
! animation.shim_setCycleDuration(ONE_SEC.divide(2));
assertEquals(ONE_SEC.divide(2), animation.getCurrentTime());
! animation.shim_setCycleDuration(Duration.ZERO);
assertEquals(Duration.ZERO, animation.getCurrentTime());
}
@Test
public void testJumpTo() {
! animation.shim_setCycleDuration(TWO_SECS);
! assertEquals(TWO_SECS,animation.getCycleDuration());
// cycleCount = 1
animation.jumpTo(ONE_SEC);
assertEquals(ONE_SEC, animation.getCurrentTime());
assertEquals(6000, clipEnvelope.getLastJumpTo());
*** 206,216 ****
assertEquals(0, clipEnvelope.getLastJumpTo());
}
@Test
public void testJumpTo_ZeroLengthAnimation() {
! animation.setCycleDuration(Duration.ZERO);
// cycleCount = 1
animation.jumpTo(Duration.ZERO);
assertEquals(Duration.ZERO, animation.getCurrentTime());
assertEquals(0, clipEnvelope.getLastJumpTo());
--- 207,217 ----
assertEquals(0, clipEnvelope.getLastJumpTo());
}
@Test
public void testJumpTo_ZeroLengthAnimation() {
! animation.shim_setCycleDuration(Duration.ZERO);
// cycleCount = 1
animation.jumpTo(Duration.ZERO);
assertEquals(Duration.ZERO, animation.getCurrentTime());
assertEquals(0, clipEnvelope.getLastJumpTo());
*** 229,239 ****
}
@Test
public void testDurationRoundingError() {
final Duration duration = Duration.millis(0.01);
! animation.setCycleDuration(duration);
assertTrue(animation.getCycleDuration().greaterThan(Duration.ZERO));
// should not be startable
assertFalse(animation.impl_startable(true));
--- 230,240 ----
}
@Test
public void testDurationRoundingError() {
final Duration duration = Duration.millis(0.01);
! animation.shim_setCycleDuration(duration);
assertTrue(animation.getCycleDuration().greaterThan(Duration.ZERO));
// should not be startable
assertFalse(animation.impl_startable(true));
*** 255,265 ****
@Test
public void testJumpToCuePoint_Default() {
animation.getCuePoints().put("ONE_SEC", ONE_SEC);
animation.getCuePoints().put("THREE_SECS", THREE_SECS);
! animation.setCycleDuration(TWO_SECS);
// normal jumps
animation.jumpTo("end");
assertEquals(TWO_SECS, animation.getCurrentTime());
animation.jumpTo("start");
--- 256,266 ----
@Test
public void testJumpToCuePoint_Default() {
animation.getCuePoints().put("ONE_SEC", ONE_SEC);
animation.getCuePoints().put("THREE_SECS", THREE_SECS);
! animation.shim_setCycleDuration(TWO_SECS);
// normal jumps
animation.jumpTo("end");
assertEquals(TWO_SECS, animation.getCurrentTime());
animation.jumpTo("start");
*** 277,287 ****
}
@Test
public void testJumpToCuePoint_ZeroLengthAnimation() {
animation.getCuePoints().put("ONE_SEC", ONE_SEC);
! animation.setCycleDuration(Duration.ZERO);
animation.jumpTo("start");
assertEquals(Duration.ZERO, animation.getCurrentTime());
animation.jumpTo("end");
assertEquals(Duration.ZERO, animation.getCurrentTime());
--- 278,288 ----
}
@Test
public void testJumpToCuePoint_ZeroLengthAnimation() {
animation.getCuePoints().put("ONE_SEC", ONE_SEC);
! animation.shim_setCycleDuration(Duration.ZERO);
animation.jumpTo("start");
assertEquals(Duration.ZERO, animation.getCurrentTime());
animation.jumpTo("end");
assertEquals(Duration.ZERO, animation.getCurrentTime());
*** 302,412 ****
// stopped timeline
listener.wasCalled = false;
animation.play();
assertEquals(Status.RUNNING, animation.getStatus());
assertFalse(listener.wasCalled);
! assertTrue(timer.containsPulseReceiver(animation.pulseReceiver));
// calling play on playing timeline
animation.play();
assertEquals(Status.RUNNING, animation.getStatus());
assertFalse(listener.wasCalled);
! assertTrue(timer.containsPulseReceiver(animation.pulseReceiver));
animation.stop();
// stopped timeline, rate = 0
listener.wasCalled = false;
animation.setRate(0.0);
animation.play();
assertEquals(Status.RUNNING, animation.getStatus());
assertFalse(listener.wasCalled);
! assertFalse(timer.containsPulseReceiver(animation.pulseReceiver));
animation.stop();
animation.setRate(1.0);
// stopped timeline, cycleDuration = 0
listener.wasCalled = false;
! animation.setCycleDuration(Duration.ZERO);
animation.play();
assertEquals(Status.STOPPED, animation.getStatus());
assertTrue(listener.wasCalled);
! assertFalse(timer.containsPulseReceiver(animation.pulseReceiver));
animation.stop();
! animation.setCycleDuration(ONE_SEC);
// paused timeline
animation.play();
animation.pause();
animation.play();
assertEquals(Status.RUNNING, animation.getStatus());
! assertTrue(timer.containsPulseReceiver(animation.pulseReceiver));
animation.stop();
// paused timeline, rate = 0
animation.play();
animation.pause();
animation.setRate(0.0);
animation.play();
assertEquals(Status.RUNNING, animation.getStatus());
! assertFalse(timer.containsPulseReceiver(animation.pulseReceiver));
}
@Test
public void testStop() {
// stopped timeline
animation.jumpTo(ONE_SEC);
animation.stop();
assertEquals(Status.STOPPED, animation.getStatus());
assertEquals(0.0, animation.getCurrentRate(), EPSILON);
assertEquals(ONE_SEC, animation.getCurrentTime());
! assertFalse(timer.containsPulseReceiver(animation.pulseReceiver));
// playing timeline
animation.jumpTo(ONE_SEC);
animation.play();
animation.stop();
assertEquals(Status.STOPPED, animation.getStatus());
assertEquals(0.0, animation.getCurrentRate(), EPSILON);
assertEquals(Duration.ZERO, animation.getCurrentTime());
! assertFalse(timer.containsPulseReceiver(animation.pulseReceiver));
// paused timeline
animation.jumpTo(ONE_SEC);
animation.play();
animation.pause();
animation.stop();
assertEquals(Status.STOPPED, animation.getStatus());
assertEquals(0.0, animation.getCurrentRate(), EPSILON);
assertEquals(Duration.ZERO, animation.getCurrentTime());
! assertFalse(timer.containsPulseReceiver(animation.pulseReceiver));
}
@Test
public void testPause() {
// stopped timeline
animation.jumpTo(ONE_SEC);
animation.pause();
assertEquals(Status.STOPPED, animation.getStatus());
assertEquals(0.0, animation.getCurrentRate(), EPSILON);
! assertFalse(timer.containsPulseReceiver(animation.pulseReceiver));
// playing timeline
animation.jumpTo(ONE_SEC);
animation.play();
animation.pause();
assertEquals(Status.PAUSED, animation.getStatus());
assertEquals(0.0, animation.getCurrentRate(), EPSILON);
! assertFalse(timer.containsPulseReceiver(animation.pulseReceiver));
// paused timeline
animation.jumpTo(ONE_SEC);
animation.play();
animation.pause();
animation.pause();
assertEquals(Status.PAUSED, animation.getStatus());
assertEquals(0.0, animation.getCurrentRate(), EPSILON);
! assertFalse(timer.containsPulseReceiver(animation.pulseReceiver));
}
@Test
public void testStart() {
// cycleDuration = 1000ms
--- 303,413 ----
// stopped timeline
listener.wasCalled = false;
animation.play();
assertEquals(Status.RUNNING, animation.getStatus());
assertFalse(listener.wasCalled);
! assertTrue(timer.containsPulseReceiver(animation.shim_pulseReceiver()));
// calling play on playing timeline
animation.play();
assertEquals(Status.RUNNING, animation.getStatus());
assertFalse(listener.wasCalled);
! assertTrue(timer.containsPulseReceiver(animation.shim_pulseReceiver()));
animation.stop();
// stopped timeline, rate = 0
listener.wasCalled = false;
animation.setRate(0.0);
animation.play();
assertEquals(Status.RUNNING, animation.getStatus());
assertFalse(listener.wasCalled);
! assertFalse(timer.containsPulseReceiver(animation.shim_pulseReceiver()));
animation.stop();
animation.setRate(1.0);
// stopped timeline, cycleDuration = 0
listener.wasCalled = false;
! animation.shim_setCycleDuration(Duration.ZERO);
animation.play();
assertEquals(Status.STOPPED, animation.getStatus());
assertTrue(listener.wasCalled);
! assertFalse(timer.containsPulseReceiver(animation.shim_pulseReceiver()));
animation.stop();
! animation.shim_setCycleDuration(ONE_SEC);
// paused timeline
animation.play();
animation.pause();
animation.play();
assertEquals(Status.RUNNING, animation.getStatus());
! assertTrue(timer.containsPulseReceiver(animation.shim_pulseReceiver()));
animation.stop();
// paused timeline, rate = 0
animation.play();
animation.pause();
animation.setRate(0.0);
animation.play();
assertEquals(Status.RUNNING, animation.getStatus());
! assertFalse(timer.containsPulseReceiver(animation.shim_pulseReceiver()));
}
@Test
public void testStop() {
// stopped timeline
animation.jumpTo(ONE_SEC);
animation.stop();
assertEquals(Status.STOPPED, animation.getStatus());
assertEquals(0.0, animation.getCurrentRate(), EPSILON);
assertEquals(ONE_SEC, animation.getCurrentTime());
! assertFalse(timer.containsPulseReceiver(animation.shim_pulseReceiver()));
// playing timeline
animation.jumpTo(ONE_SEC);
animation.play();
animation.stop();
assertEquals(Status.STOPPED, animation.getStatus());
assertEquals(0.0, animation.getCurrentRate(), EPSILON);
assertEquals(Duration.ZERO, animation.getCurrentTime());
! assertFalse(timer.containsPulseReceiver(animation.shim_pulseReceiver()));
// paused timeline
animation.jumpTo(ONE_SEC);
animation.play();
animation.pause();
animation.stop();
assertEquals(Status.STOPPED, animation.getStatus());
assertEquals(0.0, animation.getCurrentRate(), EPSILON);
assertEquals(Duration.ZERO, animation.getCurrentTime());
! assertFalse(timer.containsPulseReceiver(animation.shim_pulseReceiver()));
}
@Test
public void testPause() {
// stopped timeline
animation.jumpTo(ONE_SEC);
animation.pause();
assertEquals(Status.STOPPED, animation.getStatus());
assertEquals(0.0, animation.getCurrentRate(), EPSILON);
! assertFalse(timer.containsPulseReceiver(animation.shim_pulseReceiver()));
// playing timeline
animation.jumpTo(ONE_SEC);
animation.play();
animation.pause();
assertEquals(Status.PAUSED, animation.getStatus());
assertEquals(0.0, animation.getCurrentRate(), EPSILON);
! assertFalse(timer.containsPulseReceiver(animation.shim_pulseReceiver()));
// paused timeline
animation.jumpTo(ONE_SEC);
animation.play();
animation.pause();
animation.pause();
assertEquals(Status.PAUSED, animation.getStatus());
assertEquals(0.0, animation.getCurrentRate(), EPSILON);
! assertFalse(timer.containsPulseReceiver(animation.shim_pulseReceiver()));
}
@Test
public void testStart() {
// cycleDuration = 1000ms
*** 416,429 ****
assertEquals(1.0, animation.getCurrentRate(), EPSILON);
assertEquals(6000, clipEnvelope.getTimelineTicks());
assertEquals(1.0, clipEnvelope.getRate(), EPSILON);
assertEquals(false, clipEnvelope.getAutoReverse());
assertEquals(1, clipEnvelope.getCycleCount());
! animation.impl_finished();
// change all values and try again
! animation.setCycleDuration(TWO_SECS);
animation.setRate(-2.0);
animation.setAutoReverse(true);
animation.setCycleCount(Animation.INDEFINITE);
assertTrue(animation.impl_startable(true));
animation.impl_start(true);
--- 417,430 ----
assertEquals(1.0, animation.getCurrentRate(), EPSILON);
assertEquals(6000, clipEnvelope.getTimelineTicks());
assertEquals(1.0, clipEnvelope.getRate(), EPSILON);
assertEquals(false, clipEnvelope.getAutoReverse());
assertEquals(1, clipEnvelope.getCycleCount());
! animation.shim_impl_finished();
// change all values and try again
! animation.shim_setCycleDuration(TWO_SECS);
animation.setRate(-2.0);
animation.setAutoReverse(true);
animation.setCycleCount(Animation.INDEFINITE);
assertTrue(animation.impl_startable(true));
animation.impl_start(true);
*** 431,458 ****
assertEquals(-2.0, animation.getCurrentRate(), EPSILON);
assertEquals(12000, clipEnvelope.getTimelineTicks());
assertEquals(-2.0, clipEnvelope.getRate(), EPSILON);
assertEquals(true, clipEnvelope.getAutoReverse());
assertEquals(Animation.INDEFINITE, clipEnvelope.getCycleCount());
! animation.impl_finished();
// cycleDuration = 0
! animation.setCycleDuration(Duration.ZERO);
assertFalse(animation.impl_startable(true));
}
@Test
public void testChangeCycleDurationAfterFinish_RT32657() {
! animation.setCycleDuration(TWO_SECS);
animation.play();
assertEquals(Status.RUNNING, animation.getStatus());
assertEquals(Duration.ZERO, animation.getCurrentTime());
animation.impl_setCurrentTicks(12000);
assertEquals(TWO_SECS, animation.getCurrentTime());
! animation.impl_finished();
! animation.setCycleDuration(ONE_SEC);
animation.play();
assertEquals(Status.RUNNING, animation.getStatus());
assertEquals(Duration.ZERO, animation.getCurrentTime());
}
--- 432,459 ----
assertEquals(-2.0, animation.getCurrentRate(), EPSILON);
assertEquals(12000, clipEnvelope.getTimelineTicks());
assertEquals(-2.0, clipEnvelope.getRate(), EPSILON);
assertEquals(true, clipEnvelope.getAutoReverse());
assertEquals(Animation.INDEFINITE, clipEnvelope.getCycleCount());
! animation.shim_impl_finished();
// cycleDuration = 0
! animation.shim_setCycleDuration(Duration.ZERO);
assertFalse(animation.impl_startable(true));
}
@Test
public void testChangeCycleDurationAfterFinish_RT32657() {
! animation.shim_setCycleDuration(TWO_SECS);
animation.play();
assertEquals(Status.RUNNING, animation.getStatus());
assertEquals(Duration.ZERO, animation.getCurrentTime());
animation.impl_setCurrentTicks(12000);
assertEquals(TWO_SECS, animation.getCurrentTime());
! animation.shim_impl_finished();
! animation.shim_setCycleDuration(ONE_SEC);
animation.play();
assertEquals(Status.RUNNING, animation.getStatus());
assertEquals(Duration.ZERO, animation.getCurrentTime());
}
*** 460,485 ****
public void testFinished() {
final OnFinishedListener listener = new OnFinishedListener();
animation.setOnFinished(listener);
// stopped timeline
! animation.impl_finished();
assertEquals(Status.STOPPED, animation.getStatus());
assertEquals(0.0, animation.getCurrentRate(), EPSILON);
assertTrue(listener.wasCalled);
// playing timeline
animation.play();
! animation.impl_finished();
assertEquals(Status.STOPPED, animation.getStatus());
assertEquals(0.0, animation.getCurrentRate(), EPSILON);
assertTrue(listener.wasCalled);
// paused timeline
animation.play();
animation.pause();
! animation.impl_finished();
assertEquals(Status.STOPPED, animation.getStatus());
assertEquals(0.0, animation.getCurrentRate(), EPSILON);
assertTrue(listener.wasCalled);
}
--- 461,486 ----
public void testFinished() {
final OnFinishedListener listener = new OnFinishedListener();
animation.setOnFinished(listener);
// stopped timeline
! animation.shim_impl_finished();
assertEquals(Status.STOPPED, animation.getStatus());
assertEquals(0.0, animation.getCurrentRate(), EPSILON);
assertTrue(listener.wasCalled);
// playing timeline
animation.play();
! animation.shim_impl_finished();
assertEquals(Status.STOPPED, animation.getStatus());
assertEquals(0.0, animation.getCurrentRate(), EPSILON);
assertTrue(listener.wasCalled);
// paused timeline
animation.play();
animation.pause();
! animation.shim_impl_finished();
assertEquals(Status.STOPPED, animation.getStatus());
assertEquals(0.0, animation.getCurrentRate(), EPSILON);
assertTrue(listener.wasCalled);
}
*** 498,508 ****
try {
System.setErr(nirvana);
} catch (SecurityException ex) {
// ignore
}
! animation.impl_finished();
try {
System.setErr(defaultErrorStream);
} catch (SecurityException ex) {
// ignore
}
--- 499,509 ----
try {
System.setErr(nirvana);
} catch (SecurityException ex) {
// ignore
}
! animation.shim_impl_finished();
try {
System.setErr(defaultErrorStream);
} catch (SecurityException ex) {
// ignore
}
*** 515,525 ****
try {
System.setErr(nirvana);
} catch (SecurityException ex) {
// ignore
}
! animation.impl_finished();
try {
System.setErr(defaultErrorStream);
} catch (SecurityException ex) {
// ignore
}
--- 516,526 ----
try {
System.setErr(nirvana);
} catch (SecurityException ex) {
// ignore
}
! animation.shim_impl_finished();
try {
System.setErr(defaultErrorStream);
} catch (SecurityException ex) {
// ignore
}
*** 533,543 ****
try {
System.setErr(nirvana);
} catch (SecurityException ex) {
// ignore
}
! animation.impl_finished();
try {
System.setErr(defaultErrorStream);
} catch (SecurityException ex) {
// ignore
}
--- 534,544 ----
try {
System.setErr(nirvana);
} catch (SecurityException ex) {
// ignore
}
! animation.shim_impl_finished();
try {
System.setErr(defaultErrorStream);
} catch (SecurityException ex) {
// ignore
}