diff options
author | Ulrich-Matthias Schäfer <ulima.ums@googlemail.com> | 2018-11-12 19:45:29 +0100 |
---|---|---|
committer | Ulrich-Matthias Schäfer <ulima.ums@googlemail.com> | 2018-11-28 13:41:21 +0100 |
commit | fa0461eeddf65a249e1a674305684ae756a69965 (patch) | |
tree | aea20dc74eb5f9e71fb3ef3d3fbe2c6215a612a4 | |
parent | e03e0323edd1e6580a355952d6cfc1a4436b42df (diff) | |
download | svg.js-fa0461eeddf65a249e1a674305684ae756a69965.tar.gz svg.js-fa0461eeddf65a249e1a674305684ae756a69965.zip |
make tests work in node and browser
-rw-r--r-- | spec/Dom.js | 8 | ||||
-rw-r--r-- | spec/SpecRunnerEs6.html | 62 | ||||
-rw-r--r-- | spec/spec/types/Box.js | 18 |
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() }) }) |