Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Export to image with canvas (drop canvg) #4569

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@
"camunda-cmmn-moddle": "^1.0.0",
"camunda-dmn-js": "^2.9.1",
"camunda-dmn-moddle": "^1.3.0",
"canvg": "^4.0.2",
"classnames": "^2.5.1",
"cmmn-js": "^0.20.0",
"cmmn-js-properties-panel": "^0.9.0",
Expand Down
35 changes: 26 additions & 9 deletions client/src/app/util/__tests__/generateImageSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,38 +12,36 @@ import generateImage from '../generateImage';

import { keys } from 'min-dash';

const EXCPECTED_JPEG_DATAURL = 'data:image/jpeg;base64,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';
const EXPECTED_JPEG_DATAURL = 'data:image/jpeg;base64,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';

const EXPECTED_PNG_DATAURL = 'data:image/png;base64,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';
const EXPECTED_PNG_DATAURL = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABYpJREFUaEPtWWlIVV0UXSblEJlDgjSRaaKJiZqEjagpIqKkqKiphAgKFYmZ0oAQiRmmaAQmOYGKolkOaKAlhFMZJkglFfWjqCDMiCxL1FgHFOl7T8997+nlAzdcMjjT2vNez2h2dnYW/2MxWgWgsvVWLaCyAWAwC7x79w4VFRXo7u7G2NgYxsfH8fnzZ4HPzs4OVlZW2LRpE44ePYr4+HjY29sbBLveAMrKynDr1i0MDg4qetC+ffuQmpqKxMRERfv+XawzgLt37+LChQt4+fKlONPW1hYREREICQnB1q1bYW1tjW3btuHnz5/CIvzev3+P1tZWNDU1if9Tdu/ejby8PLFPF1EM4MuXL4iJicGDBw/EfUeOHEF2djZ8fX0V3d/Z2YlLly7h8ePHYl9gYCCqq6uFIpSIIgB9fX1Cy/RtNzc35Ofni4v1kfb2dpw7dw7Pnz/H5s2b0djYCB8fH+kjpQHcvn0bycnJ4uBjx46htrYWpqam0hcttpBuFh0djba2NrGsvLwcJ06ckDpbCgDNHRQUhJmZGZw9exbXrl2DkZGR1AWyi9jRpKeno7CwEGvWrEFXV5eUWy4J4PXr1/Dw8MDExATS0tJQUFAg+yad1p05cwZFRUWwsLAQmc3JyWnRcxYFQK14enpieHgYAQEBuH//vtDOcgqtzFrBekLFDQ0N6Q6AvpiUlAQXFxehjfXr1y/n2+fP/v79O7y9vfHq1StUVVUhISFB671aLcDA2rFjB5g2qQVqYyWFGe/AgQMiM9GNzc3NNV6vFUBmZqYIVgZvR0fHSr59/i5/f388fPhQFMwrV67IA6Dvb9iwQQRuc3MzQkNDVQHAmhAZGSmqOj1BU/xptEB/fz/2798PMzMzfPv2DevWrVMFwK9fv2BjYwP++/TpU3h5ef3nHRoBXL58WbQHLC51dXWqPH7u0vDwcLDvunr1KujW/4pGAGwX2HDV19cjKipKVQA1NTU4fvw4YmNjwb+lADD6mQUY/Y6OjqoCePHiBVxdXUVVZkBLAXBwcMDbt29F4HAIUVM+fvyILVu2wNnZeb51X/gejS7EoJ2amsL09PSyV96llMN6xAK6ceNGkVCkLGBiYoI/f/7g9+/fqmWguYf++PFDpHR+rNBSAHbu3AnOuPxYjdWUN2/eYNeuXeJjayEFgDWAtWBgYACcXdWU3t5eHDx4EIcOHcKjR4/kAHBguXfvHkpLS+eHGLVA3Lx5EydPnhTpnGldygLsOzivsh6wnKspYWFhaGlpEYM/R08pACMjI9izZw8sLS3x9etXg09fsgphFmT2YU+mLR61dqNzgcyCpmTIln2czDr6PFkPbTWAZ2gFcP36dTH/qtkPzfVBxcXFOHXqlEbMWgFMTk4K+o8USk9PjxguVlI4Uvr5+QmSjF3B2rVrlQHgalKGKSkp2L59O549eyb68pUQtjDu7u749OnTkhTLokM9g4isADVw+PBh0UwZGxsvKwbeyTr05MkT4QEsZIsRCUvSKhwkWEjYVpw+fVpQHsspJHxLSkrEMEXXJSuymCwJgJvv3LkjRjuOmuRtGOCGpleoefJON27cEGeTBA4ODl5SV1IAeAq1Qu1QyIc2NDQI8skQwiaNRZNsHIU0JukcGZEGwMN4AdsMdojMDrm5uYiLi9O50NGilZWVuHjxItj3UyG0NoktWVEEgIeOjo4K07IyUvbu3SvKPFOeEqEyMjIyBOtH4eRHpppdpxJRDICHs7RzyF7I1ZDXZ99CCoZpV9sPHGwSSdXM/cBBhps9TlZWlghcpaITgLlLPnz4gPPnzwuzc3JSIpyymBhycnIE+6ar6AVg4aV0CTJ4zN/afuQjx8P5gi6o1OW0ATQYAF01qO++VQD6alDf/asW0FeD+u7/C0hgCJ5xlCmIAAAAAElFTkSuQmCC';

const expectedImagesByType = {
png: EXPECTED_PNG_DATAURL,
jpeg: EXCPECTED_JPEG_DATAURL
jpeg: EXPECTED_JPEG_DATAURL
};

describe('util - generateImage', function() {

const svg = require('./diagram.svg'),
outOfBoundsSVG = require('./out_of_bounds_diagram.svg');
outOfBoundsSVG = require('./out_of_bounds_diagram.svg'),
webhookSVG = require('./webhook.svg');

keys(expectedImagesByType).forEach(function(type) {

it('should export <' + type + '>', async function() {

const image = await generateImage(type, svg);

expect(image).to.exist;
expectToBeAnImage(image);
});


it('should automatically handle large images <' + type + '>', async function() {

const image = await generateImage(type, outOfBoundsSVG);

// if image cannot be generated properly it returns a data string with
// 6 characters. If it is generated, image.length returns the actual size
// of the generated image which is more than 6.
expect(image.length).to.be.greaterThan(6);
expectToBeAnImage(image);
}).timeout(10000); // downscaling may exceed the default timeout 2000ms.


Expand All @@ -54,6 +52,25 @@ describe('util - generateImage', function() {

expect(image).to.be.eql(expectedImage);
});


it('should handle webhook icon <' + type + '>', async function() {

const image = await generateImage(type, webhookSVG);

expectToBeAnImage(image);
});
});

});


/**
* If image cannot be generated properly it returns a data string with
* 6 characters. If it is generated, image.length returns the actual size
* of the generated image which is more than 6.
*/
function expectToBeAnImage(image) {
expect(image).to.exist;
expect(image.length).to.be.greaterThan(6);
}
Loading
Loading