]> source.dussan.org Git - svg.js.git/commitdiff
make tests work in node and browser
authorUlrich-Matthias Schäfer <ulima.ums@googlemail.com>
Mon, 12 Nov 2018 18:45:29 +0000 (19:45 +0100)
committerUlrich-Matthias Schäfer <ulima.ums@googlemail.com>
Wed, 28 Nov 2018 12:41:21 +0000 (13:41 +0100)
spec/Dom.js
spec/SpecRunnerEs6.html [new file with mode: 0644]
spec/spec/types/Box.js

index e7574d5c13f298341428f49e38f532e58d15105f..372c46bd2e6877bcb64f268d27506e2bd63b93e9 100644 (file)
@@ -1,4 +1,10 @@
-import svgdom from 'svgdom'
+let svgdom
+if (typeof require === 'function') {
+  svgdom = require('svgdom')
+} else {
+  svgdom = window
+}
+
 export default {
   window: svgdom,
   document: svgdom.document
diff --git a/spec/SpecRunnerEs6.html b/spec/SpecRunnerEs6.html
new file mode 100644 (file)
index 0000000..a2bb70a
--- /dev/null
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8">
+  <title>SVG.js - Jasmine Spec Runner</title>
+
+  <link rel="shortcut icon" type="image/png" href="../node_modules/jasmine-core/images/jasmine_favicon.png">
+  <link rel="stylesheet" href="../node_modules/jasmine-core/lib/jasmine-core/jasmine.css">
+
+  <script src="../node_modules/jasmine-core/lib/jasmine-core/jasmine.js"></script>
+  <script src="../node_modules/jasmine-core/lib/jasmine-core/jasmine-html.js"></script>
+  <script src="../node_modules/jasmine-core/lib/jasmine-core/boot.js"></script>
+  <script src="RAFPlugin.js"></script>
+
+  <link rel="stylesheet" href="fixtures/fixture.css">
+
+  <!-- include source files here... -->
+  <script src="../dist/svg.js" charset="utf-8"></script>
+
+</head>
+
+<body>
+
+  <svg height="0" width="0" id="inlineSVG">
+    <defs>
+      <linearGradient>
+        <stop offset="5%"  stop-color="green"/>
+        <stop offset="95%" stop-color="gold"/>
+      </linearGradient>
+      <radialGradient>
+        <stop offset="10%" stop-color="gold"/>
+        <stop offset="95%" stop-color="green"/>
+      </radialGradient>
+    </defs>
+    <desc>Some description</desc>
+    <path id="lineAB" d="M 100 350 l 150 -300" stroke="red" stroke-width="3" fill="none" />
+    <path id="lineBC" d="M 250 50 l 150 300" stroke="red" stroke-width="3" fill="none" />
+    <path d="M 175 200 l 150 0" stroke="green" stroke-width="3" fill="none" />
+    <path d="M 100 350 q 150 -300 300 0" stroke="blue" stroke-width="5" fill="none" />
+    <g stroke="black" stroke-width="3" fill="black" id="pointGroup">
+      <circle id="pointA" cx="100" cy="350" r="3" />
+      <circle id="pointB" cx="250" cy="50" r="3" />
+      <circle id="pointC" cx="400" cy="350" r="3" />
+    </g>
+    <g font-size="30" font="sans-serif" fill="black" stroke="none" text-anchor="middle" id="labelGroup">
+      <text x="100" y="350" dx="-30">A</text>
+      <text x="250" y="50" dy="-10">B</text>
+      <text x="400" y="350" dx="30">C</text>
+    </g>
+    <polygon points="200,10 250,190 160,210" />
+    <polyline points="20,20 40,25 60,40 80,120 120,140 200,180" />
+  </svg>
+
+
+  <!-- include spec files here... -->
+
+  <script type="module" src="spec/types/ArrayPolyfill.js"></script>
+  <script type="module" src="spec/types/Base.js"></script>
+  <script type="module" src="spec/types/Box.js"></script>
+
+</body>
+</html>
index 689a3a3689567c5295608c30fe1093cb4858e6cb..d431121c779653daf1e33886e9777c5c42c67694 100644 (file)
@@ -7,8 +7,6 @@ import Gradient from '../../../src/elements/Gradient.js'
 import Matrix from '../../../src/types/Matrix.js'
 import Rect from '../../../src/elements/Rect.js'
 
-const bbox = getMethodsFor('Element').bbox
-const rbox = getMethodsFor('Element').rbox
 const viewbox = getMethodsFor('viewbox').viewbox
 
 const { any, objectContaining, arrayContaining } = jasmine
@@ -151,18 +149,18 @@ describe('Box.js', () => {
         const canvas = SVG().addTo(getBody())
         const rect = new Rect().size(100, 200).move(20, 30).addTo(canvas)
 
-        expect(bbox.call(rect)).toEqual(any(Box))
-        expect(bbox.call(rect).toArray()).toEqual([20, 30, 100, 200])
+        expect(rect.bbox()).toEqual(any(Box))
+        expect(rect.bbox().toArray()).toEqual([20, 30, 100, 200])
       })
 
       it('returns the bounding box of the element even if the node is not in the dom', () => {
         const rect = new Rect().size(100, 200).move(20, 30)
-        expect(bbox.call(rect).toArray()).toEqual([20, 30, 100, 200])
+        expect(rect.bbox().toArray()).toEqual([20, 30, 100, 200])
       })
 
       it('throws when it is not possible to get a bbox', () => {
         const gradient = new Gradient('radial')
-        expect(() => bbox.call(gradient)).toThrow()
+        expect(() => gradient.bbox()).toThrow()
       })
     })
 
@@ -180,20 +178,20 @@ describe('Box.js', () => {
         const rect = new Rect().size(100, 200).move(20, 30).addTo(canvas)
           .attr('transform', new Matrix({scale: 2, translate:[40, 50]}))
 
-        expect(rbox.call(rect)).toEqual(any(Box))
-        expect(rbox.call(rect).toArray()).toEqual([80, 110, 200, 400])
+        expect(rect.rbox()).toEqual(any(Box))
+        expect(rect.rbox().toArray()).toEqual([80, 110, 200, 400])
       })
 
       it('returns the BoundingClientRect of the element even if the node is not in the dom', () => {
         const rect = new Rect().size(100, 200).move(20, 30)
           .attr('transform', new Matrix({scale: 2, translate:[40, 50]}))
 
-        expect(rbox.call(rect).toArray()).toEqual([80, 110, 200, 400])
+        expect(rect.rbox().toArray()).toEqual([80, 110, 200, 400])
       })
 
       it('throws when it is not possible to get the BoundingClientRect', () => {
         const gradient = new Gradient('radial')
-        expect(() => rbox.call(gradient)).toThrow()
+        expect(() => gradient.rbox()).toThrow()
       })
     })