]> source.dussan.org Git - svg.js.git/commitdiff
fixing tests
authorUlrich-Matthias Schäfer <ulima.ums@googlemail.com>
Wed, 10 Oct 2018 21:03:58 +0000 (23:03 +0200)
committerUlrich-Matthias Schäfer <ulima.ums@googlemail.com>
Wed, 10 Oct 2018 21:03:58 +0000 (23:03 +0200)
spec/SpecRunner.html
spec/spec/animator.js
spec/spec/morphing.js
spec/spec/runner.js
src/morph.js
src/runner.js

index efc58a3c8d0e9b0bd4afbb07c5b5c0b0b8094af3..2a9b8d8e2d76e458ba9c4760bc840630a8b6eb04 100644 (file)
@@ -84,7 +84,7 @@
   <script src="spec/line.js"></script>
   <script src="spec/marker.js"></script>
   <script src="spec/mask.js"></script>-->
-  <script src="spec/matrix.js"></script>
+  <!--<script src="spec/matrix.js"></script>-->
   <!--<script src="spec/number.js"></script>
   <script src="spec/path.js"></script>
   <script src="spec/pattern.js"></script>
   <script src="spec/utils.js"></script>
   <script src="spec/viewbox.js"></script> -->
 
-  <!-- <script src="spec/morphing.js"></script>
+  <script src="spec/morphing.js"></script>
   <script src="spec/animator.js"></script>
-  <script src="spec/runner.js"></script> -->
+  <script src="spec/runner.js"></script>
 </body>
 </html>
index a331c16cdfa636879cec50b34776fd15f53a1ab8..a36408c5c9b8a752780815dcbb13301dfbad6633 100644 (file)
@@ -27,7 +27,7 @@ describe('SVG.Animator', function () {
     it('cancels a timeout which was created with timeout()', function () {
       var spy = jasmine.createSpy('tester')
       var id = SVG.Animator.timeout(spy, 100)
-      SVG.Animator.cancelTimeout(id)
+      SVG.Animator.clearTimeout(id)
 
       expect(spy).not.toHaveBeenCalled()
       jasmine.RequestAnimationFrame.tick(100)
index 63a6cf25768b8971695b5125165a441bf373661f..4074d7e56164bd68068d8d436ec00eb6c2182e96 100644 (file)
@@ -103,14 +103,14 @@ describe('Morphing', function () {
     })
 
     it(`Creates a morphable out of an SVG.Morphable.TransformBag`, function () {
-      var morpher = new SVG.Morphable.TransformBag({}).to({rotate: 50, translateX: 20})
+      var morpher = new SVG.Morphable.TransformBag({rotate: 0, translateX: 0})
+        .to({rotate: 50, translateX: 20})
 
       expect(morpher instanceof SVG.Morphable).toBe(true)
       expect(morpher.type()).toBe(SVG.Morphable.TransformBag)
       expect(morpher.at(0.5) instanceof SVG.Morphable.TransformBag).toBe(true)
 
-      // TODO: This fails because of roundingerrors and the FIXME above
-      expect(morpher.at(0.5).valueOf().decompose()).toBe(jasmine.objectContaining({rotate: 25, translateX: 10}))
+      expect(morpher.at(0.5)).toEqual(jasmine.objectContaining({rotate: 25, translateX: 10}))
     })
 
     it(`Creates a morphable out of an SVG.Morphable.ObjectBag`, function () {
index 1b7ed41da88ed12d2a95637f709ca6f346ccc2bf..c1c59729cffaecb250e6ae2621c10858a9e41bc5 100644 (file)
@@ -125,10 +125,10 @@ describe('SVG.Runner', function () {
       runner.queue(initFn, runFn, true)
 
       expect(runner._queue[0]).toEqual(jasmine.objectContaining({
-        alwaysInitialise: true,
         initialiser: initFn,
         initialised: false,
-        runner: runFn
+        runner: runFn,
+        finished: false
       }))
     })
   })
@@ -182,7 +182,7 @@ describe('SVG.Runner', function () {
       expect(runner.step()).toBe(runner)
     })
 
-    it('calls initFn once and runFn at every step when alwaysInitialise is false', function() {
+    it('calls initFn once and runFn at every step', function() {
       var runner = new SVG.Runner()
       runner.queue(initFn, runFn, false)
 
@@ -195,8 +195,8 @@ describe('SVG.Runner', function () {
       expect(runFn.calls.count()).toBe(2)
     })
 
-    it('calls initFn and runFn at every step when alwaysInitialise is true', function() {
-      var runner = new SVG.Runner()
+    it('calls initFn on every step if its declaritive', function() {
+      var runner = new SVG.Runner(new SVG.Controller())
       runner.queue(initFn, runFn, true)
 
       runner.step()
@@ -775,13 +775,17 @@ describe('SVG.Runner', function () {
       var runner = new SVG.Runner(1000)
       var timeline = new SVG.Timeline()
 
-      // FIXME: schedulung a runner on a timeline does not set the timeline for the runner!
       runner.schedule(timeline)
 
-      var runner2 = runner.animate(1000)
+      var runner2 = runner.animate(500, 1000)
 
       expect(runner2.timeline()).toBe(timeline)
       expect(runner2.time()).toBe(-1000)
+
+      expect(timeline.schedule()).toEqual(jasmine.objectContaining([
+        jasmine.objectContaining({start: 0, duration: 1000, end: 1000, runner: runner}),
+        jasmine.objectContaining({start: 1000, duration: 500, end: 1500, runner: runner2})
+      ]))
     })
   })
 
index 6a9e6511eae2a627038ef4ceb94d8e9e74b721bf..bf94efc47d6b730e8a70909dd1162e61bc5c2aa0 100644 (file)
@@ -21,12 +21,11 @@ SVG.Morphable = SVG.invent({
       return this
     },
 
-    to: function (val, modifier) {
+    to: function (val) {
       if(val == null)
         return this._to
 
       this._to = this._set(val)
-      this.modifier = modifier || this.modifier
       return this
     },
 
@@ -131,7 +130,7 @@ SVG.Morphable.NonMorphable = SVG.invent({
   }
 })
 
-SVG.Morphable.TransformBag2 = SVG.invent({
+SVG.Morphable.TransformBag = SVG.invent({
   create: function (obj) {
     if(Array.isArray(obj)) {
       obj = {
@@ -146,7 +145,7 @@ SVG.Morphable.TransformBag2 = SVG.invent({
       }
     }
 
-    Object.assign(this, obj)
+    Object.assign(this, SVG.Morphable.TransformBag.defaults, obj)
   },
 
   extend: {
@@ -167,57 +166,68 @@ SVG.Morphable.TransformBag2 = SVG.invent({
   }
 })
 
-SVG.Morphable.TransformBag = SVG.invent({
-  inherit: SVG.Matrix,
-  create: function (obj) {
-    if(Array.isArray(obj)) {
-      obj = {
-        scaleX: obj[0],
-        scaleY: obj[1],
-        shear: obj[2],
-        rotate: obj[3],
-        translateX: obj[4],
-        translateY: obj[5],
-        originX: obj[6],
-        originY: obj[7]
-      }
-    }
-
-    var data = {...(obj || {})}
-
-    if (typeof data.origin == 'string') {
-      delete data.origin
-    }
-
-    SVG.Matrix.call(this, data)
-
-
-    if (data.origin) {
-      data.originX = data.origin[0]
-      data.originY = data.origin[1]
-    }
-
-    this.originX = data.originX || 0
-    this.originY = data.originY || 0
-  },
-
-  extend: {
-    toArray: function (){
-      var v = this.decompose(this.originX, this.originY)
+SVG.Morphable.TransformBag.defaults = {
+  scaleX: 1,
+  scaleY: 1,
+  shear: 0,
+  rotate: 0,
+  translateX: 0,
+  translateY: 0,
+  originX: 0,
+  originY: 0
+}
 
-      return [
-        v.scaleX,
-        v.scaleY,
-        v.shear,
-        v.rotate,
-        v.translateX,
-        v.translateY,
-        v.originX,
-        v.originY,
-      ]
-    }
-  }
-})
+// SVG.Morphable.TransformBag = SVG.invent({
+//   inherit: SVG.Matrix,
+//   create: function (obj) {
+//     if(Array.isArray(obj)) {
+//       obj = {
+//         scaleX: obj[0],
+//         scaleY: obj[1],
+//         shear: obj[2],
+//         rotate: obj[3],
+//         translateX: obj[4],
+//         translateY: obj[5],
+//         originX: obj[6],
+//         originY: obj[7]
+//       }
+//     }
+//
+//     var data = {...(obj || {})}
+//
+//     if (typeof data.origin == 'string') {
+//       delete data.origin
+//     }
+//
+//     SVG.Matrix.call(this, data)
+//
+//
+//     if (data.origin) {
+//       data.originX = data.origin[0]
+//       data.originY = data.origin[1]
+//     }
+//
+//     this.originX = data.originX || 0
+//     this.originY = data.originY || 0
+//   },
+//
+//   extend: {
+//     toArray: function (){
+//       var v = this.decompose(this.originX, this.originY)
+//
+//       return [
+//         v.scaleX,
+//         v.scaleY,
+//         v.shear,
+//         v.rotate,
+//         v.translateX,
+//         v.translateY,
+//         v.originX,
+//         v.originY,
+//       ]
+//     }
+//   }
+// })
 
 
 SVG.Morphable.ObjectBag = SVG.invent({
@@ -264,7 +274,6 @@ SVG.MorphableTypes = [
   SVG.PathArray,
   SVG.Morphable.NonMorphable,
   SVG.Morphable.TransformBag,
-  SVG.Morphable.TransformBag2,
   SVG.Morphable.ObjectBag,
 ]
 
index 3af1ca19f0c45927212a4b164b5b89dc5598e73b..788563c83a3c75d51a41b5fcbfdea8dbcdbafd06 100644 (file)
@@ -688,7 +688,7 @@ SVG.extend(SVG.Runner, {
 
     // Create a morepher and set its type
     const morpher = new SVG.Morphable()
-      .type( affine ? SVG.Morphable.TransformBag2 : SVG.Matrix )
+      .type( affine ? SVG.Morphable.TransformBag : SVG.Matrix )
       .stepper(this._stepper)
 
     let origin