]> source.dussan.org Git - svg.js.git/commitdiff
make `at()` method of morphable objects throw when no destination is set (#797) 828/head
authorUlrich-Matthias Schäfer <ulima.ums@googlemail.com>
Sat, 3 Mar 2018 20:11:14 +0000 (21:11 +0100)
committerUlrich-Matthias Schäfer <ulima.ums@googlemail.com>
Sat, 3 Mar 2018 20:11:14 +0000 (21:11 +0100)
14 files changed:
spec/spec/array.js
spec/spec/boxes.js
spec/spec/color.js
spec/spec/matrix.js
spec/spec/number.js
spec/spec/point.js
src/array.js
src/boxes.js
src/color.js
src/matrix.js
src/number.js
src/patharray.js
src/point.js
src/pointarray.js

index 7530ea16dfbdc962a48fc18a9fe2d109c01b44ec..03046caa0dfab7b266400f2db70b1d28c5ff342d 100644 (file)
@@ -113,8 +113,8 @@ describe('Array', function () {
       arr1.morph(arr2)
       expect(arr1.at(0.5).value).toEqual([1.5, 2.5, 3.5, 4.5])
     })
-    it('returns itself if no destination was specified', function() {
-      expect(arr1.at(0.5)).toBe(arr1)
+    it('throws when no destination was specified', function() {
+      expect(arr1.at).toThrow()
     })
   })
 })
@@ -221,8 +221,8 @@ describe('PointArray', function () {
       arr1.morph(arr2)
       expect(arr1.at(0.5).value).toEqual([[1.5, 2.5], [3.5, 4.5]])
     })
-    it('returns itself if no destination was specified', function() {
-      expect(arr1.at(0.5)).toBe(arr1)
+    it('throws when no destination was specified', function() {
+      expect(arr1.at).toThrow()
     })
   })
 })
@@ -394,10 +394,9 @@ describe('PathArray', function () {
       expect(morphedPathArray.value[1][4]).toBe(1)
       expect(morphedPathArray.value[1][5]).toBe(0)
     })
-    it('return itself if the destination attribute is null', function(){
+    it('throws when no destination was specified', function(){
       var pathArray = new SVG.PathArray('M  13 13 A 25 37 0 0 1  43 25')
-      pathArray.destination = null
-      expect(pathArray.at(0.45)).toBe(pathArray)
+      expect(pathArray.at).toThrow()
     })
   })
 
index 9e33c60171bf018193bb98c50c32dfe9e7e71164..cc428e4a5e8a574f498939b0f1a7d451e0a35b31 100644 (file)
@@ -148,9 +148,9 @@ describe('Box', function() {
       expect(box2.toString()).toBe('50 -100 300 300')
       expect(box3.toString()).toBe('30 0 250 300')
     })
-    it('returns itself when no destination given', function() {
+    it('throws itself when no destination was specified', function() {
       var box = new SVG.Box(10, 100, 200, 300)
-      expect(box.at(0.5)).toBe(box)
+      expect(box.at).toThrow()
     })
   })
 })
index 1e8654463a928183341db17cbba752b96703d7aa..b70af1bf311d7fd9ac85d982e3c9a981f9afc1a1 100644 (file)
@@ -77,8 +77,8 @@ describe('Color', function() {
                        expect(morphed.b).toBe(255)
                })
     
-    it('returns itself when no destination specified', function() {
-      expect(color.at(0.5)).toBe(color)
+    it('throws when no destination specified', function() {
+      expect(color.at).toThrow()
     })
        })
 
index 0816f6637ab7bf638b3892f115d741a0265b0dd4..aaebd68e38544fe9cc0106ceabda15233b094325 100644 (file)
@@ -193,9 +193,9 @@ describe('Matrix', function() {
       expect(matrix2.toString()).toBe('matrix(1,0,0,1,4,3)')
       expect(matrix3.toString()).toBe('matrix(1.5,0,0,3,2,1.5)')
     })
-    it('returns itself when no destination specified', function() {
+    it('throws when no destination specified', function() {
       var matrix = new SVG.Matrix(2, 0, 0, 5, 0, 0)
-      expect(matrix.at(0.5)).toBe(matrix)
+      expect(matrix.at).toThrow()
     })
   })
 
index 58c14bd701f20174169b414824c983299f3b0aa5..2d33fef7e77f8df11a201d99fb0c5316231795d8 100644 (file)
@@ -237,8 +237,8 @@ describe('Number', function() {
     it('use the unit of this number as the unit of the returned number when the destination number as no unit', function() {
       expect(expect(new SVG.Number('100s').morph(50).at(0.5).unit).toBe('s'))
     })
-    it('returns itself when no destination specified', function() {
-      expect(number.at(0.5)).toBe(number)
+    it('throws when no destination specified', function() {
+      expect(number.at).toThrow()
     })
   })
 
index 8eacb8452e9455f98dbfdcb39ec85b62a167c8cd..80cc41421b0803570cc7bf1fcfafed3f48c8a951 100644 (file)
@@ -117,9 +117,9 @@ describe('Point', function() {
 
       expect(point3).toEqual(new SVG.Point(1.5, 1.5))
     })
-    it('returns itself when no destination specified', function() {
+    it('throws when no destination specified', function() {
       var point = new SVG.Point(1,1)
-      expect(point.at(0.4)).toBe(point)
+      expect(point.at).toThrow()
     })
   })
 
index ca51d8e2c19b7322cfe59919844d710dcaf301af..5ce01607207501cbc301590f8db2da686d770eee 100644 (file)
@@ -49,7 +49,7 @@ SVG.extend(SVG.Array, {
   // Get morphed array at given position
   at: function (pos) {
     // make sure a destination is defined
-    if (!this.destination) return this
+    if (!this.destination) throw new Error('No destination set')
 
     // generate morphed array
     for (var i = 0, il = this.value.length, array = []; i < il; i++) {
index f0154bd55a8a5d04b9b65d38ca4e3e8af678da4c..de96081e01a9c9a1899537e2cb0cac2c3d7ebd46 100644 (file)
@@ -74,7 +74,7 @@ SVG.Box = SVG.invent({
     },
 
     at: function (pos) {
-      if (!this.destination) return this
+      if (!this.destination) throw new Error('No destination set')
 
       return new SVG.Box(
           this.x + (this.destination.x - this.x) * pos
index 8f47f7015721417626bb159cebd9f365eeed6606..22b85063a2d7cca18e4194c8750ebaa7997d049c 100644 (file)
@@ -68,7 +68,7 @@ SVG.extend(SVG.Color, {
   // Get morphed color at given position
   at: function (pos) {
     // make sure a destination is defined
-    if (!this.destination) return this
+    if (!this.destination) throw new Error('No destination set')
 
     // normalise pos
     pos = pos < 0 ? 0 : pos > 1 ? 1 : pos
index e823a8100af739aaac1499235df9567ef66bc315..8028b15761bc18778ea0b4f6b1928cfdd9c59bcc 100644 (file)
@@ -68,7 +68,7 @@ SVG.Matrix = SVG.invent({
     // Get morphed matrix at a given position
     at: function (pos) {
       // make sure a destination is defined
-      if (!this.destination) return this
+      if (!this.destination) throw new Error('No destination set')
 
       // calculate morphed matrix at a given position
       var matrix = new SVG.Matrix({
index 6413f9470ae330d5b659a02b8d990942c4c36974..ba95151e57209bd2881dc284a5acbc31253db6e0 100644 (file)
@@ -91,7 +91,7 @@ SVG.Number = SVG.invent({
     // Get morphed number at given position
     at: function (pos) {
       // Make sure a destination is defined
-      if (!this.destination) return this
+      if (!this.destination) throw new Error('No destination set')
 
       // Generate new morphed number
       return new SVG.Number(this.destination)
index d9ffecdc6e8629def031d78095fdba8c6ce6f2a5..ca585137600919d18b9b569d3cf8a279b7cab38d 100644 (file)
@@ -195,7 +195,7 @@ SVG.extend(SVG.PathArray, {
   // Get morphed path array at given position
   at: function (pos) {
     // make sure a destination is defined
-    if (!this.destination) return this
+    if (!this.destination) throw new Error('No destination set')
 
     var sourceArray = this.value
     var destinationArray = this.destination.value
index 682092e53835a9dc955d4ba7bab3b014e9325e05..72a9572651c03b4f31ac9dc257e7049d4456ffc9 100644 (file)
@@ -32,7 +32,7 @@ SVG.Point = SVG.invent({
     // Get morphed point at a given position
     at: function (pos) {
       // make sure a destination is defined
-      if (!this.destination) return this
+      if (!this.destination) throw new Error('No destination set')
 
       // calculate morphed matrix at a given position
       var point = new SVG.Point({
index ecf5c40aff9044f14dbd6044062b2b4e505e3a47..6229e2ee1c012bd973f097a349b6c9cdf6efe787 100644 (file)
@@ -32,7 +32,7 @@ SVG.extend(SVG.PointArray, {
   // Get morphed array at given position
   at: function (pos) {
     // make sure a destination is defined
-    if (!this.destination) return this
+    if (!this.destination) throw new Error('No destination set')
 
     // generate morphed point string
     for (var i = 0, il = this.value.length, array = []; i < il; i++) {