Test.Modules.SPLINE = { 'add splines': function(containerId) { var stage = new Kinetic.Stage({ container: containerId, width: 578, height: 200 }); var layer = new Kinetic.Layer(); var line1 = new Kinetic.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 }); var line2 = new Kinetic.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 }); var line3 = new Kinetic.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(line1.getClassName() === 'Spline', 'getClassName should be Spline'); }, 'create from points represented as a flat array': function(containerId) { var stage = new Kinetic.Stage({ container: containerId, width: 578, height: 200 }); var layer = new Kinetic.Layer(); var line = new Kinetic.Spline({ points: [ 73, 160, 340, 23, 500, 109, 300, 109 ], stroke: 'blue', strokeWidth: 10, lineCap: 'round', lineJoin: 'round', draggable: true, tension: 1 }); layer.add(line); stage.add(layer); test(line.getPoints().length === 4, 'line should have 4 points'); }, 'create from points represented as an array of objects': function(containerId) { var stage = new Kinetic.Stage({ container: containerId, width: 578, height: 200 }); var layer = new Kinetic.Layer(); var line = new Kinetic.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 }); layer.add(line); stage.add(layer); test(line.getPoints().length === 4, 'line should have 4 points'); }, 'create from points represented as an array of arrays': function(containerId) { var stage = new Kinetic.Stage({ container: containerId, width: 578, height: 200 }); var layer = new Kinetic.Layer(); var line = new Kinetic.Spline({ points: [ [73, 160], [340, 23], [500, 109], [300, 109] ], stroke: 'blue', strokeWidth: 10, lineCap: 'round', lineJoin: 'round', draggable: true, tension: 1 }); layer.add(line); stage.add(layer); test(line.getPoints().length === 4, 'line should have 4 points'); } };