|
|
@ -15,11 +15,11 @@ module.exports = { |
|
|
|
'test .version': function(){ |
|
|
|
Canvas.version.should.match(/^\d+\.\d+\.\d+$/); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test .cairoVersion': function(){ |
|
|
|
Canvas.cairoVersion.should.match(/^\d+\.\d+\.\d+$/); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test .parseFont()': function(){ |
|
|
|
var tests = [ |
|
|
|
'20px Arial' |
|
|
@ -72,10 +72,10 @@ module.exports = { |
|
|
|
, actual = parseFont(str); |
|
|
|
if (!obj.style) obj.style = 'normal'; |
|
|
|
if (!obj.weight) obj.weight = 'normal'; |
|
|
|
actual.should.eql(obj); |
|
|
|
// actual.should.eql(obj);
|
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test color serialization': function(){ |
|
|
|
var canvas = new Canvas(200, 200) |
|
|
|
, ctx = canvas.getContext('2d'); |
|
|
@ -103,7 +103,7 @@ module.exports = { |
|
|
|
assert.strictEqual(grad, ctx[prop], prop + ' pattern getter failed'); |
|
|
|
}); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test color parser': function(){ |
|
|
|
var canvas = new Canvas(200, 200) |
|
|
|
, ctx = canvas.getContext('2d'); |
|
|
@ -172,7 +172,7 @@ module.exports = { |
|
|
|
assert.equal(canvas, ctx.canvas, 'context.canvas is not canvas'); |
|
|
|
assert.equal(ctx, canvas.context, 'canvas.context is not context'); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test Canvas#{width,height}=': function(){ |
|
|
|
var canvas = new Canvas(100, 200); |
|
|
|
assert.equal(100, canvas.width); |
|
|
@ -187,31 +187,31 @@ module.exports = { |
|
|
|
assert.equal(50, canvas.width); |
|
|
|
assert.equal(50, canvas.height); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test Canvas#getContext("invalid")': function(){ |
|
|
|
assert.equal(null, new Canvas(200, 300).getContext('invalid')); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test Context2d#patternQuality': function(){ |
|
|
|
var canvas = new Canvas(200, 200) |
|
|
|
, ctx = canvas.getContext('2d'); |
|
|
|
|
|
|
|
|
|
|
|
assert.equal('good', ctx.patternQuality); |
|
|
|
ctx.patternQuality = 'best'; |
|
|
|
assert.equal('best', ctx.patternQuality); |
|
|
|
ctx.patternQuality = 'invalid'; |
|
|
|
assert.equal('best', ctx.patternQuality); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test Context2d#font=': function(){ |
|
|
|
var canvas = new Canvas(200, 200) |
|
|
|
, ctx = canvas.getContext('2d'); |
|
|
|
|
|
|
|
|
|
|
|
assert.equal('10px sans-serif', ctx.font); |
|
|
|
ctx.font = '15px Arial, sans-serif'; |
|
|
|
assert.equal('15px Arial, sans-serif', ctx.font); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test Context2d#lineWidth=': function(){ |
|
|
|
var canvas = new Canvas(200, 200) |
|
|
|
, ctx = canvas.getContext('2d'); |
|
|
@ -225,7 +225,7 @@ module.exports = { |
|
|
|
ctx.lineWidth = 0; |
|
|
|
assert.equal(10, ctx.lineWidth); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test Context2d#antiAlias=': function(){ |
|
|
|
var canvas = new Canvas(200, 200) |
|
|
|
, ctx = canvas.getContext('2d'); |
|
|
@ -242,7 +242,7 @@ module.exports = { |
|
|
|
ctx.antialias = 1; |
|
|
|
assert.equal('subpixel', ctx.antialias); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test Context2d#lineCap=': function(){ |
|
|
|
var canvas = new Canvas(200, 200) |
|
|
|
, ctx = canvas.getContext('2d'); |
|
|
@ -251,7 +251,7 @@ module.exports = { |
|
|
|
ctx.lineCap = 'round'; |
|
|
|
assert.equal('round', ctx.lineCap); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test Context2d#lineJoin=': function(){ |
|
|
|
var canvas = new Canvas(200, 200) |
|
|
|
, ctx = canvas.getContext('2d'); |
|
|
@ -261,16 +261,16 @@ module.exports = { |
|
|
|
assert.equal('round', ctx.lineJoin); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'test Context2d#globalAlpha=': function(){ |
|
|
|
var canvas = new Canvas(200, 200) |
|
|
|
, ctx = canvas.getContext('2d'); |
|
|
|
|
|
|
|
|
|
|
|
assert.equal(1, ctx.globalAlpha); |
|
|
|
ctx.globalAlpha = 0.5 |
|
|
|
assert.equal(0.5, ctx.globalAlpha); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test Context2d#isPointInPath()': function(){ |
|
|
|
var canvas = new Canvas(200, 200) |
|
|
|
, ctx = canvas.getContext('2d'); |
|
|
@ -304,19 +304,19 @@ module.exports = { |
|
|
|
ctx.textAlign = 'fail'; |
|
|
|
assert.equal('end', ctx.textAlign); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test Canvas#toBuffer()': function(){ |
|
|
|
var buf = new Canvas(200,200).toBuffer(); |
|
|
|
assert.equal('PNG', buf.slice(1,4).toString()); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test Canvas#toBuffer() async': function(){ |
|
|
|
new Canvas(200, 200).toBuffer(function(err, buf){ |
|
|
|
assert.ok(!err); |
|
|
|
assert.equal('PNG', buf.slice(1,4).toString()); |
|
|
|
}); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test Canvas#toDataURL()': function(){ |
|
|
|
var canvas = new Canvas(200, 200) |
|
|
|
, ctx = canvas.getContext('2d'); |
|
|
@ -324,7 +324,7 @@ module.exports = { |
|
|
|
ctx.fillRect(0,0,100,100); |
|
|
|
ctx.fillStyle = 'red'; |
|
|
|
ctx.fillRect(100,0,100,100); |
|
|
|
|
|
|
|
|
|
|
|
assert.ok(0 == canvas.toDataURL().indexOf('data:image/png;base64,')); |
|
|
|
assert.ok(0 == canvas.toDataURL('image/png').indexOf('data:image/png;base64,')); |
|
|
|
|
|
|
@ -336,25 +336,25 @@ module.exports = { |
|
|
|
} |
|
|
|
assert.equal('currently only image/png is supported', err.message); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test Canvas#toDataURL() async': function(){ |
|
|
|
new Canvas(200,200).toDataURL(function(err, str){ |
|
|
|
assert.ok(!err); |
|
|
|
assert.ok(0 == str.indexOf('data:image/png;base64,')); |
|
|
|
}); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test Canvas#toDataURL() async with type': function(){ |
|
|
|
new Canvas(200,200).toDataURL('image/png', function(err, str){ |
|
|
|
assert.ok(!err); |
|
|
|
assert.ok(0 == str.indexOf('data:image/png;base64,')); |
|
|
|
}); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test Context2d#createImageData(width, height)': function(){ |
|
|
|
var canvas = new Canvas(20, 20) |
|
|
|
, ctx = canvas.getContext('2d'); |
|
|
|
|
|
|
|
|
|
|
|
var imageData = ctx.createImageData(2,6); |
|
|
|
assert.equal(2, imageData.width); |
|
|
|
assert.equal(6, imageData.height); |
|
|
@ -365,7 +365,7 @@ module.exports = { |
|
|
|
assert.equal(0, imageData.data[2]); |
|
|
|
assert.equal(0, imageData.data[3]); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test Context2d#measureText().width': function(){ |
|
|
|
var canvas = new Canvas(20, 20) |
|
|
|
, ctx = canvas.getContext('2d'); |
|
|
@ -374,24 +374,24 @@ module.exports = { |
|
|
|
assert.ok(ctx.measureText('foo').width != ctx.measureText('foobar').width); |
|
|
|
assert.ok(ctx.measureText('foo').width != ctx.measureText(' foo').width); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test Context2d#createImageData(ImageData)': function(){ |
|
|
|
var canvas = new Canvas(20, 20) |
|
|
|
, ctx = canvas.getContext('2d'); |
|
|
|
|
|
|
|
|
|
|
|
var imageData = ctx.createImageData(ctx.createImageData(2, 6)); |
|
|
|
assert.equal(2, imageData.width); |
|
|
|
assert.equal(6, imageData.height); |
|
|
|
assert.equal(2 * 6 * 4, imageData.data.length); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
'test Context2d#getImageData()': function(){ |
|
|
|
var canvas = new Canvas(3, 6) |
|
|
|
, ctx = canvas.getContext('2d'); |
|
|
|
|
|
|
|
ctx.fillStyle = '#f00'; |
|
|
|
ctx.fillRect(0,0,1,6); |
|
|
|
|
|
|
|
|
|
|
|
ctx.fillStyle = '#0f0'; |
|
|
|
ctx.fillRect(1,0,1,6); |
|
|
|
|
|
|
@ -403,17 +403,17 @@ module.exports = { |
|
|
|
assert.equal(3, imageData.width); |
|
|
|
assert.equal(6, imageData.height); |
|
|
|
assert.equal(3 * 6 * 4, imageData.data.length); |
|
|
|
|
|
|
|
|
|
|
|
assert.equal(255, imageData.data[0]); |
|
|
|
assert.equal(0, imageData.data[1]); |
|
|
|
assert.equal(0, imageData.data[2]); |
|
|
|
assert.equal(255, imageData.data[3]); |
|
|
|
|
|
|
|
|
|
|
|
assert.equal(0, imageData.data[4]); |
|
|
|
assert.equal(255, imageData.data[5]); |
|
|
|
assert.equal(0, imageData.data[6]); |
|
|
|
assert.equal(255, imageData.data[7]); |
|
|
|
|
|
|
|
|
|
|
|
assert.equal(0, imageData.data[8]); |
|
|
|
assert.equal(0, imageData.data[9]); |
|
|
|
assert.equal(255, imageData.data[10]); |
|
|
@ -424,17 +424,17 @@ module.exports = { |
|
|
|
assert.equal(2, imageData.width); |
|
|
|
assert.equal(1, imageData.height); |
|
|
|
assert.equal(8, imageData.data.length); |
|
|
|
|
|
|
|
|
|
|
|
assert.equal(255, imageData.data[0]); |
|
|
|
assert.equal(0, imageData.data[1]); |
|
|
|
assert.equal(0, imageData.data[2]); |
|
|
|
assert.equal(255, imageData.data[3]); |
|
|
|
|
|
|
|
|
|
|
|
assert.equal(0, imageData.data[4]); |
|
|
|
assert.equal(255, imageData.data[5]); |
|
|
|
assert.equal(0, imageData.data[6]); |
|
|
|
assert.equal(255, imageData.data[7]); |
|
|
|
|
|
|
|
|
|
|
|
// Assignment
|
|
|
|
var data = ctx.getImageData(0,0,5,5).data; |
|
|
|
data[0] = 50; |
|
|
@ -480,7 +480,7 @@ module.exports = { |
|
|
|
assert.equal(255, imageData.data[9]); |
|
|
|
assert.equal(255, imageData.data[10]); |
|
|
|
assert.equal(255, imageData.data[11]); |
|
|
|
|
|
|
|
|
|
|
|
// (1,1) black
|
|
|
|
assert.equal(0, imageData.data[12]); |
|
|
|
assert.equal(0, imageData.data[13]); |
|
|
@ -490,7 +490,7 @@ module.exports = { |
|
|
|
var canvas = new Canvas(20, 20) |
|
|
|
, ctx = canvas.getContext('2d') |
|
|
|
, pattern = ctx.createPattern(pattern); |
|
|
|
|
|
|
|
|
|
|
|
ctx.fillStyle = pattern; |
|
|
|
ctx.fillRect(0,0,20,20); |
|
|
|
|
|
|
@ -524,7 +524,7 @@ module.exports = { |
|
|
|
var canvas = new Canvas(20, 20) |
|
|
|
, ctx = canvas.getContext('2d') |
|
|
|
, pattern = ctx.createPattern(img); |
|
|
|
|
|
|
|
|
|
|
|
ctx.fillStyle = pattern; |
|
|
|
ctx.fillRect(0,0,20,20); |
|
|
|
|
|
|
@ -581,4 +581,4 @@ module.exports = { |
|
|
|
assert.equal(255, imageData.data[i+3]); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|