fabric.js/test/unit/object_interactivity.js
Andrea Bogazzi c03111824c Update deps (#4315)
* try replace tests
* modified tests for new qunit
* lint tests
2017-09-17 11:44:57 +02:00

287 lines
12 KiB
JavaScript

(function() {
QUnit.module('fabric.ObjectInteractivity');
QUnit.test('isControlVisible', function(assert) {
assert.ok(fabric.Object);
var cObj = new fabric.Object({ });
assert.ok(typeof cObj.isControlVisible === 'function', 'isControlVisible should exist');
assert.equal(cObj.isControlVisible('tl'), true);
assert.equal(cObj.isControlVisible('tr'), true);
assert.equal(cObj.isControlVisible('br'), true);
assert.equal(cObj.isControlVisible('bl'), true);
assert.equal(cObj.isControlVisible('ml'), true);
assert.equal(cObj.isControlVisible('mt'), true);
assert.equal(cObj.isControlVisible('mr'), true);
assert.equal(cObj.isControlVisible('mb'), true);
assert.equal(cObj.isControlVisible('mtr'), true);
});
QUnit.test('setControlVisible', function(assert) {
assert.ok(fabric.Object);
var cObj = new fabric.Object({ });
assert.ok(typeof cObj.setControlVisible === 'function', 'setControlVisible should exist');
assert.equal(cObj.setControlVisible('tl'), cObj, 'chainable');
cObj.setControlVisible('tl', false);
assert.equal(cObj.isControlVisible('tl'), false);
cObj.setControlVisible('tl', true);
assert.equal(cObj.isControlVisible('tl'), true);
});
QUnit.test('setControlsVisibility', function(assert) {
assert.ok(fabric.Object);
var cObj = new fabric.Object({ });
assert.ok(typeof cObj.setControlsVisibility === 'function', 'setControlsVisibility should exist');
assert.equal(cObj.setControlsVisibility(), cObj, 'chainable');
cObj.setControlsVisibility({
bl: false,
br: false,
mb: false,
ml: false,
mr: false,
mt: false,
tl: false,
tr: false,
mtr: false
});
assert.equal(cObj.isControlVisible('tl'), false);
assert.equal(cObj.isControlVisible('tr'), false);
assert.equal(cObj.isControlVisible('br'), false);
assert.equal(cObj.isControlVisible('bl'), false);
assert.equal(cObj.isControlVisible('ml'), false);
assert.equal(cObj.isControlVisible('mt'), false);
assert.equal(cObj.isControlVisible('mr'), false);
assert.equal(cObj.isControlVisible('mb'), false);
assert.equal(cObj.isControlVisible('mtr'), false);
cObj.setControlsVisibility({
bl: true,
br: true,
mb: true,
ml: true,
mr: true,
mt: true,
tl: true,
tr: true,
mtr: true
});
assert.equal(cObj.isControlVisible('tl'), true);
assert.equal(cObj.isControlVisible('tr'), true);
assert.equal(cObj.isControlVisible('br'), true);
assert.equal(cObj.isControlVisible('bl'), true);
assert.equal(cObj.isControlVisible('ml'), true);
assert.equal(cObj.isControlVisible('mt'), true);
assert.equal(cObj.isControlVisible('mr'), true);
assert.equal(cObj.isControlVisible('mb'), true);
assert.equal(cObj.isControlVisible('mtr'), true);
});
QUnit.test('_setCornerCoords', function(assert) {
var cObj = new fabric.Object({ top: 10, left: 10, width: 10, height: 10, strokeWidth: 0 });
assert.ok(typeof cObj._setCornerCoords === 'function', '_setCornerCoords should exist');
cObj.setCoords();
assert.equal(cObj.oCoords.tl.corner.tl.x.toFixed(2), 3.5);
assert.equal(cObj.oCoords.tl.corner.tl.y.toFixed(2), 3.5);
assert.equal(cObj.oCoords.tl.corner.tr.x.toFixed(2), 16.5);
assert.equal(cObj.oCoords.tl.corner.tr.y.toFixed(2), 3.5);
assert.equal(cObj.oCoords.tl.corner.bl.x.toFixed(2), 3.5);
assert.equal(cObj.oCoords.tl.corner.bl.y.toFixed(2), 16.5);
assert.equal(cObj.oCoords.tl.corner.br.x.toFixed(2), 16.5);
assert.equal(cObj.oCoords.tl.corner.br.y.toFixed(2), 16.5);
assert.equal(cObj.oCoords.bl.corner.tl.x.toFixed(2), 3.5);
assert.equal(cObj.oCoords.bl.corner.tl.y.toFixed(2), 13.5);
assert.equal(cObj.oCoords.bl.corner.tr.x.toFixed(2), 16.5);
assert.equal(cObj.oCoords.bl.corner.tr.y.toFixed(2), 13.5);
assert.equal(cObj.oCoords.bl.corner.bl.x.toFixed(2), 3.5);
assert.equal(cObj.oCoords.bl.corner.bl.y.toFixed(2), 26.5);
assert.equal(cObj.oCoords.bl.corner.br.x.toFixed(2), 16.5);
assert.equal(cObj.oCoords.bl.corner.br.y.toFixed(2), 26.5);
assert.equal(cObj.oCoords.tr.corner.tl.x.toFixed(2), 13.5);
assert.equal(cObj.oCoords.tr.corner.tl.y.toFixed(2), 3.5);
assert.equal(cObj.oCoords.tr.corner.tr.x.toFixed(2), 26.5);
assert.equal(cObj.oCoords.tr.corner.tr.y.toFixed(2), 3.5);
assert.equal(cObj.oCoords.tr.corner.bl.x.toFixed(2), 13.5);
assert.equal(cObj.oCoords.tr.corner.bl.y.toFixed(2), 16.5);
assert.equal(cObj.oCoords.tr.corner.br.x.toFixed(2), 26.5);
assert.equal(cObj.oCoords.tr.corner.br.y.toFixed(2), 16.5);
assert.equal(cObj.oCoords.br.corner.tl.x.toFixed(2), 13.5);
assert.equal(cObj.oCoords.br.corner.tl.y.toFixed(2), 13.5);
assert.equal(cObj.oCoords.br.corner.tr.x.toFixed(2), 26.5);
assert.equal(cObj.oCoords.br.corner.tr.y.toFixed(2), 13.5);
assert.equal(cObj.oCoords.br.corner.bl.x.toFixed(2), 13.5);
assert.equal(cObj.oCoords.br.corner.bl.y.toFixed(2), 26.5);
assert.equal(cObj.oCoords.br.corner.br.x.toFixed(2), 26.5);
assert.equal(cObj.oCoords.br.corner.br.y.toFixed(2), 26.5);
assert.equal(cObj.oCoords.mtr.corner.tl.x.toFixed(2), 8.5);
assert.equal(cObj.oCoords.mtr.corner.tl.y.toFixed(2), -36.5);
assert.equal(cObj.oCoords.mtr.corner.tr.x.toFixed(2), 21.5);
assert.equal(cObj.oCoords.mtr.corner.tr.y.toFixed(2), -36.5);
assert.equal(cObj.oCoords.mtr.corner.bl.x.toFixed(2), 8.5);
assert.equal(cObj.oCoords.mtr.corner.bl.y.toFixed(2), -23.5);
assert.equal(cObj.oCoords.mtr.corner.br.x.toFixed(2), 21.5);
assert.equal(cObj.oCoords.mtr.corner.br.y.toFixed(2), -23.5);
});
QUnit.test('_findTargetCorner', function(assert) {
var cObj = new fabric.Object({ top: 10, left: 10, width: 30, height: 30, strokeWidth: 0 });
assert.ok(typeof cObj._findTargetCorner === 'function', '_findTargetCorner should exist');
cObj.setCoords();
cObj.canvas = {
_activeObject: cObj
};
assert.equal(cObj._findTargetCorner(cObj.oCoords.br), 'br');
assert.equal(cObj._findTargetCorner(cObj.oCoords.tl), 'tl');
assert.equal(cObj._findTargetCorner(cObj.oCoords.tr), 'tr');
assert.equal(cObj._findTargetCorner(cObj.oCoords.bl), 'bl');
assert.equal(cObj._findTargetCorner(cObj.oCoords.mr), 'mr');
assert.equal(cObj._findTargetCorner(cObj.oCoords.ml), 'ml');
assert.equal(cObj._findTargetCorner(cObj.oCoords.mt), 'mt');
assert.equal(cObj._findTargetCorner(cObj.oCoords.mb), 'mb');
assert.equal(cObj._findTargetCorner(cObj.oCoords.mtr), 'mtr');
assert.equal(cObj._findTargetCorner({ x: 0, y: 0 }), false);
});
QUnit.test('_calculateCurrentDimensions', function(assert) {
var cObj = new fabric.Object({ width: 10, height: 15, strokeWidth: 0 }), dim;
assert.ok(typeof cObj._calculateCurrentDimensions === 'function', '_calculateCurrentDimensions should exist');
dim = cObj._calculateCurrentDimensions();
assert.equal(dim.x, 10);
assert.equal(dim.y, 15);
cObj.strokeWidth = 2;
dim = cObj._calculateCurrentDimensions();
assert.equal(dim.x, 12, 'strokeWidth should be added to dimension');
assert.equal(dim.y, 17, 'strokeWidth should be added to dimension');
cObj.scaleX = 2;
dim = cObj._calculateCurrentDimensions();
assert.equal(dim.x, 24, 'width should be doubled');
assert.equal(dim.y, 17, 'height should not change');
cObj.scaleY = 2;
dim = cObj._calculateCurrentDimensions();
assert.equal(dim.x, 24, 'width should not change');
assert.equal(dim.y, 34, 'height should be doubled');
cObj.angle = 45;
dim = cObj._calculateCurrentDimensions();
assert.equal(dim.x, 24, 'width should not change');
assert.equal(dim.y, 34, 'height should not change');
cObj.skewX = 45;
dim = cObj._calculateCurrentDimensions();
assert.equal(dim.x.toFixed(0), 58, 'width should change');
assert.equal(dim.y.toFixed(0), 34, 'height should not change');
cObj.skewY = 45;
dim = cObj._calculateCurrentDimensions();
assert.equal(dim.x.toFixed(0), 82, 'width should not change');
assert.equal(dim.y.toFixed(0), 58, 'height should change');
cObj.padding = 10;
dim = cObj._calculateCurrentDimensions();
assert.equal(dim.x.toFixed(0), 102, 'width should change');
assert.equal(dim.y.toFixed(0), 78, 'height should change');
});
QUnit.test('_getTransformedDimensions', function(assert) {
var cObj = new fabric.Object({ width: 10, height: 15, strokeWidth: 0 }), dim;
assert.ok(typeof cObj._getTransformedDimensions === 'function', '_getTransformedDimensions should exist');
dim = cObj._getTransformedDimensions();
assert.equal(dim.x, 10);
assert.equal(dim.y, 15);
cObj.strokeWidth = 2;
dim = cObj._getTransformedDimensions();
assert.equal(dim.x, 12, 'strokeWidth should be added to dimension');
assert.equal(dim.y, 17, 'strokeWidth should be added to dimension');
cObj.scaleX = 2;
dim = cObj._getTransformedDimensions();
assert.equal(dim.x, 24, 'width should be doubled');
assert.equal(dim.y, 17, 'height should not change');
cObj.scaleY = 2;
dim = cObj._getTransformedDimensions();
assert.equal(dim.x, 24, 'width should not change');
assert.equal(dim.y, 34, 'height should be doubled');
cObj.angle = 45;
dim = cObj._getTransformedDimensions();
assert.equal(dim.x, 24, 'width should not change');
assert.equal(dim.y, 34, 'height should not change');
cObj.skewX = 45;
dim = cObj._getTransformedDimensions();
assert.equal(dim.x.toFixed(0), 58, 'width should change');
assert.equal(dim.y.toFixed(0), 34, 'height should not change');
cObj.skewY = 45;
dim = cObj._getTransformedDimensions();
assert.equal(dim.x.toFixed(0), 82, 'width should not change');
assert.equal(dim.y.toFixed(0), 58, 'height should change');
cObj.padding = 10;
dim = cObj._getTransformedDimensions();
assert.equal(dim.x.toFixed(0), 82, 'width should not change');
assert.equal(dim.y.toFixed(0), 58, 'height should not change');
});
QUnit.test('_getNonTransformedDimensions', function(assert) {
var cObj = new fabric.Object({ width: 10, height: 15, strokeWidth: 0 }), dim;
assert.ok(typeof cObj._getNonTransformedDimensions === 'function', '_getNonTransformedDimensions should exist');
dim = cObj._getNonTransformedDimensions();
assert.equal(dim.x, 10);
assert.equal(dim.y, 15);
cObj.strokeWidth = 2;
dim = cObj._getNonTransformedDimensions();
assert.equal(dim.x, 12, 'strokeWidth should be added to dimension');
assert.equal(dim.y, 17, 'strokeWidth should be added to dimension');
cObj.scaleX = 2;
dim = cObj._getNonTransformedDimensions();
assert.equal(dim.x, 12, 'width should not change');
assert.equal(dim.y, 17, 'height should not change');
cObj.scaleY = 2;
dim = cObj._getNonTransformedDimensions();
assert.equal(dim.x, 12, 'width should not change');
assert.equal(dim.y, 17, 'height should not change');
cObj.angle = 45;
dim = cObj._getNonTransformedDimensions();
assert.equal(dim.x, 12, 'width should not change');
assert.equal(dim.y, 17, 'height should not change');
cObj.skewX = 45;
dim = cObj._getNonTransformedDimensions();
assert.equal(dim.x, 12, 'width should not change');
assert.equal(dim.y, 17, 'height should not change');
cObj.skewY = 45;
dim = cObj._getNonTransformedDimensions();
assert.equal(dim.x, 12, 'width should not change');
assert.equal(dim.y, 17, 'height should not change');
cObj.padding = 10;
dim = cObj._getNonTransformedDimensions();
assert.equal(dim.x, 12, 'width should not change');
assert.equal(dim.y, 17, 'height should not change');
});
})();