mirror of
https://github.com/Hopiu/fabric.js.git
synced 2026-03-20 07:50:24 +00:00
130 lines
No EOL
3.4 KiB
JavaScript
130 lines
No EOL
3.4 KiB
JavaScript
(function(){
|
|
|
|
module('fabric.Ellipse');
|
|
|
|
test('constructor', function() {
|
|
ok(fabric.Ellipse);
|
|
|
|
var ellipse = new fabric.Ellipse();
|
|
|
|
ok(ellipse instanceof fabric.Ellipse, 'should inherit from fabric.Ellipse');
|
|
ok(ellipse instanceof fabric.Object, 'should inherit from fabric.Object');
|
|
|
|
equals(ellipse.type, 'ellipse');
|
|
});
|
|
|
|
test('complexity', function() {
|
|
var ellipse = new fabric.Ellipse();
|
|
ok(typeof ellipse.complexity == 'function');
|
|
equals(ellipse.complexity(), 1);
|
|
});
|
|
|
|
test('toObject', function() {
|
|
var ellipse = new fabric.Ellipse();
|
|
var defaultProperties = {
|
|
'type': 'ellipse',
|
|
'left': 0,
|
|
'top': 0,
|
|
'width': 0,
|
|
'height': 0,
|
|
'fill': 'rgb(0,0,0)',
|
|
'overlayFill': null,
|
|
'stroke': null,
|
|
'strokeWidth': 1,
|
|
'scaleX': 1,
|
|
'scaleY': 1,
|
|
'angle': 0,
|
|
'flipX': false,
|
|
'flipY': false,
|
|
'opacity': 1,
|
|
'rx': 0,
|
|
'ry': 0,
|
|
'selectable': true
|
|
};
|
|
ok(typeof ellipse.toObject == 'function');
|
|
same(defaultProperties, ellipse.toObject());
|
|
|
|
ellipse.set('left', 100).set('top', 200).set('rx', 15).set('ry', 25);
|
|
|
|
var augmentedProperties = fabric.util.object.extend(fabric.util.object.clone(defaultProperties), {
|
|
left: 100,
|
|
top: 200,
|
|
rx: 15,
|
|
ry: 25
|
|
});
|
|
|
|
same(augmentedProperties, ellipse.toObject());
|
|
});
|
|
|
|
test('render', function() {
|
|
var ellipse = new fabric.Ellipse();
|
|
ellipse.set('rx', 0).set('ry', 0);
|
|
|
|
var wasRenderCalled = false;
|
|
|
|
ellipse._render = function(){
|
|
wasRenderCalled = true;
|
|
}
|
|
ellipse.render({});
|
|
|
|
equals(wasRenderCalled, false, 'should not render when rx/ry are 0');
|
|
});
|
|
|
|
test('fromElement', function() {
|
|
ok(typeof fabric.Ellipse.fromElement == 'function');
|
|
|
|
var elEllipse = document.createElement('ellipse'),
|
|
rx = 5,
|
|
ry = 7,
|
|
left = 12,
|
|
top = 15,
|
|
fill = 'ff5555',
|
|
fillOpacity = 0.5,
|
|
strokeWidth = 2;
|
|
|
|
elEllipse.setAttribute('rx', rx);
|
|
elEllipse.setAttribute('ry', ry);
|
|
elEllipse.setAttribute('cx', left);
|
|
elEllipse.setAttribute('cy', top);
|
|
elEllipse.setAttribute('fill', fill);
|
|
elEllipse.setAttribute('fill-opacity', fillOpacity);
|
|
elEllipse.setAttribute('stroke-width', strokeWidth);
|
|
|
|
var oEllipse = fabric.Ellipse.fromElement(elEllipse);
|
|
ok(oEllipse instanceof fabric.Ellipse);
|
|
|
|
equals(oEllipse.get('rx'), rx);
|
|
equals(oEllipse.get('ry'), ry);
|
|
equals(oEllipse.get('left'), left);
|
|
equals(oEllipse.get('top'), top);
|
|
equals(oEllipse.get('fill'), fill);
|
|
equals(oEllipse.get('opacity'), fillOpacity);
|
|
equals(oEllipse.get('strokeWidth'), strokeWidth);
|
|
});
|
|
|
|
test('fromObject', function() {
|
|
ok(typeof fabric.Ellipse == 'function');
|
|
|
|
var left = 112,
|
|
top = 234,
|
|
rx = 13.45,
|
|
ry = 14.78,
|
|
fill = 'ff5555';
|
|
|
|
var ellipse = fabric.Ellipse.fromObject({
|
|
left: left, top: top, rx: rx, ry: ry, fill: fill
|
|
});
|
|
ok(ellipse instanceof fabric.Ellipse);
|
|
|
|
equals(ellipse.get('left'), left);
|
|
equals(ellipse.get('top'), top);
|
|
equals(ellipse.get('rx'), rx);
|
|
equals(ellipse.get('ry'), ry);
|
|
equals(ellipse.get('fill'), fill);
|
|
|
|
var expected = ellipse.toObject();
|
|
var actual = fabric.Ellipse.fromObject(expected).toObject();
|
|
|
|
same(expected, actual);
|
|
});
|
|
})(); |