testDataUrl(dataUrl,'change custom shape draw func','problem with setDrawFunc');
},
'everything enabled':function(containerId){
varstage=newKinetic.Stage({
container:containerId,
width:578,
height:200
});
varlayer=newKinetic.Layer();
varcircle=newKinetic.Circle({
x:stage.getWidth()/2,
y:stage.getHeight()/2,
radius:70,
fill:'green',
stroke:'black',
strokeWidth:4,
shadowColor:'black',
shadowBlur:10,
shadowOffset:10,
dashArray:[10,10],
fillEnabled:true,
strokeEnabled:true,
shadowEnabled:true,
dashArrayEnabled:true
});
layer.add(circle);
stage.add(layer);
//console.log(layer.toDataURL());
testDataUrl(layer.toDataURL(),'everything enabled','should be circle with green fill, dashed stroke, and shadow');
},
'fill disabled':function(containerId){
varstage=newKinetic.Stage({
container:containerId,
width:578,
height:200
});
varlayer=newKinetic.Layer();
varcircle=newKinetic.Circle({
x:stage.getWidth()/2,
y:stage.getHeight()/2,
radius:70,
fill:'green',
stroke:'black',
strokeWidth:4,
shadowColor:'black',
shadowBlur:10,
shadowOffset:10,
dashArray:[10,10],
fillEnabled:false,
strokeEnabled:true,
shadowEnabled:true,
dashArrayEnabled:true
});
layer.add(circle);
stage.add(layer);
//console.log(layer.toDataURL());
testDataUrl(layer.toDataURL(),'fill disabled','should be circle with no fill, dashed stroke, and shadow');
},
'stroke disabled':function(containerId){
varstage=newKinetic.Stage({
container:containerId,
width:578,
height:200
});
varlayer=newKinetic.Layer();
varcircle=newKinetic.Circle({
x:stage.getWidth()/2,
y:stage.getHeight()/2,
radius:70,
fill:'green',
stroke:'black',
strokeWidth:4,
shadowColor:'black',
shadowBlur:10,
shadowOffset:10,
dashArray:[10,10],
fillEnabled:true,
strokeEnabled:false,
shadowEnabled:true,
dashArrayEnabled:true
});
layer.add(circle);
stage.add(layer);
//console.log(layer.toDataURL());
testDataUrl(layer.toDataURL(),'stroke disabled','should be circle with green fill, no stroke, and shadow');
},
'dash array disabled':function(containerId){
varstage=newKinetic.Stage({
container:containerId,
width:578,
height:200
});
varlayer=newKinetic.Layer();
varcircle=newKinetic.Circle({
x:stage.getWidth()/2,
y:stage.getHeight()/2,
radius:70,
fill:'green',
stroke:'black',
strokeWidth:4,
shadowColor:'black',
shadowBlur:10,
shadowOffset:10,
dashArray:[10,10],
fillEnabled:true,
strokeEnabled:true,
shadowEnabled:true,
dashArrayEnabled:false
});
layer.add(circle);
stage.add(layer);
//console.log(layer.toDataURL());
testDataUrl(layer.toDataURL(),'dash array disabled','should be circle with green fill, solid stroke, and shadow');
},
'shadow disabled':function(containerId){
varstage=newKinetic.Stage({
container:containerId,
width:578,
height:200
});
varlayer=newKinetic.Layer();
varcircle=newKinetic.Circle({
x:stage.getWidth()/2,
y:stage.getHeight()/2,
radius:70,
fill:'green',
stroke:'black',
strokeWidth:4,
shadowColor:'black',
shadowBlur:10,
shadowOffset:10,
dashArray:[10,10],
fillEnabled:true,
strokeEnabled:true,
shadowEnabled:false,
dashArrayEnabled:true
});
layer.add(circle);
stage.add(layer);
//console.log(layer.toDataURL());
testDataUrl(layer.toDataURL(),'shadow disabled','should be circle with green fill, dashed stroke, and no shadow');
},
'fill overrides':function(containerId){
varstage=newKinetic.Stage({
container:containerId,
width:578,
height:200
});
varlayer=newKinetic.Layer();
varstar=newKinetic.Star({
x:200,
y:100,
numPoints:5,
innerRadius:40,
outerRadius:70,
fill:'red',
fillLinearGradientStartPoint:-35,
fillLinearGradientEndPoint:35,
fillLinearGradientColorStops:[0,'red',1,'blue'],
stroke:'blue',
strokeWidth:5,
draggable:true
});
layer.add(star);
stage.add(layer);
//console.log(layer.toDataURL());
testDataUrl(layer.toDataURL(),'red star','star should have red fill');
star.setFillPriority('linear-gradient');
layer.draw();
testDataUrl(layer.toDataURL(),'star with linear gradient fill','star should have linear gradient fill');
star.setFillPriority('color');
layer.draw();
testDataUrl(layer.toDataURL(),'red star','star should have red fill again');
}
};
Test.Modules.BLOB={
'add blobs':function(containerId){
varstage=newKinetic.Stage({
container:containerId,
width:578,
height:200
});
varlayer=newKinetic.Layer();
varblob1=newKinetic.Blob({
points:[{
x:73,
y:140
},{
x:340,
y:23
},{
x:500,
y:109
},{
x:300,
y:170
}],
stroke:'blue',
strokeWidth:10,
draggable:true,
fill:'#aaf',
tension:0.8
});
varblob2=newKinetic.Blob({
points:[{
x:73,
y:140
},{
x:340,
y:23
},{
x:500,
y:109
}],
stroke:'red',
strokeWidth:10,
draggable:true,
fill:'#faa',
tension:1.2,
scale:0.5,
x:100,
y:50
});
layer.add(blob1);
layer.add(blob2);
stage.add(layer);
//console.log(layer.toDataURL());
testDataUrl(layer.toDataURL(),'blobs','problem with blobs');
}
};
Test.Modules.SPLINE={
'add splines':function(containerId){
varstage=newKinetic.Stage({
container:containerId,
width:578,
height:200
});
varlayer=newKinetic.Layer();
varline1=newKinetic.Spline({
points:[{
x:73,
y:160
},{
x:340,
y:23
},{
x:500,
y:109
},{
x:300,
y:109
}],
stroke:'blue',
strokeWidth:10,
lineCap:'round',
lineJoin:'round',
draggable:true,
tension:1
});
varline2=newKinetic.Spline({
points:[{
x:73,
y:160
},{
x:340,
y:23
},{
x:500,
y:109
}],
stroke:'red',
strokeWidth:10,
lineCap:'round',
lineJoin:'round',
draggable:true,
tension:1
});
varline3=newKinetic.Spline({
points:[{
x:73,
y:160
},{
x:340,
y:23
}],
stroke:'green',
strokeWidth:10,
lineCap:'round',
lineJoin:'round',
draggable:true,
tension:1
});
layer.add(line1);
layer.add(line2);
layer.add(line3);
stage.add(layer);
/*
line.transitionTo({
spline:3,
duration:3
});
*/
//console.log(layer.toDataURL());
testDataUrl(layer.toDataURL(),'curvy lines','problem with curvy lines');
}
};
Test.Modules.Text={
'text multi line with shadows':function(containerId){
varstage=newKinetic.Stage({
container:containerId,
width:578,
height:200
});
varlayer=newKinetic.Layer();
vartext=newKinetic.Text({
x:10,
y:10,
//stroke: '#555',
//strokeWidth: 5,
text:'HEADING\n\nAll the world\'s a stage, and all the men and women merely players. They have their exits and their entrances; And one man in his time plays many parts.',
//text: 'HEADING\n\nThis is a really cool paragraph. \n And this is a footer.',
fontSize:16,
fontFamily:'Calibri',
fontStyle:'normal',
fill:'#555',
//width: 20,
width:380,
//width: 200,
padding:20,
align:'center',
shadowColor:'red',
shadowBlur:1,
shadowOffset:[10,10],
shadowOpacity:0.5,
draggable:true
});
layer.add(text);
stage.add(layer);
//console.log(layer.toDataURL());
testDataUrl(layer.toDataURL(),'multiline text with shadows','multi line text with shadows data url is incorrect');
},
'text everything enabled':function(containerId){
varstage=newKinetic.Stage({
container:containerId,
width:578,
height:200
});
varlayer=newKinetic.Layer();
vartext=newKinetic.Text({
x:10,
y:10,
text:'Some awesome text',
fontSize:50,
fontFamily:'Calibri',
fontStyle:'bold',
fill:'blue',
stroke:'red',
strokeWidth:2,
shadowColor:'black',
shadowBlur:10,
shadowOffset:10,
fillEnabled:true,
strokeEnabled:true,
shadowEnabled:true
});
layer.add(text);
stage.add(layer);
//console.log(layer.toDataURL());
testDataUrl(layer.toDataURL(),'text everything enabled','should be text with blue fill and red stroke');
},
'text fill disabled':function(containerId){
varstage=newKinetic.Stage({
container:containerId,
width:578,
height:200
});
varlayer=newKinetic.Layer();
vartext=newKinetic.Text({
x:10,
y:10,
text:'Some awesome text',
fontSize:50,
fontFamily:'Calibri',
fontStyle:'bold',
fill:'blue',
stroke:'red',
strokeWidth:2,
shadowColor:'black',
shadowBlur:10,
shadowOffset:10,
fillEnabled:false,
strokeEnabled:true,
shadowEnabled:true
});
layer.add(text);
stage.add(layer);
//console.log(layer.toDataURL());
testDataUrl(layer.toDataURL(),'text fill disabled','should be text with no fill and red stroke');
},
'text stroke disabled':function(containerId){
varstage=newKinetic.Stage({
container:containerId,
width:578,
height:200
});
varlayer=newKinetic.Layer();
vartext=newKinetic.Text({
x:10,
y:10,
text:'Some awesome text',
fontSize:50,
fontFamily:'Calibri',
fontStyle:'bold',
fill:'blue',
stroke:'red',
strokeWidth:2,
shadowColor:'black',
shadowBlur:10,
shadowOffset:10,
fillEnabled:true,
strokeEnabled:false,
shadowEnabled:true
});
layer.add(text);
stage.add(layer);
//console.log(layer.toDataURL());
testDataUrl(layer.toDataURL(),'text stroke disabled','should be text with blue fill and no stroke');
},
'wrapped text':function(containerId){
varstage=newKinetic.Stage({
container:containerId,
width:578,
height:200
});
vartxt='Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
arr=[txt,txt];
varlayer=newKinetic.Layer();
vartext=newKinetic.Text({
x:0,
y:0,
width:578,
text:arr.join(''),
fontSize:15,
fontFamily:'Calibri',
fill:'#000',
wrap:'word'
});
layer.add(text);
stage.add(layer);
testDataUrl(layer.toDataURL(),'wrapping to words','text should be wrapped to words');
text.setWrap('none');
layer.draw();
testDataUrl(layer.toDataURL(),'no wrapping','text should not be wrapped');
text.setWrap('char');
layer.draw();
testDataUrl(layer.toDataURL(),'wrapping to chars','text should be wrapped to chars');