paper.js/test/tests/Shape.js

87 lines
2.1 KiB
JavaScript
Raw Normal View History

/*
* Paper.js - The Swiss Army Knife of Vector Graphics Scripting.
* http://paperjs.org/
*
* Copyright (c) 2011 - 2020, Jürg Lehni & Jonathan Puckey
* http://juerglehni.com/ & https://puckey.studio/
*
* Distributed under the MIT license. See LICENSE file for details.
*
* All rights reserved.
*/
QUnit.module('Shape');
test('shape.toPath().toShape()', function() {
var shapes = {
circle: new Shape.Circle({
center: [100, 100],
radius: 50,
fillColor: 'red'
}),
ellipse: new Shape.Ellipse({
center: [100, 200],
radius: [50, 25],
fillColor: 'blue',
strokeColor: 'black',
strokeWidth: 4,
rotation: 20
}),
rect: new Shape.Rectangle({
center: [100, 300],
size: [100, 50],
fillColor: 'green',
strokeColor: 'black',
strokeWidth: 4,
rotation: -20
}),
roundRect: new Shape.Rectangle({
center: [100, 400],
size: [50, 100],
radius: [15, 20],
fillColor: 'orange',
strokeColor: 'black',
strokeWidth: 4,
rotation: 20
})
};
Base.each(shapes, function(shape, name) {
equals(shape.toPath().toShape(), shape, name + '.toPath().toShape()');
});
});
test('new Shape.Rectangle() with position set before size', function() {
var shape1 = new Shape.Rectangle({
position: [0, 0],
size: new Size(100, 100)
});
equals(shape1.bounds.width, 100);
});
test('Shape.Rectangle radius works with negative size', function() {
var shape = new Shape.Rectangle({
center: [50, 50],
size: 50,
fillColor: 'black'
});
shape.size = [-25, -25];
equals(shape.radius.width, 0);
equals(shape.radius.height, 0);
shape.radius = [10, 50];
shape.size = [50, -25];
equals(shape.radius.width, 10);
equals(shape.radius.height, 12.5);
shape.size = [50, 75];
equals(shape.radius.height, 12.5);
});