From b7285592f968dfff78a683ad6a82955448c77bd6 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 8 Mar 2016 05:01:33 +0100 Subject: cssanimation: Compute progress correctly We were computing the wrong progress, in particular when the iteration count was non-integer. Test included. --- testsuite/reftests/Makefile.am | 3 + .../animation-fill-mode-iteration-count.css | 83 ++ .../animation-fill-mode-iteration-count.ref.ui | 1117 ++++++++++++++++++ .../animation-fill-mode-iteration-count.ui | 1213 ++++++++++++++++++++ 4 files changed, 2416 insertions(+) create mode 100644 testsuite/reftests/animation-fill-mode-iteration-count.css create mode 100644 testsuite/reftests/animation-fill-mode-iteration-count.ref.ui create mode 100644 testsuite/reftests/animation-fill-mode-iteration-count.ui (limited to 'testsuite') diff --git a/testsuite/reftests/Makefile.am b/testsuite/reftests/Makefile.am index cd005233cc..0183508cb1 100644 --- a/testsuite/reftests/Makefile.am +++ b/testsuite/reftests/Makefile.am @@ -83,6 +83,9 @@ testdata = \ animation-direction.css \ animation-direction.ref.ui \ animation-direction.ui \ + animation-fill-mode-iteration-count.css \ + animation-fill-mode-iteration-count.ref.ui \ + animation-fill-mode-iteration-count.ui \ background-area.css \ background-area.ref.ui \ background-area.ui \ diff --git a/testsuite/reftests/animation-fill-mode-iteration-count.css b/testsuite/reftests/animation-fill-mode-iteration-count.css new file mode 100644 index 0000000000..db65050bb4 --- /dev/null +++ b/testsuite/reftests/animation-fill-mode-iteration-count.css @@ -0,0 +1,83 @@ +@keyframes cssrocks { + from { background-color: yellow; } + to { background-color: red; } +} + +box { + background-color: blue; + animation-fill-mode: both; + animation-duration: 100s; + padding: 1px; + background-clip: content-box; + animation-timing-function: linear; +} + +.after { + animation-name: cssrocks; + animation-delay: -10000s; +} + +.before { + animation-name: cssrocks; + animation-delay: 10000s; +} + +.normal { + animation-direction: normal; +} + +.reverse { + animation-direction: reverse; +} + +.alternate { + animation-direction: alternate; +} + +.alternate-reverse { + animation-direction: alternate-reverse; +} + +.x0 { + animation-iteration-count: 0; +} + +.x02 { + animation-iteration-count: 0.2; +} + +.x1 { + animation-iteration-count: 1; +} + +.x12 { + animation-iteration-count: 1.2; +} + +.x2 { + animation-iteration-count: 2; +} + +.x22 { + animation-iteration-count: 2.2; +} + +.yellow { + animation: none; + background-color: yellow; +} + +.red { + animation: none; + background-color: red; +} + +.darkorange { + animation: none; + background-color: rgb(255,51,0); +} + +.lightorange { + animation: none; + background-color: rgb(255,204,0); +} diff --git a/testsuite/reftests/animation-fill-mode-iteration-count.ref.ui b/testsuite/reftests/animation-fill-mode-iteration-count.ref.ui new file mode 100644 index 0000000000..914e4e8cbc --- /dev/null +++ b/testsuite/reftests/animation-fill-mode-iteration-count.ref.ui @@ -0,0 +1,1117 @@ + + + + + + False + + + True + False + + + True + False + normal + + + 0 + 1 + + + + + True + False + reverse + + + 0 + 2 + + + + + True + False + alternate + + + 0 + 3 + + + + + True + False + alternate-reverse + + + 0 + 4 + + + + + True + False + --> +2⅕x + + + 12 + 0 + + + + + 50 + 50 + True + False + vertical + + + + + + + 12 + 1 + + + + + 50 + 50 + True + False + vertical + + + + + + + 12 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 12 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 12 + 4 + + + + + 50 + 50 + True + False + vertical + + + + + + + 11 + 4 + + + + + 50 + 50 + True + False + vertical + + + + + + + 11 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 11 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 11 + 1 + + + + + True + False + <-- +2⅕x + + + 11 + 0 + + + + + True + False + --> +2x + + + 10 + 0 + + + + + 50 + 50 + True + False + vertical + + + + + + + 10 + 1 + + + + + 50 + 50 + True + False + vertical + + + + + + + 10 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 10 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 10 + 4 + + + + + 50 + 50 + True + False + vertical + + + + + + + 9 + 4 + + + + + 50 + 50 + True + False + vertical + + + + + + + 9 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 9 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 9 + 1 + + + + + True + False + <-- +2x + + + 9 + 0 + + + + + True + False + --> +1⅕x + + + 8 + 0 + + + + + 50 + 50 + True + False + vertical + + + + + + + 8 + 1 + + + + + 50 + 50 + True + False + vertical + + + + + + + 8 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 8 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 8 + 4 + + + + + True + False + <-- +1⅕x + + + 7 + 0 + + + + + 50 + 50 + True + False + vertical + + + + + + + 7 + 1 + + + + + 50 + 50 + True + False + vertical + + + + + + + 7 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 7 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 7 + 4 + + + + + True + False + --> +1x + + + 6 + 0 + + + + + 50 + 50 + True + False + vertical + + + + + + + 6 + 1 + + + + + 50 + 50 + True + False + vertical + + + + + + + 6 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 6 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 6 + 4 + + + + + True + False + <-- +1x + + + 5 + 0 + + + + + 50 + 50 + True + False + vertical + + + + + + + 5 + 1 + + + + + 50 + 50 + True + False + vertical + + + + + + + 5 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 5 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 5 + 4 + + + + + True + False + <-- +⅕x + + + 3 + 0 + + + + + True + False + --> +⅕x + + + 4 + 0 + + + + + 50 + 50 + True + False + vertical + + + + + + + 3 + 1 + + + + + 50 + 50 + True + False + vertical + + + + + + + 4 + 1 + + + + + 50 + 50 + True + False + vertical + + + + + + + 3 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 4 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 3 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 3 + 4 + + + + + 50 + 50 + True + False + vertical + + + + + + + 4 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 4 + 4 + + + + + True + False + <-- +0x + + + 1 + 0 + + + + + True + False + --> +0x + + + 2 + 0 + + + + + 50 + 50 + True + False + vertical + + + + + + + 1 + 1 + + + + + 50 + 50 + True + False + vertical + + + + + + + 1 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 1 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 1 + 4 + + + + + 50 + 50 + True + False + vertical + + + + + + + 2 + 4 + + + + + 50 + 50 + True + False + vertical + + + + + + + 2 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 2 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 2 + 1 + + + + + + + + + diff --git a/testsuite/reftests/animation-fill-mode-iteration-count.ui b/testsuite/reftests/animation-fill-mode-iteration-count.ui new file mode 100644 index 0000000000..cfb64c74fa --- /dev/null +++ b/testsuite/reftests/animation-fill-mode-iteration-count.ui @@ -0,0 +1,1213 @@ + + + + + + False + + + True + False + + + True + False + normal + + + 0 + 1 + + + + + True + False + reverse + + + 0 + 2 + + + + + True + False + alternate + + + 0 + 3 + + + + + True + False + alternate-reverse + + + 0 + 4 + + + + + True + False + --> +2⅕x + + + 12 + 0 + + + + + 50 + 50 + True + False + vertical + + + + + + + 12 + 1 + + + + + 50 + 50 + True + False + vertical + + + + + + + 12 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 12 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 12 + 4 + + + + + True + False + <-- +2⅕x + + + 11 + 0 + + + + + 50 + 50 + True + False + vertical + + + + + + + 11 + 1 + + + + + 50 + 50 + True + False + vertical + + + + + + + 11 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 11 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 11 + 4 + + + + + 50 + 50 + True + False + vertical + + + + + + + 10 + 4 + + + + + 50 + 50 + True + False + vertical + + + + + + + 10 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 10 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 10 + 1 + + + + + True + False + --> +2x + + + 10 + 0 + + + + + True + False + <-- +2x + + + 9 + 0 + + + + + 50 + 50 + True + False + vertical + + + + + + + 9 + 1 + + + + + 50 + 50 + True + False + vertical + + + + + + + 9 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 9 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 9 + 4 + + + + + True + False + --> +1⅕x + + + 8 + 0 + + + + + 50 + 50 + True + False + vertical + + + + + + + 8 + 1 + + + + + 50 + 50 + True + False + vertical + + + + + + + 8 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 8 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 8 + 4 + + + + + 50 + 50 + True + False + vertical + + + + + + + 7 + 4 + + + + + 50 + 50 + True + False + vertical + + + + + + + 7 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 7 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 7 + 1 + + + + + True + False + <-- +1⅕x + + + 7 + 0 + + + + + True + False + --> +1x + + + 6 + 0 + + + + + 50 + 50 + True + False + vertical + + + + + + + 6 + 1 + + + + + 50 + 50 + True + False + vertical + + + + + + + 6 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 6 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 6 + 4 + + + + + True + False + <-- +1x + + + 5 + 0 + + + + + 50 + 50 + True + False + vertical + + + + + + + 5 + 1 + + + + + 50 + 50 + True + False + vertical + + + + + + + 5 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 5 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 5 + 4 + + + + + True + False + <-- +⅕x + + + 3 + 0 + + + + + True + False + --> +⅕x + + + 4 + 0 + + + + + 50 + 50 + True + False + vertical + + + + + + + 3 + 1 + + + + + 50 + 50 + True + False + vertical + + + + + + + 4 + 1 + + + + + 50 + 50 + True + False + vertical + + + + + + + 4 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 3 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 3 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 4 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 3 + 4 + + + + + 50 + 50 + True + False + vertical + + + + + + + 4 + 4 + + + + + True + False + <-- +0x + + + 1 + 0 + + + + + True + False + --> +0x + + + 2 + 0 + + + + + 50 + 50 + True + False + vertical + + + + + + + 1 + 1 + + + + + 50 + 50 + True + False + vertical + + + + + + + 2 + 1 + + + + + 50 + 50 + True + False + vertical + + + + + + + 2 + 2 + + + + + 50 + 50 + True + False + vertical + + + + + + + 2 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 2 + 4 + + + + + 50 + 50 + True + False + vertical + + + + + + + 1 + 4 + + + + + 50 + 50 + True + False + vertical + + + + + + + 1 + 3 + + + + + 50 + 50 + True + False + vertical + + + + + + + 1 + 2 + + + + + + + + + -- cgit v1.2.1