
commit 9887e45976fc5211a4393e588d278a5e10baf06c Author: Dr. Kibitz <info@drkibitz.com> Date: Tue Sep 3 10:54:13 2013 -0700 FIX: Ellipse getBounds method is not static commit b3b359ad1c0fae412209705b01081dd231383656 Author: Dr. Kibitz <info@drkibitz.com> Date: Tue Sep 3 10:53:41 2013 -0700 More unit testing commit dafbd1dbb03364b6d54db0cad26c4f02a8b9efe1 Author: Dr. Kibitz <info@drkibitz.com> Date: Sun Sep 1 16:04:29 2013 -0700 Remove unused karma plugin commit 43209bfb59263278d2dc3561d06926ad515c4147 Author: Dr. Kibitz <info@drkibitz.com> Date: Sun Sep 1 15:28:21 2013 -0700 Add Travis CI status image to README commit 2e38ba370bc05c239736155dcb06e34b47abf938 Author: Dr. Kibitz <info@drkibitz.com> Date: Sun Sep 1 15:16:54 2013 -0700 typo commit b8898030da4d3e7b446ebb4ddeb30e8fc0adcf39 Author: Dr. Kibitz <info@drkibitz.com> Date: Sun Sep 1 15:13:33 2013 -0700 Lint test files, jsthint:test is now part of the test task commit ea414dd1d734b39523174bd86d0cc58e920a89d2 Author: Dr. Kibitz <info@drkibitz.com> Date: Sun Sep 1 15:11:50 2013 -0700 Make all boilerplate tests, and an actual start to writing some real tests commit 9e09c87997ae924989da4e1685f3a94636ab64de Author: Dr. Kibitz <info@drkibitz.com> Date: Sun Sep 1 14:37:51 2013 -0700 Add back serving png files, convert to spaces commit b45b1650c2e812a9cdb1165d96fba7b14bbdfab7 Author: Dr. Kibitz <info@drkibitz.com> Date: Sun Sep 1 00:55:57 2013 -0700 Comment out functional tests for now commit 3a350bf9e4d9fea470ad8e734dfc3542db74ccc8 Author: Dr. Kibitz <info@drkibitz.com> Date: Sat Aug 31 23:53:35 2013 -0700 Removed quint, added karma, added resemble.js, refactored unit tests for mocha, added first example visual test run with: grunt travis You should see a brewer open and eventually see the spinning bunny. Then in the terminal, you should see the tests running where it matches frames 30, 60, and 90. Conflicts: package.json commit ac4c6de388e7a37786c9c4a6b2c95e22ec26b05d Author: Dr. Kibitz <info@drkibitz.com> Date: Sat Aug 31 23:33:23 2013 -0700 Remove trailing whitespace
133 lines
4.1 KiB
JavaScript
133 lines
4.1 KiB
JavaScript
describe('Example 1 - Basics', function () {
|
|
'use strict';
|
|
|
|
var baseUri = '/base/test/functional/example-1-basics';
|
|
var expect = chai.expect;
|
|
var currentFrame = 0;
|
|
var frameEvents = {};
|
|
var stage;
|
|
var renderer;
|
|
var bunny;
|
|
|
|
function onFrame(frame, callback) {
|
|
frameEvents[frame] = callback;
|
|
}
|
|
|
|
function animate() {
|
|
currentFrame += 1;
|
|
|
|
requestAnimFrame( animate );
|
|
|
|
// just for fun, lets rotate mr rabbit a little
|
|
bunny.rotation += 0.1;
|
|
|
|
// render the stage
|
|
renderer.render(stage);
|
|
|
|
if (frameEvents[currentFrame])
|
|
frameEvents[currentFrame](currentFrame);
|
|
}
|
|
|
|
function initScene() {
|
|
// create an new instance of a pixi stage
|
|
stage = new PIXI.Stage(0x66FF99);
|
|
|
|
// create a renderer instance
|
|
renderer = PIXI.autoDetectRenderer(400, 300);
|
|
console.log('Is PIXI.WebGLRenderer: ' + (renderer instanceof PIXI.WebGLRenderer));
|
|
|
|
// add the renderer view element to the DOM
|
|
document.body.appendChild(renderer.view);
|
|
|
|
requestAnimFrame( animate );
|
|
|
|
// create a texture from an image path
|
|
var texture = PIXI.Texture.fromImage(baseUri + "/bunny.png");
|
|
// create a new Sprite using the texture
|
|
bunny = new PIXI.Sprite(texture);
|
|
|
|
// center the sprites anchor point
|
|
bunny.anchor.x = 0.5;
|
|
bunny.anchor.y = 0.5;
|
|
|
|
// move the sprite t the center of the screen
|
|
bunny.position.x = 200;
|
|
bunny.position.y = 150;
|
|
|
|
stage.addChild(bunny);
|
|
}
|
|
|
|
it('assets loaded', function (done) {
|
|
var loader = new PIXI.AssetLoader([
|
|
baseUri + '/bunny.png',
|
|
baseUri + '/frame-30.png',
|
|
baseUri + '/frame-60.png',
|
|
baseUri + '/frame-90.png'
|
|
]);
|
|
// loader.on('onProgress', function (event) {
|
|
// console.log(event.content);
|
|
// });
|
|
loader.on('onComplete', function (event) {
|
|
done();
|
|
initScene();
|
|
});
|
|
loader.load();
|
|
});
|
|
|
|
it('frame 30 should match', function (done) {
|
|
this.timeout(700);
|
|
onFrame(30, function () {
|
|
var str = renderer.view.toDataURL('image/png');
|
|
//console.log('<img src="' + str + '" />');
|
|
resemble(str)
|
|
.compareTo(baseUri + '/frame-30.png')
|
|
.onComplete(function (data) {
|
|
expect(data).to.be.an('object');
|
|
expect(data.isSameDimensions).to.equal(true);
|
|
expect(data.misMatchPercentage).to.be.below(0.2);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
it('frame 60 should match', function (done) {
|
|
this.timeout(1200);
|
|
onFrame(60, function () {
|
|
var str = renderer.view.toDataURL('image/png');
|
|
//console.log('<img src="' + str + '" />');
|
|
resemble(str)
|
|
.compareTo(baseUri + '/frame-60.png')
|
|
.onComplete(function (data) {
|
|
expect(data).to.be.an('object');
|
|
expect(data.isSameDimensions).to.equal(true);
|
|
expect(data.misMatchPercentage).to.be.below(0.2);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
it('frame 90 should match', function (done) {
|
|
this.timeout(1700);
|
|
onFrame(90, function () {
|
|
var str = renderer.view.toDataURL('image/png');
|
|
//console.log('<img src="' + str + '" />');
|
|
resemble(str)
|
|
.compareTo(baseUri + '/frame-90.png')
|
|
.onComplete(function (data) {
|
|
expect(data).to.be.an('object');
|
|
expect(data.isSameDimensions).to.equal(true);
|
|
expect(data.misMatchPercentage).to.be.below(0.2);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
// it('capture something', function (done) {
|
|
// this.timeout(2000000);
|
|
// onFrame(30, function () {
|
|
// var img = new Image();
|
|
// img.src = renderer.view.toDataURL('image/png');
|
|
// document.body.appendChild(img);
|
|
// });
|
|
// });
|
|
});
|