--- /dev/null
+<!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>
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
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()
})
})
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()
})
})