konva/test/unit/shapes/RegularPolygon-test.js

154 lines
3.7 KiB
JavaScript
Raw Normal View History

suite('RegularPolygon', function() {
// ======================================================
test('add regular polygon triangle', function() {
2013-09-09 12:36:54 +08:00
var stage = addStage();
2015-08-28 11:11:10 +08:00
2015-01-27 15:07:51 +08:00
var layer = new Konva.Layer();
2015-01-27 15:07:51 +08:00
var poly = new Konva.RegularPolygon({
x: 200,
y: 100,
sides: 3,
radius: 50,
fill: 'green',
stroke: 'blue',
strokeWidth: 5,
name: 'foobar',
2014-01-05 15:56:33 +08:00
center: {
x: 0,
y: -50
}
});
layer.add(poly);
stage.add(layer);
2015-08-28 11:11:10 +08:00
assert.equal(poly.getClassName(), 'RegularPolygon');
});
// ======================================================
test('add regular polygon square', function() {
2013-09-09 12:36:54 +08:00
var stage = addStage();
2015-01-27 15:07:51 +08:00
var layer = new Konva.Layer();
2015-01-27 15:07:51 +08:00
var poly = new Konva.RegularPolygon({
x: 200,
y: 100,
sides: 4,
radius: 50,
fill: 'green',
stroke: 'blue',
strokeWidth: 5,
name: 'foobar'
});
layer.add(poly);
stage.add(layer);
});
2015-08-28 11:11:10 +08:00
// ======================================================
test('add regular polygon pentagon', function() {
2013-09-09 12:36:54 +08:00
var stage = addStage();
2015-01-27 15:07:51 +08:00
var layer = new Konva.Layer();
2015-01-27 15:07:51 +08:00
var poly = new Konva.RegularPolygon({
x: 200,
y: 100,
sides: 5,
radius: 50,
fill: 'green',
stroke: 'blue',
strokeWidth: 5,
name: 'foobar'
});
layer.add(poly);
stage.add(layer);
});
2015-08-28 11:11:10 +08:00
// ======================================================
test('add regular polygon octogon', function() {
2013-09-09 12:36:54 +08:00
var stage = addStage();
2015-01-27 15:07:51 +08:00
var layer = new Konva.Layer();
2015-01-27 15:07:51 +08:00
var poly = new Konva.RegularPolygon({
x: 200,
y: 100,
sides: 8,
radius: 50,
fill: 'green',
stroke: 'blue',
strokeWidth: 5,
name: 'foobar'
});
layer.add(poly);
stage.add(layer);
});
// ======================================================
test('attr sync', function() {
var stage = addStage();
var layer = new Konva.Layer();
var poly = new Konva.RegularPolygon({
x: 200,
y: 100,
sides: 5,
radius: 50,
fill: 'green',
stroke: 'blue',
strokeWidth: 5,
name: 'foobar'
});
layer.add(poly);
stage.add(layer);
assert.equal(poly.getWidth(), 100);
assert.equal(poly.getHeight(), 100);
poly.setWidth(120);
assert.equal(poly.radius(), 60);
assert.equal(poly.getHeight(), 120);
poly.setHeight(140);
assert.equal(poly.radius(), 70);
assert.equal(poly.getHeight(), 140);
});
test('polygon cache', function() {
2016-02-28 16:57:15 +08:00
Konva.pixelRatio = 1;
var stage = addStage();
var layer = new Konva.Layer();
var poly = new Konva.RegularPolygon({
x: 200,
y: 100,
sides: 5,
radius: 50,
fill: 'green',
2016-02-28 16:57:15 +08:00
stroke: 'black',
strokeWidth: 5,
name: 'foobar'
});
poly.cache();
layer.add(poly);
stage.add(layer);
assert.deepEqual(poly.getSelfRect(), {
x : -50,
y : -50,
height : 100,
width : 100
});
2015-08-28 11:11:10 +08:00
if (!window.isPhantomJS) {
2016-02-28 16:57:15 +08:00
cloneAndCompareLayer(layer, 254);
}
2016-02-28 16:57:15 +08:00
Konva.pixelRatio = undefined;
});
2015-08-28 11:11:10 +08:00
});