describe('getCroppedCanvas (method)', () => { it('should get a canvas with the whole image drew when it is not cropped', (done) => { const image = window.createImage(); const cropper = new Cropper(image, { autoCrop: false, ready() { const canvasData = cropper.getCanvasData(); const canvas = cropper.getCroppedCanvas(); expect(canvas).to.be.an.instanceof(HTMLCanvasElement); expect(canvas.width).to.equal(canvasData.naturalWidth); expect(canvas.height).to.equal(canvasData.naturalHeight); done(); }, }); }); it('should get a canvas with the cropped area of the image drew', (done) => { const image = window.createImage(); const cropper = new Cropper(image, { ready() { const data = cropper.getData(); const canvas = cropper.getCroppedCanvas(); expect(canvas).to.be.an.instanceof(HTMLCanvasElement); expect(canvas.width).to.equal(data.width); expect(canvas.height).to.equal(data.height); done(); }, }); }); it('should match the given width', (done) => { const image = window.createImage(); const cropper = new Cropper(image, { ready() { const width = 160; const canvas = cropper.getCroppedCanvas({ width, }); expect(canvas.width).to.equal(width); done(); }, }); }); it('should match the given height', (done) => { const image = window.createImage(); const cropper = new Cropper(image, { ready() { const height = 90; const canvas = cropper.getCroppedCanvas({ height, }); expect(canvas.height).to.equal(height); done(); }, }); }); it('should be contained when both width and height are given', (done) => { const image = window.createImage(); const cropper = new Cropper(image, { ready() { const width = 160; const height = 90; const canvas = cropper.getCroppedCanvas({ width, height, }); expect(canvas.width).to.be.most(width); expect(canvas.height).to.be.most(height); done(); }, }); }); it('should not be greater than the maximum width', (done) => { const image = window.createImage(); const cropper = new Cropper(image, { ready() { const maxWidth = 160; const canvas = cropper.getCroppedCanvas({ maxWidth, }); expect(canvas.width).to.be.most(maxWidth); done(); }, }); }); it('should not be greater than the maximum height', (done) => { const image = window.createImage(); const cropper = new Cropper(image, { ready() { const maxHeight = 90; const canvas = cropper.getCroppedCanvas({ maxHeight, }); expect(canvas.height).to.be.most(maxHeight); done(); }, }); }); it('should not be greater than both the maximum width and maximum height', (done) => { const image = window.createImage(); const cropper = new Cropper(image, { ready() { const maxWidth = 160; const maxHeight = 90; const canvas = cropper.getCroppedCanvas({ maxWidth, maxHeight, }); expect(canvas.width).to.be.most(maxWidth); expect(canvas.height).to.be.most(maxHeight); done(); }, }); }); it('should not be less than the minimum width', (done) => { const image = window.createImage(); const cropper = new Cropper(image, { ready() { const minWidth = 1600; const canvas = cropper.getCroppedCanvas({ minWidth, }); expect(canvas.width).to.be.least(minWidth); done(); }, }); }); it('should not be less than the minimum height', (done) => { const image = window.createImage(); const cropper = new Cropper(image, { ready() { const minHeight = 900; const canvas = cropper.getCroppedCanvas({ minHeight, }); expect(canvas.height).to.be.least(minHeight); done(); }, }); }); it('should not be less than both the minimum width and minimum height', (done) => { const image = window.createImage(); const cropper = new Cropper(image, { ready() { const minWidth = 1600; const minHeight = 900; const canvas = cropper.getCroppedCanvas({ minWidth, minHeight, }); expect(canvas.width).to.be.least(minWidth); expect(canvas.height).to.be.least(minHeight); done(); }, }); }); it('should match the given fill color', (done) => { const image = window.createImage(); const cropper = new Cropper(image, { ready() { const canvas = cropper.zoomTo(0.1).getCroppedCanvas({ fillColor: '#010101', }); const pixelData = canvas.getContext('2d').getImageData(0, 0, 1, 1).data; expect(pixelData[0]).to.equal(1, 'red is 1'); expect(pixelData[1]).to.equal(1, 'green is 1'); expect(pixelData[2]).to.equal(1, 'blue is 1'); expect(pixelData[3]).to.equal(255, 'color is opaque'); done(); }, }); }); });