mirror of
https://github.com/Hopiu/fabric.js.git
synced 2026-03-16 22:10:32 +00:00
Lint unit tests and fix errors/warnings
This commit is contained in:
parent
46cd6ab505
commit
94f7035624
22 changed files with 11186 additions and 23436 deletions
31
.jshintrc_tests
Normal file
31
.jshintrc_tests
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"globals": {
|
||||
"fabric": true,
|
||||
"G_vmlCanvasManager": true
|
||||
},
|
||||
"browser": true,
|
||||
// TODO: change to true
|
||||
"eqeqeq": false,
|
||||
"eqnull": true,
|
||||
"evil": true,
|
||||
"expr": true,
|
||||
"forin": false,
|
||||
"immed": true,
|
||||
"lastsemic": true,
|
||||
"laxbreak": true,
|
||||
"loopfunc": true,
|
||||
"multistr": true,
|
||||
"newcap": true,
|
||||
"noarg": true,
|
||||
"node": true,
|
||||
"noempty": false,
|
||||
"nomen": false,
|
||||
"nonew": false,
|
||||
"onevar": false,
|
||||
"plusplus": false,
|
||||
"strict": false,
|
||||
"sub": true,
|
||||
"undef": true,
|
||||
"unused": true,
|
||||
"qunit": true
|
||||
}
|
||||
2
dist/fabric.js
vendored
2
dist/fabric.js
vendored
|
|
@ -1,4 +1,4 @@
|
|||
/* build: `node build.js modules=ALL exclude=gestures,json minifier=uglifyjs` */
|
||||
/* build: `node build.js modules=ALL exclude=json,gestures minifier=uglifyjs` */
|
||||
/*! Fabric.js Copyright 2008-2015, Printio (Juriy Zaytsev, Maxim Chernyak) */
|
||||
|
||||
var fabric = fabric || { version: "1.5.0" };
|
||||
|
|
|
|||
22
dist/fabric.min.js
vendored
22
dist/fabric.min.js
vendored
File diff suppressed because one or more lines are too long
BIN
dist/fabric.min.js.gz
vendored
BIN
dist/fabric.min.js.gz
vendored
Binary file not shown.
34261
dist/fabric.require.js
vendored
34261
dist/fabric.require.js
vendored
File diff suppressed because it is too large
Load diff
|
|
@ -30,7 +30,12 @@
|
|||
"license": "MIT",
|
||||
"scripts": {
|
||||
"build": "node build.js modules=ALL exclude=json,gestures",
|
||||
"test": "node test.js && jshint src"
|
||||
"test": "node test.js",
|
||||
"lint": "jshint src && jscs src",
|
||||
"lint_tests": "jshint test/unit --config .jshintrc_tests",
|
||||
"export_dist_to_site": "cp dist/fabric.js ../fabricjs.com/lib/fabric.js",
|
||||
"export_tests_to_site": "cp test/unit/*.js ../fabricjs.com/test/unit",
|
||||
"all": "npm run build && npm run test && npm run lint && npm run lint_tests && npm run export_dist_to_site && npm run export_tests_to_site"
|
||||
},
|
||||
"dependencies": {
|
||||
"canvas": "1.1.x",
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
var EMPTY_JSON = '{"objects":[],"background":""}';
|
||||
|
||||
var emptyImageCanvasData = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAH7ElEQVR4nO3VMQ0AMAzAsPInvYHoMS2yEeTLHADge/M6AADYM3QACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIuMjH4b7osLFBAAAAAElFTkSuQmCC";
|
||||
// var emptyImageCanvasData = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAH7ElEQVR4nO3VMQ0AMAzAsPInvYHoMS2yEeTLHADge/M6AADYM3QACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIuMjH4b7osLFBAAAAAElFTkSuQmCC";
|
||||
|
||||
var PATH_JSON = '{"objects": [{"type": "path", "originX": "left", "originY": "top", "left": 268, "top": 266, "width": 51, "height": 49,'+
|
||||
' "fill": "rgb(0,0,0)", "stroke": null, "strokeWidth": 1, "scaleX": 1, "scaleY": 1, '+
|
||||
|
|
@ -221,7 +221,7 @@
|
|||
test('toDataURL', function() {
|
||||
ok(typeof canvas.toDataURL == 'function');
|
||||
if (!fabric.Canvas.supports('toDataURL')) {
|
||||
alert("toDataURL is not supported by this environment. Some of the tests can not be run.");
|
||||
window.alert("toDataURL is not supported by this environment. Some of the tests can not be run.");
|
||||
}
|
||||
else {
|
||||
var dataURL = canvas.toDataURL();
|
||||
|
|
@ -288,7 +288,7 @@
|
|||
|
||||
test('straightenObject', function() {
|
||||
ok(typeof canvas.straightenObject == 'function');
|
||||
var rect = makeRect({ angle: 10 })
|
||||
var rect = makeRect({ angle: 10 });
|
||||
canvas.add(rect);
|
||||
equal(canvas.straightenObject(rect), canvas, 'should be chainable');
|
||||
equal(rect.getAngle(), 0, 'angle should be coerced to 0 (from 10)');
|
||||
|
|
@ -805,7 +805,6 @@
|
|||
var eventsFired = {
|
||||
selectionCleared: false
|
||||
};
|
||||
var target;
|
||||
|
||||
canvas.on('selection:cleared', function(){
|
||||
eventsFired.selectionCleared = true;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
(function() {
|
||||
|
||||
var emptyImageCanvasData = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAH7ElEQVR4nO3VMQ0AMAzAsPInvYHoMS2yEeTLHADge/M6AADYM3QACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIuMjH4b7osLFBAAAAAElFTkSuQmCC";
|
||||
// var emptyImageCanvasData = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAH7ElEQVR4nO3VMQ0AMAzAsPInvYHoMS2yEeTLHADge/M6AADYM3QACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIuMjH4b7osLFBAAAAAElFTkSuQmCC";
|
||||
|
||||
var CANVAS_SVG = '<?xml version="1.0" encoding="UTF-8" standalone="no" ?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+
|
||||
'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="600" height="600" xml:space="preserve"><desc>Created with Fabric.js ' + fabric.version + '</desc><defs></defs></svg>';
|
||||
|
|
@ -90,7 +90,7 @@
|
|||
};
|
||||
|
||||
function _createImageElement() {
|
||||
return fabric.isLikelyNode ? new (require('canvas').Image) : fabric.document.createElement('img');
|
||||
return fabric.isLikelyNode ? new (require('canvas').Image)() : fabric.document.createElement('img');
|
||||
}
|
||||
|
||||
function _createImageObject(width, height, callback) {
|
||||
|
|
@ -439,7 +439,7 @@
|
|||
test('toDataURL', function() {
|
||||
ok(typeof canvas.toDataURL == 'function');
|
||||
if (!fabric.Canvas.supports('toDataURL')) {
|
||||
alert("toDataURL is not supported by this environment. Some of the tests can not be run.");
|
||||
window.alert("toDataURL is not supported by this environment. Some of the tests can not be run.");
|
||||
}
|
||||
else {
|
||||
var dataURL = canvas.toDataURL();
|
||||
|
|
@ -452,7 +452,7 @@
|
|||
|
||||
test('toDataURL jpg', function() {
|
||||
if (!fabric.Canvas.supports('toDataURL')) {
|
||||
alert("toDataURL is not supported by this environment. Some of the tests can not be run.");
|
||||
window.alert("toDataURL is not supported by this environment. Some of the tests can not be run.");
|
||||
}
|
||||
else {
|
||||
try {
|
||||
|
|
@ -572,8 +572,9 @@
|
|||
return svg;
|
||||
}
|
||||
|
||||
var svg = canvas.toSVG(null, reviver);
|
||||
canvas.toSVG(null, reviver);
|
||||
equal(reviverCount, len);
|
||||
|
||||
canvas.renderOnAddRemove = true;
|
||||
});
|
||||
|
||||
|
|
@ -1102,6 +1103,8 @@
|
|||
canvas.setBackgroundImage(IMG_SRC, function() {
|
||||
equal(canvas.backgroundImage.left, 50);
|
||||
equal(canvas.backgroundImage.originX, 'right');
|
||||
|
||||
start();
|
||||
}, {
|
||||
left: 50,
|
||||
originX: 'right'
|
||||
|
|
@ -1113,6 +1116,8 @@
|
|||
canvas.setBackgroundImage(imageInstance, function() {
|
||||
equal(canvas.backgroundImage.left, 100);
|
||||
equal(canvas.backgroundImage.originX, 'center');
|
||||
|
||||
start();
|
||||
}, {
|
||||
left: 100,
|
||||
originX: 'center'
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@
|
|||
equal(oCircle.get('strokeLineJoin'), strokeLineJoin);
|
||||
equal(oCircle.get('strokeMiterLimit'), strokeMiterLimit);
|
||||
|
||||
elFaultyCircle = fabric.document.createElement('circle');
|
||||
var elFaultyCircle = fabric.document.createElement('circle');
|
||||
elFaultyCircle.setAttribute('r', '-10');
|
||||
|
||||
var error;
|
||||
|
|
|
|||
|
|
@ -8,17 +8,17 @@
|
|||
ok(oColor instanceof fabric.Color);
|
||||
equal(oColor.toHex(), 'FF5555');
|
||||
|
||||
var oColor = new fabric.Color('rgb(100,100,100)');
|
||||
oColor = new fabric.Color('rgb(100,100,100)');
|
||||
ok(oColor);
|
||||
ok(oColor instanceof fabric.Color);
|
||||
equal(oColor.toRgb(), 'rgb(100,100,100)');
|
||||
|
||||
var oColor = new fabric.Color('rgba(100,100,100, 0.5)');
|
||||
oColor = new fabric.Color('rgba(100,100,100, 0.5)');
|
||||
ok(oColor);
|
||||
ok(oColor instanceof fabric.Color);
|
||||
equal(oColor.toRgba(), 'rgba(100,100,100,0.5)');
|
||||
|
||||
var oColor = new fabric.Color('hsl(262,80%,12%)');
|
||||
oColor = new fabric.Color('hsl(262,80%,12%)');
|
||||
ok(oColor);
|
||||
ok(oColor instanceof fabric.Color);
|
||||
equal(oColor.toHsl(), 'hsl(262,80%,12%)');
|
||||
|
|
@ -176,7 +176,7 @@
|
|||
|
||||
test('fromRgba (with whitespaces)', function() {
|
||||
var originalRgba = 'rgba( 255 , 255 , 255 , 0.5 )';
|
||||
oColor = fabric.Color.fromRgba(originalRgba);
|
||||
var oColor = fabric.Color.fromRgba(originalRgba);
|
||||
ok(oColor);
|
||||
ok(oColor instanceof fabric.Color);
|
||||
equal(oColor.toRgba(), 'rgba(255,255,255,0.5)');
|
||||
|
|
@ -186,7 +186,7 @@
|
|||
|
||||
test('fromRgba (percentage values)', function() {
|
||||
var originalRgba = 'rgba(100%,100%,100%,0.5)';
|
||||
oColor = fabric.Color.fromRgba(originalRgba);
|
||||
var oColor = fabric.Color.fromRgba(originalRgba);
|
||||
ok(oColor);
|
||||
ok(oColor instanceof fabric.Color);
|
||||
equal(oColor.toRgba(), 'rgba(255,255,255,0.5)');
|
||||
|
|
@ -196,7 +196,7 @@
|
|||
|
||||
test('fromRgba (percentage values with whitespaces)', function() {
|
||||
var originalRgba = 'rgba( 100% , 100% , 100% , 0.5 )';
|
||||
oColor = fabric.Color.fromRgba(originalRgba);
|
||||
var oColor = fabric.Color.fromRgba(originalRgba);
|
||||
ok(oColor);
|
||||
ok(oColor instanceof fabric.Color);
|
||||
equal(oColor.toRgba(), 'rgba(255,255,255,0.5)');
|
||||
|
|
@ -206,7 +206,7 @@
|
|||
|
||||
test('fromRgba (percentage values with decimals)', function() {
|
||||
var originalRgba = 'rgba( 100.00%, 100.00%, 100.00% , 0.5 )';
|
||||
oColor = fabric.Color.fromRgba(originalRgba);
|
||||
var oColor = fabric.Color.fromRgba(originalRgba);
|
||||
ok(oColor);
|
||||
ok(oColor instanceof fabric.Color);
|
||||
equal(oColor.toRgba(), 'rgba(255,255,255,0.5)');
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@
|
|||
|
||||
ellipse._render = function(){
|
||||
wasRenderCalled = true;
|
||||
}
|
||||
};
|
||||
ellipse.render({});
|
||||
|
||||
equal(wasRenderCalled, false, 'should not render when rx/ry are 0');
|
||||
|
|
|
|||
|
|
@ -248,7 +248,7 @@
|
|||
equal(gradient.colorStops[0].color, 'rgb(0,0,0)');
|
||||
equal(gradient.colorStops[1].color, 'rgb(255,255,255)');
|
||||
deepEqual(gradient.gradientTransform, [ 3.321, -0.6998, 0.4077, 1.9347, -440.9168, -408.0598 ]);
|
||||
})
|
||||
});
|
||||
|
||||
test('fromElement linearGradient colorStop attributes/styles', function() {
|
||||
ok(typeof fabric.Gradient.fromElement == 'function');
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
var canvas = this.canvas = new fabric.Canvas();
|
||||
|
||||
function _createImageElement() {
|
||||
return fabric.isLikelyNode ? new (require('canvas').Image) : fabric.document.createElement('img');
|
||||
}
|
||||
// function _createImageElement() {
|
||||
// return fabric.isLikelyNode ? new (require('canvas').Image)() : fabric.document.createElement('img');
|
||||
// }
|
||||
|
||||
function makeGroupWith2Objects() {
|
||||
var rect1 = new fabric.Rect({ top: 100, left: 100, width: 30, height: 10, strokeWidth: 0 }),
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
};
|
||||
|
||||
function _createImageElement() {
|
||||
return fabric.isLikelyNode ? new (require('canvas').Image) : fabric.document.createElement('img');
|
||||
return fabric.isLikelyNode ? new (require('canvas').Image)() : fabric.document.createElement('img');
|
||||
}
|
||||
|
||||
function _createImageObject(width, height, callback) {
|
||||
|
|
@ -63,12 +63,12 @@
|
|||
}
|
||||
|
||||
function createImageObject(callback) {
|
||||
return _createImageObject(IMG_WIDTH, IMG_HEIGHT, callback)
|
||||
return _createImageObject(IMG_WIDTH, IMG_HEIGHT, callback);
|
||||
}
|
||||
|
||||
function createSmallImageObject(callback) {
|
||||
return _createImageObject(IMG_WIDTH / 2, IMG_HEIGHT / 2, callback);
|
||||
}
|
||||
// function createSmallImageObject(callback) {
|
||||
// return _createImageObject(IMG_WIDTH / 2, IMG_HEIGHT / 2, callback);
|
||||
// }
|
||||
|
||||
function setSrc(img, src, callback) {
|
||||
if (fabric.isLikelyNode) {
|
||||
|
|
@ -159,14 +159,14 @@
|
|||
|
||||
var elImage = _createImageElement();
|
||||
elImage.crossOrigin = 'anonymous';
|
||||
var image = new fabric.Image(elImage);
|
||||
image = new fabric.Image(elImage);
|
||||
equal(image.crossOrigin, '', 'crossOrigin value on an instance takes precedence');
|
||||
|
||||
var objRepr = image.toObject();
|
||||
equal(objRepr.crossOrigin, '', 'toObject should return proper crossOrigin value');
|
||||
|
||||
var elImage2 = _createImageElement();
|
||||
elImage2.crossOrigin = 'anonymous';
|
||||
elImage2.crossOrigin = 'anonymous';
|
||||
image.setElement(elImage2);
|
||||
equal(elImage2.crossOrigin, 'anonymous', 'setElement should set proper crossOrigin on an img element');
|
||||
|
||||
|
|
@ -175,7 +175,7 @@
|
|||
start();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
fabric.Image.fromObject(objRepr, function(img) {
|
||||
equal(img.crossOrigin, '');
|
||||
start();
|
||||
|
|
|
|||
|
|
@ -14,42 +14,42 @@
|
|||
IMG_WIDTH = 276,
|
||||
IMG_HEIGHT = 110;
|
||||
|
||||
var REFERENCE_IMG_OBJECT = {
|
||||
'type': 'image',
|
||||
'originX': 'left',
|
||||
'originY': 'top',
|
||||
'left': 0,
|
||||
'top': 0,
|
||||
'width': IMG_WIDTH, // node-canvas doesn't seem to allow setting width/height on image objects
|
||||
'height': IMG_HEIGHT, // or does it now?
|
||||
'fill': 'rgb(0,0,0)',
|
||||
'stroke': null,
|
||||
'strokeWidth': 1,
|
||||
'strokeDashArray': null,
|
||||
'strokeLineCap': 'butt',
|
||||
'strokeLineJoin': 'miter',
|
||||
'strokeMiterLimit': 10,
|
||||
'scaleX': 1,
|
||||
'scaleY': 1,
|
||||
'angle': 0,
|
||||
'flipX': false,
|
||||
'flipY': false,
|
||||
'opacity': 1,
|
||||
'src': fabric.isLikelyNode ? undefined : IMG_SRC,
|
||||
'selectable': true,
|
||||
'hasControls': true,
|
||||
'hasBorders': true,
|
||||
'hasRotatingPoint': true,
|
||||
'transparentCorners': true,
|
||||
'perPixelTargetFind': false,
|
||||
'shadow': null,
|
||||
'visible': true,
|
||||
'clipTo': null,
|
||||
'filters': []
|
||||
};
|
||||
// var REFERENCE_IMG_OBJECT = {
|
||||
// 'type': 'image',
|
||||
// 'originX': 'left',
|
||||
// 'originY': 'top',
|
||||
// 'left': 0,
|
||||
// 'top': 0,
|
||||
// 'width': IMG_WIDTH, // node-canvas doesn't seem to allow setting width/height on image objects
|
||||
// 'height': IMG_HEIGHT, // or does it now?
|
||||
// 'fill': 'rgb(0,0,0)',
|
||||
// 'stroke': null,
|
||||
// 'strokeWidth': 1,
|
||||
// 'strokeDashArray': null,
|
||||
// 'strokeLineCap': 'butt',
|
||||
// 'strokeLineJoin': 'miter',
|
||||
// 'strokeMiterLimit': 10,
|
||||
// 'scaleX': 1,
|
||||
// 'scaleY': 1,
|
||||
// 'angle': 0,
|
||||
// 'flipX': false,
|
||||
// 'flipY': false,
|
||||
// 'opacity': 1,
|
||||
// 'src': fabric.isLikelyNode ? undefined : IMG_SRC,
|
||||
// 'selectable': true,
|
||||
// 'hasControls': true,
|
||||
// 'hasBorders': true,
|
||||
// 'hasRotatingPoint': true,
|
||||
// 'transparentCorners': true,
|
||||
// 'perPixelTargetFind': false,
|
||||
// 'shadow': null,
|
||||
// 'visible': true,
|
||||
// 'clipTo': null,
|
||||
// 'filters': []
|
||||
// };
|
||||
|
||||
function _createImageElement() {
|
||||
return fabric.isLikelyNode ? new (require('canvas').Image) : fabric.document.createElement('img');
|
||||
return fabric.isLikelyNode ? new (require('canvas').Image)() : fabric.document.createElement('img');
|
||||
}
|
||||
|
||||
function _createImageObject(width, height, callback) {
|
||||
|
|
@ -62,7 +62,7 @@
|
|||
}
|
||||
|
||||
function createImageObject(callback) {
|
||||
return _createImageObject(IMG_WIDTH, IMG_HEIGHT, callback)
|
||||
return _createImageObject(IMG_WIDTH, IMG_HEIGHT, callback);
|
||||
}
|
||||
|
||||
function setSrc(img, src, callback) {
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
'backgroundColor': '',
|
||||
'textBackgroundColor': '',
|
||||
'fillRule': 'nonzero',
|
||||
'globalCompositeOperation': 'source-over',
|
||||
'globalCompositeOperation': 'source-over',
|
||||
styles: { }
|
||||
};
|
||||
|
||||
|
|
@ -144,7 +144,7 @@
|
|||
|
||||
// 'tes|t'
|
||||
iText.selectionStart = iText.selectionEnd = 3;
|
||||
var loc = iText.get2DCursorLocation();
|
||||
loc = iText.get2DCursorLocation();
|
||||
|
||||
equal(loc.lineIndex, 0);
|
||||
equal(loc.charIndex, 3);
|
||||
|
|
@ -152,7 +152,7 @@
|
|||
// test
|
||||
// fo|o
|
||||
iText.selectionStart = iText.selectionEnd = 7;
|
||||
var loc = iText.get2DCursorLocation();
|
||||
loc = iText.get2DCursorLocation();
|
||||
|
||||
equal(loc.lineIndex, 1);
|
||||
equal(loc.charIndex, 2);
|
||||
|
|
@ -161,7 +161,7 @@
|
|||
// foo
|
||||
// barba|z
|
||||
iText.selectionStart = iText.selectionEnd = 14;
|
||||
var loc = iText.get2DCursorLocation();
|
||||
loc = iText.get2DCursorLocation();
|
||||
|
||||
equal(loc.lineIndex, 2);
|
||||
equal(loc.charIndex, 5);
|
||||
|
|
@ -171,7 +171,7 @@
|
|||
var iText = new fabric.IText('test');
|
||||
ok(iText.isEmptyStyles());
|
||||
|
||||
var iText = new fabric.IText('test', {
|
||||
iText = new fabric.IText('test', {
|
||||
styles: {
|
||||
0: {
|
||||
0: { }
|
||||
|
|
@ -183,7 +183,7 @@
|
|||
});
|
||||
ok(iText.isEmptyStyles());
|
||||
|
||||
var iText = new fabric.IText('test', {
|
||||
iText = new fabric.IText('test', {
|
||||
styles: {
|
||||
0: {
|
||||
0: { }
|
||||
|
|
|
|||
|
|
@ -145,12 +145,7 @@
|
|||
});
|
||||
|
||||
test('stroke-width in a style', function() {
|
||||
var lineEl = fabric.document.createElement('line'),
|
||||
x1 = 0,
|
||||
y1 = 0,
|
||||
x2 = 10,
|
||||
y2 = 10;
|
||||
|
||||
var lineEl = fabric.document.createElement('line');
|
||||
lineEl.setAttribute('style', 'stroke-width:4');
|
||||
|
||||
var oLine = fabric.Line.fromElement(lineEl);
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
IMG_HEIGHT = 110;
|
||||
|
||||
function _createImageElement() {
|
||||
return fabric.isLikelyNode ? new (require('canvas').Image) : fabric.document.createElement('img');
|
||||
return fabric.isLikelyNode ? new (require('canvas').Image)() : fabric.document.createElement('img');
|
||||
}
|
||||
|
||||
function createImageObject(callback) {
|
||||
|
|
@ -575,7 +575,6 @@ test('getBoundingRectWithStroke', function() {
|
|||
}
|
||||
else {
|
||||
var image;
|
||||
var _this = this;
|
||||
|
||||
setTimeout(function() {
|
||||
ok(image);
|
||||
|
|
@ -590,15 +589,15 @@ test('getBoundingRectWithStroke', function() {
|
|||
});
|
||||
|
||||
test('toDataURL', function() {
|
||||
var data =
|
||||
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQA'+
|
||||
'AABkCAYAAABw4pVUAAAA+UlEQVR4nO3RoRHAQBDEsOu/6YR+B2s'+
|
||||
'gIO4Z3919pMwDMCRtHoAhafMADEmbB2BI2jwAQ9LmARiSNg/AkLR5AI'+
|
||||
'akzQMwJG0egCFp8wAMSZsHYEjaPABD0uYBGJI2D8CQtHkAhqTNAzAkbR'+
|
||||
'6AIWnzAAxJmwdgSNo8AEPS5gEYkjYPwJC0eQCGpM0DMCRtHoAhafMADEm'+
|
||||
'bB2BI2jwAQ9LmARiSNg/AkLR5AIakzQMwJG0egCFp8wAMSZsHYEjaPABD0'+
|
||||
'uYBGJI2D8CQtHkAhqTNAzAkbR6AIWnzAAxJmwdgSNo8AEPS5gEYkjYPw'+
|
||||
'JC0eQCGpM0DMCRtHsDjB5K06yueJFXJAAAAAElFTkSuQmCC';
|
||||
// var data =
|
||||
// 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQA'+
|
||||
// 'AABkCAYAAABw4pVUAAAA+UlEQVR4nO3RoRHAQBDEsOu/6YR+B2s'+
|
||||
// 'gIO4Z3919pMwDMCRtHoAhafMADEmbB2BI2jwAQ9LmARiSNg/AkLR5AI'+
|
||||
// 'akzQMwJG0egCFp8wAMSZsHYEjaPABD0uYBGJI2D8CQtHkAhqTNAzAkbR'+
|
||||
// '6AIWnzAAxJmwdgSNo8AEPS5gEYkjYPwJC0eQCGpM0DMCRtHoAhafMADEm'+
|
||||
// 'bB2BI2jwAQ9LmARiSNg/AkLR5AIakzQMwJG0egCFp8wAMSZsHYEjaPABD0'+
|
||||
// 'uYBGJI2D8CQtHkAhqTNAzAkbR6AIWnzAAxJmwdgSNo8AEPS5gEYkjYPw'+
|
||||
// 'JC0eQCGpM0DMCRtHsDjB5K06yueJFXJAAAAAElFTkSuQmCC';
|
||||
|
||||
var cObj = new fabric.Rect({
|
||||
width: 100, height: 100, fill: 'red'
|
||||
|
|
@ -607,7 +606,7 @@ test('getBoundingRectWithStroke', function() {
|
|||
ok(typeof cObj.toDataURL == 'function');
|
||||
|
||||
if (!fabric.Canvas.supports('toDataURL')) {
|
||||
alert('toDataURL is not supported by this environment. Some of the tests can not be run.');
|
||||
window.alert('toDataURL is not supported by this environment. Some of the tests can not be run.');
|
||||
}
|
||||
else {
|
||||
var dataURL = cObj.toDataURL();
|
||||
|
|
@ -615,7 +614,7 @@ test('getBoundingRectWithStroke', function() {
|
|||
equal(dataURL.substring(0, 21), 'data:image/png;base64');
|
||||
|
||||
try {
|
||||
var dataURL = cObj.toDataURL({ format: 'jpeg' });
|
||||
dataURL = cObj.toDataURL({ format: 'jpeg' });
|
||||
equal(dataURL.substring(0, 22), 'data:image/jpeg;base64');
|
||||
}
|
||||
catch(err) {
|
||||
|
|
@ -625,15 +624,15 @@ test('getBoundingRectWithStroke', function() {
|
|||
});
|
||||
|
||||
test('toDataURL & reference to canvas', function() {
|
||||
var data =
|
||||
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQA'+
|
||||
'AABkCAYAAABw4pVUAAAA+UlEQVR4nO3RoRHAQBDEsOu/6YR+B2s'+
|
||||
'gIO4Z3919pMwDMCRtHoAhafMADEmbB2BI2jwAQ9LmARiSNg/AkLR5AI'+
|
||||
'akzQMwJG0egCFp8wAMSZsHYEjaPABD0uYBGJI2D8CQtHkAhqTNAzAkbR'+
|
||||
'6AIWnzAAxJmwdgSNo8AEPS5gEYkjYPwJC0eQCGpM0DMCRtHoAhafMADEm'+
|
||||
'bB2BI2jwAQ9LmARiSNg/AkLR5AIakzQMwJG0egCFp8wAMSZsHYEjaPABD0'+
|
||||
'uYBGJI2D8CQtHkAhqTNAzAkbR6AIWnzAAxJmwdgSNo8AEPS5gEYkjYPw'+
|
||||
'JC0eQCGpM0DMCRtHsDjB5K06yueJFXJAAAAAElFTkSuQmCC';
|
||||
// var data =
|
||||
// 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQA'+
|
||||
// 'AABkCAYAAABw4pVUAAAA+UlEQVR4nO3RoRHAQBDEsOu/6YR+B2s'+
|
||||
// 'gIO4Z3919pMwDMCRtHoAhafMADEmbB2BI2jwAQ9LmARiSNg/AkLR5AI'+
|
||||
// 'akzQMwJG0egCFp8wAMSZsHYEjaPABD0uYBGJI2D8CQtHkAhqTNAzAkbR'+
|
||||
// '6AIWnzAAxJmwdgSNo8AEPS5gEYkjYPwJC0eQCGpM0DMCRtHoAhafMADEm'+
|
||||
// 'bB2BI2jwAQ9LmARiSNg/AkLR5AIakzQMwJG0egCFp8wAMSZsHYEjaPABD0'+
|
||||
// 'uYBGJI2D8CQtHkAhqTNAzAkbR6AIWnzAAxJmwdgSNo8AEPS5gEYkjYPw'+
|
||||
// 'JC0eQCGpM0DMCRtHsDjB5K06yueJFXJAAAAAElFTkSuQmCC';
|
||||
|
||||
var cObj = new fabric.Rect({
|
||||
width: 100, height: 100, fill: 'red'
|
||||
|
|
@ -641,7 +640,7 @@ test('toDataURL & reference to canvas', function() {
|
|||
canvas.add(cObj);
|
||||
|
||||
if (!fabric.Canvas.supports('toDataURL')) {
|
||||
alert('toDataURL is not supported by this environment. Some of the tests can not be run.');
|
||||
window.alert('toDataURL is not supported by this environment. Some of the tests can not be run.');
|
||||
}
|
||||
else {
|
||||
var objCanvas = cObj.canvas;
|
||||
|
|
@ -1113,11 +1112,11 @@ test('toDataURL & reference to canvas', function() {
|
|||
equal(object.shadow.blur, 10);
|
||||
equal(object.shadow.offsetX, 5);
|
||||
equal(object.shadow.offsetY, 15);
|
||||
|
||||
|
||||
equal(object.setShadow(null), object, 'should be chainable');
|
||||
ok(!(object.shadow instanceof fabric.Shadow));
|
||||
equal(object.shadow, null);
|
||||
|
||||
|
||||
});
|
||||
|
||||
test('set shadow', function() {
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
return element;
|
||||
}
|
||||
|
||||
var EXPECTED_PATH_JSON = "{\"type\":\"path\",\"left\":0,\"top\":0,\"width\":93,\"height\":137,\"fill\":\"#99CCFF\",\"stroke\":null,\"strokeWidth\":1,\"scaleX\":1,\"scaleY\":1,\"angle\":0,\"flipX\":false,\"flipY\":false,\"opacity\":1,\"selectable\":true,\"hasControls\":true,\"hasBorders\":true,\"hasRotatingPoint\":false,\"path\":[[\"M\",62.022,30.848],[\"c\",4.251,0.038,9.565,-2.206,13.424,-3.924],[\"c\",3.131,-1.396,4.47,-1.299,7.833,0.263],[\"c\",2.18,1.012,3.883,-1.551,5.824,-2.048],[\"c\",0.243,-0.062,0.537,0.464,0.374,0.652],[\"c\",-0.553,0.639,-2.932,1.753,-2.679,2.821],[\"c\",0.184,0.779,4.081,0.817,5.226,1.347],[\"c\",1.008,0.653,-3.22,0.665,-3.17,1.028],[\"c\",1.038,0.191,2.175,0.279,3.03,0.703],[\"c\",0.482,0.238,-0.707,0.815,-1.245,0.731],[\"c\",0.194,0.103,0.711,0.257,0.583,0.436],[\"c\",-0.144,0.891,-3.265,0.128,-4.132,-0.003],[\"c\",-0.688,-0.104,-3.754,-0.843,-3.892,0.039],[\"c\",-0.092,0.586,0.47,1.079,0.133,2.617],[\"c\",-0.314,1.438,-1.942,1.633,-1.831,1.024],[\"c\",0.273,-1.496,1.201,-1.914,-0.4,-3.564],[\"c\",-0.979,-1.01,-1.908,-2.344,-2.138,-3.425],[\"c\",-7.581,1.092,-9.456,6.321,-17.365,7.858],[\"c\",-2.787,0.541,-5.233,-1.016,-7.887,-2.27],[\"c\",0.168,0.259,0.457,0.272,0.169,1.184],[\"c\",-0.29,0.918,-0.479,2.081,-0.225,3.104],[\"c\",0.539,2.169,1.73,4.464,2.5,6.755],[\"c\",1.481,4.415,0.996,11.273,0.42,15.21],[\"c\",-0.105,0.715,0.497,1.432,0.129,2.608],[\"c\",-0.128,0.413,0.384,1.027,0.347,1.458],[\"c\",-0.195,2.236,1.106,2.01,3.446,4.502],[\"c\",-0.21,0.252,-0.926,0.504,-1.136,0.756],[\"c\",4.353,5.205,8.404,10.612,11.622,16.651],[\"c\",0.805,1.512,1.511,3.199,1.511,4.913],[\"c\",0,1.955,-1.154,2.843,-2.057,4.577],[\"c\",-0.741,1.423,-2.081,2.305,-3.121,3.526],[\"c\",-5.631,6.614,-9.57,11.287,-15.186,17.936],[\"c\",-0.976,3.091,1.141,4.783,1.093,6.394],[\"c\",-0.011,0.372,-0.267,0.74,-0.555,1.119],[\"c\",-0.452,0.595,-2.752,-1.225,-4.01,-2.617],[\"c\",-1.657,8.48,5.22,10.332,8.284,12.274],[\"c\",0.37,0.234,0.076,1.004,-0.05,1.424],[\"c\",-4.442,0.217,-7.603,0.246,-11.857,-1.172],[\"c\",-0.783,-0.963,-2.958,-5.188,-4.535,-3.406],[\"c\",-0.735,0.831,-1.092,1.932,-1.637,2.897],[\"c\",-0.462,0,-0.76,-0.247,-1.222,-0.247],[\"c\",-0.042,-1.553,0.19,-2.878,-0.044,-4.413],[\"c\",-0.633,-4.152,-1.551,-4.467,2.037,-7.866],[\"c\",1.782,-1.689,2.374,-2.065,4.045,-3.916],[\"c\",-0.552,-1.562,0.385,-2.303,-1.192,-3],[\"c\",-0.936,-0.041,-3.255,1.205,-3.535,2.152],[\"c\",-0.378,-0.042,-1.001,-0.701,-1.379,-0.742],[\"c\",0.896,-1.794,1.155,-1.791,0.926,-2.913],[\"c\",-0.796,-3.892,1.304,-4.478,3.593,-5.779],[\"c\",3.523,-3.523,6.666,-10.464,10.145,-14.605],[\"c\",1.05,-1.25,2.885,-2.043,4.019,-3.219],[\"c\",-1.26,-1.175,-2.805,-2.106,-3.779,-3.526],[\"c\",-2.437,-3.554,-6.445,-7.633,-9.421,-8.945],[\"c\",-0.756,0.168,-1.513,0.336,-2.269,0.504],[\"c\",-3.89,-2.843,-8.766,-8.817,-6.814,-16.892],[\"c\",1.413,-5.846,8.545,-7.913,2.791,-13.009],[\"c\",-1.299,-1.15,-7.22,-6.915,-8.904,-6.021],[\"c\",-1.257,0.667,-3.774,2.431,-3.966,4.015],[\"c\",-0.299,2.472,-4.275,17.925,-7.829,14.167],[\"C\",9.169,53.682,7.55,47.517,6.059,43.276],[\"c\",-0.873,-2.481,-4.009,-2.109,-5.077,-5],[\"c\",-0.368,-0.997,-1.229,-2.067,-0.914,-3.082],[\"c\",0.169,-0.545,0.63,-0.336,1.175,-0.504],[\"c\",0.535,-2.002,0.199,-1.216,1.704,-1.318],[\"c\",0,-1.215,0.604,-0.978,1.498,-0.978],[\"c\",0.987,-1.624,1.841,-0.106,4.696,1.74],[\"c\",1.461,0.945,1.292,2.708,0.987,4.319],[\"c\",-0.281,1.483,-0.582,2.403,-0.018,3.626],[\"c\",1.14,2.472,4.709,6.794,6.412,9.063],[\"c\",2.12,-2.974,1.531,-6.198,1.788,-10.647],[\"c\",0.1,-1.729,0.84,-3.361,1.26,-5.041],[\"c\",-1.504,-0.111,-2.596,-0.532,-3.277,-1.261],[\"c\",0.336,-0.588,0.672,-1.177,1.008,-1.765],[\"c\",-1.64,-1.64,-1.834,-2.188,-2.325,-4.48],[\"c\",3.162,0,2.708,-1.862,4.342,-4.09],[\"c\",-0.84,-0.504,-1.681,-1.008,-2.521,-1.512],[\"c\",3.833,-2.869,3.828,-2.76,2.539,-8.066],[\"c\",-0.877,-3.608,-0.278,-6.225,2.058,-9.733],[\"C\",25.57,-1.726,27.022,0.327,31.783,0.3],[\"c\",3.464,-0.021,6.667,0.022,8.97,5.944],[\"c\",-0.462,-0.248,-1.416,-0.428,-1.878,-0.126],[\"c\",0.126,0.588,0.825,2.984,0.5,3.49],[\"c\",-0.673,1.049,-0.867,0.977,-0.087,2.224],[\"c\",0.345,0.552,-0.111,2.569,-0.915,4.108],[\"c\",-0.366,0.807,-0.308,2.539,-1.714,2.186],[\"c\",-0.534,0.42,-0.248,1.744,0.203,2.164],[\"c\",2.527,0,5.04,-0.988,7.921,-0.666],[\"C\",47.872,19.969,54.917,30.783,62.022,30.848],[\"L\",62.022,30.848],[\"z\"]]}";
|
||||
// var EXPECTED_PATH_JSON = "{\"type\":\"path\",\"left\":0,\"top\":0,\"width\":93,\"height\":137,\"fill\":\"#99CCFF\",\"stroke\":null,\"strokeWidth\":1,\"scaleX\":1,\"scaleY\":1,\"angle\":0,\"flipX\":false,\"flipY\":false,\"opacity\":1,\"selectable\":true,\"hasControls\":true,\"hasBorders\":true,\"hasRotatingPoint\":false,\"path\":[[\"M\",62.022,30.848],[\"c\",4.251,0.038,9.565,-2.206,13.424,-3.924],[\"c\",3.131,-1.396,4.47,-1.299,7.833,0.263],[\"c\",2.18,1.012,3.883,-1.551,5.824,-2.048],[\"c\",0.243,-0.062,0.537,0.464,0.374,0.652],[\"c\",-0.553,0.639,-2.932,1.753,-2.679,2.821],[\"c\",0.184,0.779,4.081,0.817,5.226,1.347],[\"c\",1.008,0.653,-3.22,0.665,-3.17,1.028],[\"c\",1.038,0.191,2.175,0.279,3.03,0.703],[\"c\",0.482,0.238,-0.707,0.815,-1.245,0.731],[\"c\",0.194,0.103,0.711,0.257,0.583,0.436],[\"c\",-0.144,0.891,-3.265,0.128,-4.132,-0.003],[\"c\",-0.688,-0.104,-3.754,-0.843,-3.892,0.039],[\"c\",-0.092,0.586,0.47,1.079,0.133,2.617],[\"c\",-0.314,1.438,-1.942,1.633,-1.831,1.024],[\"c\",0.273,-1.496,1.201,-1.914,-0.4,-3.564],[\"c\",-0.979,-1.01,-1.908,-2.344,-2.138,-3.425],[\"c\",-7.581,1.092,-9.456,6.321,-17.365,7.858],[\"c\",-2.787,0.541,-5.233,-1.016,-7.887,-2.27],[\"c\",0.168,0.259,0.457,0.272,0.169,1.184],[\"c\",-0.29,0.918,-0.479,2.081,-0.225,3.104],[\"c\",0.539,2.169,1.73,4.464,2.5,6.755],[\"c\",1.481,4.415,0.996,11.273,0.42,15.21],[\"c\",-0.105,0.715,0.497,1.432,0.129,2.608],[\"c\",-0.128,0.413,0.384,1.027,0.347,1.458],[\"c\",-0.195,2.236,1.106,2.01,3.446,4.502],[\"c\",-0.21,0.252,-0.926,0.504,-1.136,0.756],[\"c\",4.353,5.205,8.404,10.612,11.622,16.651],[\"c\",0.805,1.512,1.511,3.199,1.511,4.913],[\"c\",0,1.955,-1.154,2.843,-2.057,4.577],[\"c\",-0.741,1.423,-2.081,2.305,-3.121,3.526],[\"c\",-5.631,6.614,-9.57,11.287,-15.186,17.936],[\"c\",-0.976,3.091,1.141,4.783,1.093,6.394],[\"c\",-0.011,0.372,-0.267,0.74,-0.555,1.119],[\"c\",-0.452,0.595,-2.752,-1.225,-4.01,-2.617],[\"c\",-1.657,8.48,5.22,10.332,8.284,12.274],[\"c\",0.37,0.234,0.076,1.004,-0.05,1.424],[\"c\",-4.442,0.217,-7.603,0.246,-11.857,-1.172],[\"c\",-0.783,-0.963,-2.958,-5.188,-4.535,-3.406],[\"c\",-0.735,0.831,-1.092,1.932,-1.637,2.897],[\"c\",-0.462,0,-0.76,-0.247,-1.222,-0.247],[\"c\",-0.042,-1.553,0.19,-2.878,-0.044,-4.413],[\"c\",-0.633,-4.152,-1.551,-4.467,2.037,-7.866],[\"c\",1.782,-1.689,2.374,-2.065,4.045,-3.916],[\"c\",-0.552,-1.562,0.385,-2.303,-1.192,-3],[\"c\",-0.936,-0.041,-3.255,1.205,-3.535,2.152],[\"c\",-0.378,-0.042,-1.001,-0.701,-1.379,-0.742],[\"c\",0.896,-1.794,1.155,-1.791,0.926,-2.913],[\"c\",-0.796,-3.892,1.304,-4.478,3.593,-5.779],[\"c\",3.523,-3.523,6.666,-10.464,10.145,-14.605],[\"c\",1.05,-1.25,2.885,-2.043,4.019,-3.219],[\"c\",-1.26,-1.175,-2.805,-2.106,-3.779,-3.526],[\"c\",-2.437,-3.554,-6.445,-7.633,-9.421,-8.945],[\"c\",-0.756,0.168,-1.513,0.336,-2.269,0.504],[\"c\",-3.89,-2.843,-8.766,-8.817,-6.814,-16.892],[\"c\",1.413,-5.846,8.545,-7.913,2.791,-13.009],[\"c\",-1.299,-1.15,-7.22,-6.915,-8.904,-6.021],[\"c\",-1.257,0.667,-3.774,2.431,-3.966,4.015],[\"c\",-0.299,2.472,-4.275,17.925,-7.829,14.167],[\"C\",9.169,53.682,7.55,47.517,6.059,43.276],[\"c\",-0.873,-2.481,-4.009,-2.109,-5.077,-5],[\"c\",-0.368,-0.997,-1.229,-2.067,-0.914,-3.082],[\"c\",0.169,-0.545,0.63,-0.336,1.175,-0.504],[\"c\",0.535,-2.002,0.199,-1.216,1.704,-1.318],[\"c\",0,-1.215,0.604,-0.978,1.498,-0.978],[\"c\",0.987,-1.624,1.841,-0.106,4.696,1.74],[\"c\",1.461,0.945,1.292,2.708,0.987,4.319],[\"c\",-0.281,1.483,-0.582,2.403,-0.018,3.626],[\"c\",1.14,2.472,4.709,6.794,6.412,9.063],[\"c\",2.12,-2.974,1.531,-6.198,1.788,-10.647],[\"c\",0.1,-1.729,0.84,-3.361,1.26,-5.041],[\"c\",-1.504,-0.111,-2.596,-0.532,-3.277,-1.261],[\"c\",0.336,-0.588,0.672,-1.177,1.008,-1.765],[\"c\",-1.64,-1.64,-1.834,-2.188,-2.325,-4.48],[\"c\",3.162,0,2.708,-1.862,4.342,-4.09],[\"c\",-0.84,-0.504,-1.681,-1.008,-2.521,-1.512],[\"c\",3.833,-2.869,3.828,-2.76,2.539,-8.066],[\"c\",-0.877,-3.608,-0.278,-6.225,2.058,-9.733],[\"C\",25.57,-1.726,27.022,0.327,31.783,0.3],[\"c\",3.464,-0.021,6.667,0.022,8.97,5.944],[\"c\",-0.462,-0.248,-1.416,-0.428,-1.878,-0.126],[\"c\",0.126,0.588,0.825,2.984,0.5,3.49],[\"c\",-0.673,1.049,-0.867,0.977,-0.087,2.224],[\"c\",0.345,0.552,-0.111,2.569,-0.915,4.108],[\"c\",-0.366,0.807,-0.308,2.539,-1.714,2.186],[\"c\",-0.534,0.42,-0.248,1.744,0.203,2.164],[\"c\",2.527,0,5.04,-0.988,7.921,-0.666],[\"C\",47.872,19.969,54.917,30.783,62.022,30.848],[\"L\",62.022,30.848],[\"z\"]]}";
|
||||
|
||||
QUnit.module('fabric.Parser');
|
||||
|
||||
|
|
@ -170,22 +170,22 @@
|
|||
'fontStyle': 'italic',
|
||||
'fontFamily': 'Arial,Helvetica,sans-serif'
|
||||
};
|
||||
|
||||
|
||||
deepEqual(styleObj, expectedObject);
|
||||
|
||||
//testing different unit
|
||||
element.setAttribute('style', 'font: italic 1.5em Arial,Helvetica,sans-serif');
|
||||
var styleObj = fabric.parseStyleAttribute(element);
|
||||
styleObj = fabric.parseStyleAttribute(element);
|
||||
if (styleObj.font) {
|
||||
fabric.parseFontDeclaration(styleObj.font, styleObj);
|
||||
}
|
||||
var expectedObject = {
|
||||
expectedObject = {
|
||||
'font': 'italic 1.5em Arial,Helvetica,sans-serif',
|
||||
'fontSize': 24,
|
||||
'fontStyle': 'italic',
|
||||
'fontFamily': 'Arial,Helvetica,sans-serif'
|
||||
};
|
||||
|
||||
|
||||
deepEqual(styleObj, expectedObject);
|
||||
});
|
||||
|
||||
|
|
@ -241,51 +241,53 @@
|
|||
});
|
||||
|
||||
test('parseTransformAttribute', function() {
|
||||
var parsedValue;
|
||||
|
||||
ok(fabric.parseTransformAttribute);
|
||||
var element = fabric.document.createElement('path');
|
||||
|
||||
//'translate(-10,-20) scale(2) rotate(45) translate(5,10)'
|
||||
|
||||
element.setAttribute('transform', 'translate(5,10)');
|
||||
var parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
deepEqual(parsedValue, [1,0,0,1,5,10]);
|
||||
|
||||
element.setAttribute('transform', 'translate(-10,-20)');
|
||||
var parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
deepEqual(parsedValue, [1,0,0,1,-10,-20]);
|
||||
|
||||
var ANGLE_DEG = 90;
|
||||
var ANGLE = ANGLE_DEG * Math.PI / 180;
|
||||
element.setAttribute('transform', 'rotate(' + ANGLE_DEG + ')');
|
||||
var parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
deepEqual(parsedValue, [Math.cos(ANGLE), Math.sin(ANGLE), -Math.sin(ANGLE), Math.cos(ANGLE), 0, 0]);
|
||||
|
||||
element.setAttribute('transform', 'scale(3.5)');
|
||||
var parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
deepEqual(parsedValue, [3.5,0,0,3.5,0,0]);
|
||||
|
||||
element.setAttribute('transform', 'scale(2 13)');
|
||||
var parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
deepEqual(parsedValue, [2,0,0,13,0,0]);
|
||||
|
||||
element.setAttribute('transform', 'skewX(2)');
|
||||
var parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
deepEqual(parsedValue, [1,0,0.03492076949174773,1,0,0]);
|
||||
|
||||
element.setAttribute('transform', 'skewY(234.111)');
|
||||
var parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
deepEqual(parsedValue, [1,1.3820043381762832,0,1,0,0]);
|
||||
|
||||
element.setAttribute('transform', 'matrix(1,2,3,4,5,6)');
|
||||
var parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
deepEqual(parsedValue, [1,2,3,4,5,6]);
|
||||
|
||||
element.setAttribute('transform', 'translate(21,31) translate(11,22)');
|
||||
var parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
deepEqual(parsedValue, [1,0,0,1,32,53]);
|
||||
|
||||
element.setAttribute('transform', 'scale(2 13) translate(5,15) skewX(11.22)');
|
||||
var parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
parsedValue = fabric.parseTransformAttribute(element.getAttribute('transform'));
|
||||
deepEqual(parsedValue, [2,0,0.3967362169237356,13,10,195]);
|
||||
|
||||
});
|
||||
|
|
@ -376,17 +378,19 @@
|
|||
'opacity should be parsed correctly from "opacity" attribute of ' + tagNames[i] + ' element');
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
test('getCssRule', function() {
|
||||
|
||||
ok(fabric.getCSSRules);
|
||||
|
||||
var doc = fabric.document,
|
||||
svgUid = 'uniqueId',
|
||||
styleElement = doc.createElement('style');
|
||||
styleElement.textContent = 'g polygon.cls, rect {fill:#FF0000; stroke:#000000;stroke-width:0.25px;}\
|
||||
polygon.cls {fill:none;stroke:#0000FF;}',
|
||||
doc.body.appendChild(styleElement),
|
||||
svgUid = 'uniqueId';
|
||||
|
||||
styleElement.textContent = 'g polygon.cls, rect {fill:#FF0000; stroke:#000000;stroke-width:0.25px;}\
|
||||
polygon.cls {fill:none;stroke:#0000FF;}';
|
||||
|
||||
doc.body.appendChild(styleElement);
|
||||
|
||||
var expectedObject = {
|
||||
'g polygon.cls': {
|
||||
|
|
@ -407,7 +411,7 @@
|
|||
|
||||
fabric.cssRules[svgUid] = fabric.getCSSRules(doc);
|
||||
deepEqual(fabric.cssRules[svgUid], expectedObject);
|
||||
|
||||
|
||||
var elPolygon = fabric.document.createElement('polygon'),
|
||||
expectedStyle = {
|
||||
'fill' : '',
|
||||
|
|
@ -420,9 +424,9 @@
|
|||
|
||||
var style = fabric.parseAttributes(elPolygon, [ ]);
|
||||
deepEqual(style, expectedStyle);
|
||||
|
||||
|
||||
styleElement.textContent = '\t\n';
|
||||
expectedStyle = { }
|
||||
expectedStyle = { };
|
||||
svgUid = 'uniqueId2';
|
||||
fabric.cssRules[svgUid] = fabric.getCSSRules(doc);
|
||||
deepEqual(fabric.cssRules[svgUid], expectedStyle);
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
'clipTo': null,
|
||||
'backgroundColor': '',
|
||||
'fillRule': 'nonzero',
|
||||
'globalCompositeOperation': 'source-over',
|
||||
'globalCompositeOperation': 'source-over',
|
||||
'paths': getPathObjects()
|
||||
};
|
||||
|
||||
|
|
@ -113,19 +113,15 @@
|
|||
asyncTest('toObject', function() {
|
||||
getPathGroupObject(function(pathGroup) {
|
||||
ok(typeof pathGroup.toObject == 'function');
|
||||
|
||||
var object = pathGroup.toObject();
|
||||
ok(typeof object == 'object');
|
||||
|
||||
start();
|
||||
});
|
||||
});
|
||||
|
||||
asyncTest('complexity', function() {
|
||||
function sum(objects) {
|
||||
var i = objects.length, total = 0;
|
||||
while (i--) {
|
||||
total += objects[i];
|
||||
}
|
||||
return total;
|
||||
}
|
||||
getPathGroupObject(function(pathGroup) {
|
||||
|
||||
ok(typeof pathGroup.complexity == 'function');
|
||||
|
|
@ -231,7 +227,7 @@
|
|||
start();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
asyncTest('toSVG', function() {
|
||||
ok(fabric.PathGroup);
|
||||
getPathGroupObject(function(pathGroup) {
|
||||
|
|
@ -256,5 +252,5 @@
|
|||
equal(pathGroup.toSVG(), REFERENCE_PATH_GROUP_SVG);
|
||||
start();
|
||||
});
|
||||
});
|
||||
});
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@
|
|||
var IMG_SRC = fabric.isLikelyNode ? (__dirname + '/../fixtures/greyfloral.png') : '../fixtures/greyfloral.png';
|
||||
|
||||
function createImageElement() {
|
||||
return fabric.isLikelyNode ? new (require('canvas').Image) : fabric.document.createElement('img');
|
||||
return fabric.isLikelyNode
|
||||
? new (require('canvas').Image)()
|
||||
: fabric.document.createElement('img');
|
||||
}
|
||||
function setSrc(img, src, callback) {
|
||||
if (fabric.isLikelyNode) {
|
||||
|
|
@ -61,7 +63,6 @@
|
|||
equal(object.offsetX, 0);
|
||||
equal(object.offsetY, 0);
|
||||
|
||||
var sourceExecuted;
|
||||
var patternWithGetSource = new fabric.Pattern({
|
||||
source: function() {return fabric.document.createElement("canvas")}
|
||||
});
|
||||
|
|
@ -78,6 +79,8 @@
|
|||
});
|
||||
|
||||
test('pattern serialization / deserialization (function)', function() {
|
||||
var patternSourceCanvas, padding;
|
||||
|
||||
var pattern = new fabric.Pattern({
|
||||
source: function() {
|
||||
patternSourceCanvas.setDimensions({
|
||||
|
|
|
|||
|
|
@ -5,7 +5,9 @@
|
|||
function K (x) { return x }
|
||||
|
||||
function _createImageElement() {
|
||||
return fabric.isLikelyNode ? new (require('canvas').Image) : fabric.document.createElement('img');
|
||||
return fabric.isLikelyNode
|
||||
? new (require('canvas').Image)()
|
||||
: fabric.document.createElement('img');
|
||||
}
|
||||
|
||||
function getAbsolutePath(path) {
|
||||
|
|
@ -191,11 +193,11 @@
|
|||
ok(typeof clone == 'function');
|
||||
|
||||
var obj = { x: 1, y: [1, 2, 3] },
|
||||
clone = clone(obj);
|
||||
_clone = clone(obj);
|
||||
|
||||
equal(clone.x, 1);
|
||||
notEqual(obj, clone);
|
||||
equal(clone.y, obj.y);
|
||||
equal(_clone.x, 1);
|
||||
notEqual(obj, _clone);
|
||||
equal(_clone.y, obj.y);
|
||||
});
|
||||
|
||||
test('Function.prototype.bind', function() {
|
||||
|
|
@ -208,7 +210,7 @@
|
|||
|
||||
var bound = fn.bind(obj);
|
||||
deepEqual([obj, undefined, undefined], bound());
|
||||
deepEqual([obj, 1, undefined], bound(1))
|
||||
deepEqual([obj, 1, undefined], bound(1));
|
||||
deepEqual([obj, 1, null], bound(1, null));
|
||||
|
||||
bound = fn.bind(obj, 1);
|
||||
|
|
@ -220,7 +222,7 @@
|
|||
this.y = y;
|
||||
}
|
||||
|
||||
var obj = { }
|
||||
obj = { };
|
||||
var YAxisPoint = Point.bind(obj, 0);
|
||||
var axisPoint = new YAxisPoint(5);
|
||||
|
||||
|
|
@ -247,7 +249,7 @@
|
|||
ok(typeof fabric.util.toArray == 'function');
|
||||
|
||||
deepEqual(['x', 'y'], fabric.util.toArray({ 0: 'x', 1: 'y', length: 2 }));
|
||||
deepEqual([1, 3], fabric.util.toArray(function(){ return arguments }(1, 3)));
|
||||
deepEqual([1, 3], fabric.util.toArray((function(){ return arguments })(1, 3)));
|
||||
|
||||
var nodelist = fabric.document.getElementsByTagName('div'),
|
||||
converted = fabric.util.toArray(nodelist);
|
||||
|
|
@ -517,7 +519,7 @@
|
|||
|
||||
equal(2, array.indexOf(3, -47), "large negative value for fromIndex");
|
||||
equal(10, array.indexOf(3, 4));
|
||||
equal(10, array.indexOf(3, -5))
|
||||
equal(10, array.indexOf(3, -5));
|
||||
equal(2, array.indexOf(3, {}), "nonsensical value for fromIndex");
|
||||
equal(2, array.indexOf(3, ""), "nonsensical value for fromIndex");
|
||||
equal(-1, array.indexOf(3, 41), "fromIndex value larger than the length of the array");
|
||||
|
|
@ -628,7 +630,7 @@
|
|||
deepEqual(['1!', '2!', '3!', '4!', '5!'],
|
||||
arr.reduce(function(memo, val) { memo.push(val + '!'); return memo }, [ ]));
|
||||
|
||||
var arr = 'foobar'.split('');
|
||||
arr = 'foobar'.split('');
|
||||
equal('f0o1o2b3a4r5',
|
||||
arr.reduce(function(memo, val, index) { return memo + val + index }, ''));
|
||||
});
|
||||
|
|
@ -768,7 +770,7 @@
|
|||
});
|
||||
|
||||
test('fabric.util.populateWithProperties', function() {
|
||||
ok(typeof fabric.util.populateWithProperties == 'function')
|
||||
ok(typeof fabric.util.populateWithProperties == 'function');
|
||||
|
||||
var source = {
|
||||
foo: 'bar',
|
||||
|
|
|
|||
Loading…
Reference in a new issue