summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlrich-Matthias Schäfer <ulima.ums@googlemail.com>2018-11-12 19:45:29 +0100
committerUlrich-Matthias Schäfer <ulima.ums@googlemail.com>2018-11-28 13:41:21 +0100
commitfa0461eeddf65a249e1a674305684ae756a69965 (patch)
treeaea20dc74eb5f9e71fb3ef3d3fbe2c6215a612a4
parente03e0323edd1e6580a355952d6cfc1a4436b42df (diff)
downloadsvg.js-fa0461eeddf65a249e1a674305684ae756a69965.tar.gz
svg.js-fa0461eeddf65a249e1a674305684ae756a69965.zip
make tests work in node and browser
-rw-r--r--spec/Dom.js8
-rw-r--r--spec/SpecRunnerEs6.html62
-rw-r--r--spec/spec/types/Box.js18
3 files changed, 77 insertions, 11 deletions
diff --git a/spec/Dom.js b/spec/Dom.js
index e7574d5..372c46b 100644
--- a/spec/Dom.js
+++ b/spec/Dom.js
@@ -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
index 0000000..a2bb70a
--- /dev/null
+++ b/spec/SpecRunnerEs6.html
@@ -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>
diff --git a/spec/spec/types/Box.js b/spec/spec/types/Box.js
index 689a3a3..d431121 100644
--- a/spec/spec/types/Box.js
+++ b/spec/spec/types/Box.js
@@ -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()
})
})