mocha.ui('tdd'); mocha.setup("bdd"); var assert = chai.assert, konvaContainer = document.getElementById('konva-container'), origAssertEqual = assert.equal, origAssert = assert, origNotEqual = assert.notEqual, origDeepEqual = assert.deepEqual, assertionCount = 0, assertions = document.createElement('em'); window.requestAnimFrame = (function(callback){ return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(callback){ window.setTimeout(callback, 1000 / 30); }; })(); function init() { // assert extenders so that we can count assertions assert = function() { origAssert.apply(this, arguments); assertions.innerHTML = ++assertionCount; }; assert.equal = function() { origAssertEqual.apply(this, arguments); assertions.innerHTML = ++assertionCount; }; assert.notEqual = function() { origNotEqual.apply(this, arguments); assertions.innerHTML = ++assertionCount; }; assert.deepEqual = function() { origDeepEqual.apply(this, arguments); assertions.innerHTML = ++assertionCount; }; window.onload = function() { var mochaStats = document.getElementById('mocha-stats'); if (mochaStats) { var li = document.createElement('li'); var anchor = document.createElement('a'); anchor.href = '#'; anchor.innerHTML = 'assertions:'; assertions.innerHTML = 0; li.appendChild(anchor); li.appendChild(assertions); mochaStats.appendChild(li); } } //addStats(); } Konva.enableTrace = true; Konva.showWarnings = true; function addStats() { stats = new Stats(); stats.setMode(0); stats.domElement.style.position = 'fixed'; stats.domElement.style.left = '0px'; stats.domElement.style.top = '0px'; document.getElementsByTagName('body')[0].appendChild( stats.domElement ); function animate(lastTime){ stats.begin(); requestAnimFrame(function(){ stats.end(); animate(lastTime); }); } animate(); } function addStage() { var container = document.createElement('div'), stage = new Konva.Stage({ container: container, width: 578, height: 200 }); konvaContainer.appendChild(container); return stage; } function createCanvas() { var canvas = document.createElement('canvas'); canvas.width = 578; canvas.height = 200; return canvas; } function get (element, content) { element = document.createElement(element); if (element && content) { element.innerHTML = content; } return element; } function compareCanvases(canvas1, canvas2, tol) { // don't test in PhantomJS as it use old chrome engine // it it has opacity + shadow bug var equal = imagediff.equal(canvas1, canvas2, tol); if (!equal) { var div = get('div'), b = get('div', '