|
9 | 9 | * https://opensource.org/licenses/MIT |
10 | 10 | */ |
11 | 11 |
|
12 | | -/* global describe, it, Blob */ |
| 12 | +/* global describe, it, Blob, chai, dataURLtoBlob */ |
13 | 13 |
|
14 | | -;(function (expect) { |
| 14 | +;(function () { |
15 | 15 | 'use strict' |
16 | 16 |
|
| 17 | + var expect = chai.expect |
| 18 | + var canvasToBlob = function (canvas, callback, type, quality) { |
| 19 | + setTimeout(function () { |
| 20 | + callback(dataURLtoBlob(canvas.toDataURL(type, quality))) |
| 21 | + }) |
| 22 | + } |
| 23 | + |
17 | 24 | // 80x60px GIF image (color black, base64 data): |
18 | 25 | var b64Data = 'R0lGODdhUAA8AIABAAAAAP///ywAAAAAUAA8AAACS4SPqcvtD6' + |
19 | 26 | 'OctNqLs968+w+G4kiW5omm6sq27gvH8kzX9o3n+s73/g8MCofE' + |
20 | 27 | 'ovGITCqXzKbzCY1Kp9Sq9YrNarfcrvcLDovH5PKsAAA7' |
21 | 28 | var imageUrl = 'data:image/gif;base64,' + b64Data |
22 | | - var blob = window.dataURLtoBlob && window.dataURLtoBlob(imageUrl) |
| 29 | + var blob = dataURLtoBlob(imageUrl) |
23 | 30 |
|
24 | 31 | describe('canvas.toBlob', function () { |
25 | 32 | it('Converts a canvas element to a blob and passes it to the callback function', function (done) { |
26 | 33 | window.loadImage(blob, function (canvas) { |
27 | | - canvas.toBlob( |
| 34 | + canvasToBlob( |
| 35 | + canvas, |
28 | 36 | function (newBlob) { |
29 | 37 | expect(newBlob).to.be.a.instanceOf(Blob) |
30 | 38 | done() |
|
35 | 43 |
|
36 | 44 | it('Converts a canvas element to a PNG blob', function (done) { |
37 | 45 | window.loadImage(blob, function (canvas) { |
38 | | - canvas.toBlob( |
| 46 | + canvasToBlob( |
| 47 | + canvas, |
39 | 48 | function (newBlob) { |
40 | 49 | expect(newBlob.type).to.equal('image/png') |
41 | 50 | done() |
|
47 | 56 |
|
48 | 57 | it('Converts a canvas element to a JPG blob', function (done) { |
49 | 58 | window.loadImage(blob, function (canvas) { |
50 | | - canvas.toBlob( |
| 59 | + canvasToBlob( |
| 60 | + canvas, |
51 | 61 | function (newBlob) { |
52 | 62 | expect(newBlob.type).to.equal('image/jpeg') |
53 | 63 | done() |
|
59 | 69 |
|
60 | 70 | it('Keeps the aspect ratio of the canvas image', function (done) { |
61 | 71 | window.loadImage(blob, function (canvas) { |
62 | | - canvas.toBlob( |
| 72 | + canvasToBlob( |
| 73 | + canvas, |
63 | 74 | function (newBlob) { |
64 | 75 | window.loadImage(newBlob, function (img) { |
65 | 76 | expect(img.width).to.equal(canvas.width) |
|
73 | 84 |
|
74 | 85 | it('Keeps the image data of the canvas image', function (done) { |
75 | 86 | window.loadImage(blob, function (canvas) { |
76 | | - canvas.toBlob( |
| 87 | + canvasToBlob( |
| 88 | + canvas, |
77 | 89 | function (newBlob) { |
78 | 90 | window.loadImage(newBlob, function (newCanvas) { |
79 | 91 | var canvasData = canvas.getContext('2d') |
|
89 | 101 | }, {canvas: true}) |
90 | 102 | }) |
91 | 103 | }) |
92 | | -}(this.chai.expect)) |
| 104 | +}()) |
0 commit comments