-
-
Notifications
You must be signed in to change notification settings - Fork 3.5k
/
svg_import.js
109 lines (105 loc) · 2.53 KB
/
svg_import.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
(function() {
fabric.config.configure({
enableGLFiltering: false
});
fabric.Object.ownDefaults.objectCaching = true;
var visualTestLoop;
var getAsset;
if (isNode()) {
visualTestLoop = global.visualTestLoop;
getAsset = global.getAsset;
}
else {
visualTestLoop = window.visualTestLoop;
getAsset = window.getAsset;
}
function createTestFromSVG(svgName) {
if (!svgName) {
return null;
}
var test = function(canvas, callback) {
getAsset(svgName, function(err, string) {
fabric.loadSVGFromString(string).then(({ objects, options }) => {
// something is disabling objectCaching and i cannot find where it is.
var group = fabric.util.groupSVGElements(objects, options);
canvas.setDimensions({ width: group.width + group.left, height: group.height + group.top });
group.includeDefaultValues = false;
canvas.includeDefaultValues = false;
canvas.add(group);
canvas.renderAll();
callback(canvas.lowerCanvasEl);
});
});
};
return {
test: 'Svg import test ' + svgName,
code: test,
golden: svgName + '.png',
percentage: 0.055,
};
}
QUnit.module('Simple svg import test');
var tests = [
'svg_stroke_1',
'svg_stroke_2',
'svg_stroke_3',
'svg_stroke_4',
'svg_stroke_5',
'svg_stroke_6',
'svg_stroke_7',
'svg_stroke_8',
'svg_linear_1',
'svg_linear_2',
'svg_linear_3',
'svg_linear_4',
'svg_linear_5',
'svg_linear_6',
'svg_linear_7',
'svg_linear_8',
'svg_linear_9',
'svg_radial_1',
'svg_radial_2',
'svg_radial_3',
'svg_radial_4',
'svg_radial_5',
'svg_radial_6',
'svg_radial_8',
'svg_radial_9',
'svg_radial_10',
'svg_radial_11',
'svg_radial_12',
'svg_radial_13',
'svg_text_letterspacing',
'clippath-5',
'clippath-6',
'clippath-7',
'clippath-9',
'vector-effect',
'svg-with-no-dim-rect',
'notoemoji-person',
// 'clippath-8',
'emoji-b',
'gold-logo',
'svg_missing_clippath',
'image-rendering-attr',
'svg-missing-images',
// this svg below here is not correct. but we do not want additional regressions
'nested-svgs',
'arc1',
'arc2',
'arc3',
'cs',
'qt',
'generic-path',
'177',
'polygons',
'polygons-rounded',
'light-bulb',
'accordion',
'car',
'seaClipPath',
'use-and-style',
'use-svg-style-2',
].map(createTestFromSVG);
tests.forEach(visualTestLoop(QUnit));
})();