mirror of
https://github.com/Hopiu/fabric.js.git
synced 2026-03-19 07:20:27 +00:00
175 lines
No EOL
5.6 KiB
JavaScript
175 lines
No EOL
5.6 KiB
JavaScript
(function(){
|
|
|
|
module('fabric.Color');
|
|
|
|
test('constructor', function() {
|
|
var oColor = new fabric.Color('ff5555');
|
|
ok(oColor);
|
|
ok(oColor instanceof fabric.Color);
|
|
equals(oColor.toHex(), 'FF5555');
|
|
|
|
var oColor = new fabric.Color('rgb(100,100,100)');
|
|
ok(oColor);
|
|
ok(oColor instanceof fabric.Color);
|
|
equals(oColor.toRgb(), 'rgb(100,100,100)');
|
|
});
|
|
|
|
test('getSource', function() {
|
|
var oColor = new fabric.Color('ffffff');
|
|
ok(typeof oColor.getSource == 'function');
|
|
same(oColor.getSource(), [255, 255, 255, 1]);
|
|
});
|
|
|
|
test('setSource', function() {
|
|
var oColor = new fabric.Color('ffffff');
|
|
ok(typeof oColor.setSource == 'function');
|
|
oColor.setSource([0,0,0,1]);
|
|
same(oColor.getSource(), [0,0,0,1]);
|
|
});
|
|
|
|
test('toRgb', function() {
|
|
var oColor = new fabric.Color('ffffff');
|
|
ok(typeof oColor.toRgb == 'function');
|
|
equals(oColor.toRgb(), 'rgb(255,255,255)');
|
|
oColor.setSource([0,0,0,0.5]);
|
|
equals(oColor.toRgb(), 'rgb(0,0,0)');
|
|
});
|
|
|
|
test('toRgba', function() {
|
|
var oColor = new fabric.Color('ffffff');
|
|
ok(typeof oColor.toRgba == 'function');
|
|
equals(oColor.toRgba(), 'rgba(255,255,255,1)');
|
|
oColor.setSource([0,0,0,0.5]);
|
|
equals(oColor.toRgba(), 'rgba(0,0,0,0.5)');
|
|
});
|
|
|
|
test('toHex', function() {
|
|
var oColor = new fabric.Color('ffffff');
|
|
ok(typeof oColor.toHex == 'function');
|
|
equals(oColor.toHex(), 'FFFFFF');
|
|
oColor.setSource([0,0,0,0.5]);
|
|
equals(oColor.toHex(), '000000');
|
|
});
|
|
|
|
test('getAlpha', function() {
|
|
var oColor = new fabric.Color('ffffff');
|
|
ok(typeof oColor.getAlpha == 'function');
|
|
equals(oColor.getAlpha(), 1);
|
|
oColor.setSource([10,20,30, 0.456]);
|
|
equals(oColor.getAlpha(), 0.456);
|
|
});
|
|
|
|
test('setAlpha', function() {
|
|
var oColor = new fabric.Color('ffffff');
|
|
ok(typeof oColor.setAlpha == 'function');
|
|
oColor.setAlpha(0.1234);
|
|
equals(oColor.getAlpha(), 0.1234);
|
|
equals(oColor.setAlpha(0), oColor, 'should be chainable');
|
|
});
|
|
|
|
test('toGrayscale', function() {
|
|
var oColor = new fabric.Color('ff5555');
|
|
ok(typeof oColor.toGrayscale == 'function');
|
|
oColor.toGrayscale();
|
|
equals(oColor.toHex(), '888888');
|
|
oColor.setSource([10, 20, 30, 1]);
|
|
equals(oColor.toGrayscale(), oColor, 'should be chainable');
|
|
equals(oColor.toHex(), '121212');
|
|
});
|
|
|
|
test('toBlackWhite', function() {
|
|
var oColor = new fabric.Color('333333');
|
|
ok(typeof oColor.toBlackWhite == 'function');
|
|
oColor.toBlackWhite();
|
|
equals(oColor.toHex(), '000000');
|
|
oColor.setSource([200,200,200,1]);
|
|
equals(oColor.toBlackWhite(), oColor, 'should be chainable');
|
|
equals(oColor.toHex(), 'FFFFFF');
|
|
oColor.setSource([127,127,127,1]);
|
|
oColor.toBlackWhite(200);
|
|
equals(oColor.toHex(), '000000', 'should work with threshold');
|
|
});
|
|
|
|
test('fromRgb', function() {
|
|
ok(typeof fabric.Color.fromRgb == 'function');
|
|
var originalRgb = 'rgb(255,255,255)';
|
|
var oColor = fabric.Color.fromRgb(originalRgb);
|
|
ok(oColor);
|
|
ok(oColor instanceof fabric.Color);
|
|
equals(oColor.toRgb(), originalRgb);
|
|
equals(oColor.toHex(), 'FFFFFF');
|
|
});
|
|
|
|
test('fromRgba', function() {
|
|
ok(typeof fabric.Color.fromRgba == 'function');
|
|
var originalRgba = 'rgba(255,255,255,0.5)';
|
|
var oColor = fabric.Color.fromRgba(originalRgba);
|
|
ok(oColor);
|
|
ok(oColor instanceof fabric.Color);
|
|
equals(oColor.toRgba(), originalRgba);
|
|
equals(oColor.toHex(), 'FFFFFF');
|
|
equals(oColor.getAlpha(), 0.5, 'alpha should be set properly');
|
|
});
|
|
|
|
test('fromHex', function() {
|
|
ok(typeof fabric.Color.fromHex == 'function');
|
|
var originalHex = 'FF5555';
|
|
var oColor = fabric.Color.fromHex(originalHex);
|
|
ok(oColor);
|
|
ok(oColor instanceof fabric.Color);
|
|
equals(oColor.toHex(), originalHex);
|
|
equals(oColor.toRgb(), 'rgb(255,85,85)');
|
|
});
|
|
|
|
test('sourceFromRgb', function() {
|
|
ok(typeof fabric.Color.sourceFromRgb == 'function');
|
|
same([255,255,255,1], fabric.Color.sourceFromRgb('rgb(255,255,255)'));
|
|
same([100,150,200,1], fabric.Color.sourceFromRgb('rgb(100,150,200)'));
|
|
});
|
|
|
|
test('sourceFromHex', function() {
|
|
ok(typeof fabric.Color.sourceFromHex == 'function');
|
|
|
|
// uppercase
|
|
same([255,255,255,1], fabric.Color.sourceFromHex('FFFFFF'));
|
|
same([255,255,255,1], fabric.Color.sourceFromHex('FFF'));
|
|
same([255,255,255,1], fabric.Color.sourceFromHex('#FFFFFF'));
|
|
same([255,255,255,1], fabric.Color.sourceFromHex('#FFF'));
|
|
|
|
// lowercase
|
|
same([255,255,255,1], fabric.Color.sourceFromHex('#ffffff'));
|
|
same([255,255,255,1], fabric.Color.sourceFromHex('#fff'));
|
|
same([255,255,255,1], fabric.Color.sourceFromHex('ffffff'));
|
|
same([255,255,255,1], fabric.Color.sourceFromHex('fff'));
|
|
});
|
|
|
|
test('fromSource', function() {
|
|
ok(typeof fabric.Color.fromSource == 'function');
|
|
var oColor = fabric.Color.fromSource([255,255,255,0.37]);
|
|
|
|
ok(oColor);
|
|
ok(oColor instanceof fabric.Color);
|
|
equals(oColor.toRgba(), 'rgba(255,255,255,0.37)');
|
|
equals(oColor.toHex(), 'FFFFFF');
|
|
equals(oColor.getAlpha(), 0.37);
|
|
});
|
|
|
|
test('overlayWith', function() {
|
|
var oColor = new fabric.Color('FF0000');
|
|
ok(typeof oColor.overlayWith == 'function');
|
|
oColor.overlayWith('FFFFFF');
|
|
equals(oColor.toHex(), 'FF8080');
|
|
|
|
oColor = new fabric.Color('FFFFFF');
|
|
oColor.overlayWith('FFFFFF');
|
|
equals(oColor.toHex(), 'FFFFFF');
|
|
|
|
oColor = new fabric.Color('rgb(255,255,255)');
|
|
oColor.overlayWith('rgb(0,0,0)');
|
|
equals(oColor.toRgb(), 'rgb(128,128,128)');
|
|
|
|
oColor = new fabric.Color('rgb(255,255,255)');
|
|
oColor.overlayWith(new fabric.Color('rgb(0,0,0)'));
|
|
equals(oColor.toRgb(), 'rgb(128,128,128)');
|
|
});
|
|
})(); |