From: Ben Beltran Date: Fri, 29 Jan 2016 03:50:30 +0000 (-0600) Subject: Moves tests, recycles integration X-Git-Tag: 1.0.0^2~11 X-Git-Url: https://git.r.bdr.sh/rbdr/serpentity/commitdiff_plain/3db7d19815d24241bbe60c9afbb8b3f60d000550 Moves tests, recycles integration --- diff --git a/browser_test/index.html b/browser_test/index.html deleted file mode 100644 index 1183efc..0000000 --- a/browser_test/index.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - Serpentity Browser Test - - - - - -

404 Droids Not Found

- Look in your console... - - diff --git a/test/browser.html b/test/browser.html new file mode 100644 index 0000000..7191160 --- /dev/null +++ b/test/browser.html @@ -0,0 +1,12 @@ + + + + Serpentity Browser Test + + + + +

404 Droids Not Found

+ Look in your console... + + diff --git a/test/integration.js b/test/integration.js new file mode 100644 index 0000000..0ca7e26 --- /dev/null +++ b/test/integration.js @@ -0,0 +1,163 @@ +'use strict'; + +let test = function test (Serpentity) { + + /* eslint no-console: 0 */ + + ///////////////// + // Load the stuff + ///////////////// + console.log('\n## Loading'); + console.log('Serpentity: ' + (typeof Serpentity !== 'undefined' ? 'LOAD OK' : 'FAIL')); + console.log('Serpentity.Entity: ' + (typeof Serpentity !== 'undefined' && Serpentity.Entity ? 'LOAD OK' : 'FAIL')); + console.log('Serpentity.Component: ' + (typeof Serpentity !== 'undefined' && Serpentity.Component ? 'LOAD OK' : 'FAIL')); + console.log('Serpentity.System: ' + (typeof Serpentity !== 'undefined' && Serpentity.System ? 'LOAD OK' : 'FAIL')); + console.log('Serpentity.Node: ' + (typeof Serpentity !== 'undefined' && Serpentity.Node ? 'LOAD OK' : 'FAIL')); + console.log('Serpentity.NodeCollection: ' + (typeof Serpentity !== 'undefined' && Serpentity.NodeCollection ? 'LOAD OK' : 'FAIL')); + + ////////////////////// + // Create test classes + ////////////////////// + console.log('\n## Creating Test Classes'); + let TestSystem = class TestSystem extends Serpentity.System { + added (engine) { + this.testNodes = engine.getNodes(TestNode); + console.log('Engine is serpentity: ' + (engine instanceof Serpentity ? 'OK' : 'FAIL')); + console.log('System added callback: EXEC OK'); + } + + removed (engine) { + this.testNodes = null; + console.log('Engine is serpentity: ' + (engine instanceof Serpentity ? 'OK' : 'FAIL')); + console.log('System removed callback: EXEC OK'); + } + + update (dt) { + this.testNodes.forEach(function (node) { + console.log('Running Node: ' + (node.test.testMessage === 'test' ? 'SYSTEM OK' : 'FAIL')); + }); + console.log('dt is number: ' + (typeof dt === 'number' ? 'OK' : 'FAIL')); + console.log('System update callback: EXEC OK'); + } + }; + let testSystem = new TestSystem(); + + let LowProTestSystem = class LowProTestSystem extends Serpentity.System { + added (engine) { + this.testNodes = engine.getNodes(TestNode); + console.log('Engine is serpentity: ' + (engine instanceof Serpentity ? 'OK' : 'FAIL')); + console.log('System added callback: EXEC OK'); + } + + removed (engine) { + this.testNodes = null; + console.log('Engine is serpentity: ' + (engine instanceof Serpentity ? 'OK' : 'FAIL')); + console.log('System removed callback: EXEC OK'); + } + + update (dt) { + this.testNodes.forEach(function (node) { + console.log('Running Low Priority Node: ' + (node.test.testMessage === 'test' ? 'SYSTEM OK' : 'FAIL')); + }); + console.log('dt is number: ' + (typeof dt === 'number' ? 'OK' : 'FAIL')); + console.log('System update callback: EXEC OK'); + } + }; + let lowProTestSystem = new LowProTestSystem(); + console.log('LowProTestSystem: CREATE OK'); + + let MidProTestSystem = class MidProTestSystem extends Serpentity.System { + added (engine) { + this.testNodes = engine.getNodes(TestNode); + console.log('Engine is serpentity: ' + (engine instanceof Serpentity ? 'OK' : 'FAIL')); + console.log('System added callback: EXEC OK'); + } + + removed (engine) { + this.testNodes = null; + console.log('Engine is serpentity: ' + (engine instanceof Serpentity ? 'OK' : 'FAIL')); + console.log('System removed callback: EXEC OK'); + } + + update (dt) { + this.testNodes.forEach(function (node) { + console.log('Running Mid Priority Node: ' + (node.test.testMessage === 'test' ? 'SYSTEM OK' : 'FAIL')); + }); + console.log('dt is number: ' + (typeof dt === 'number' ? 'OK' : 'FAIL')); + console.log('System update callback: EXEC OK'); + } + }; + var midProTestSystem = new MidProTestSystem(); + console.log('MidProTestSystem: CREATE OK'); + + + let TestComponent = class TestComponent extends Serpentity.Component { + constructor (config) { + super(config); + + this.testMessage = this.testMessage || 'test'; + } + }; + console.log('TestComponent: CREATE OK'); + + let TestNode = class TestNode extends Serpentity.Node {}; + TestNode.types = { + test : TestComponent + }; + console.log('TestNode: CREATE OK'); + + console.log('\n## Adding system to the engine'); + + let engine = new Serpentity(); + console.log('engine: CREATE OK'); + + engine.addSystem(testSystem, 0); + + console.log('\n## Running update without any entities'); + engine.update(10); + + console.log('\n## Adding system to the engine and updating'); + let entity = new Serpentity.Entity(); + entity.addComponent(new TestComponent()); + engine.addEntity(entity); + engine.update(10); + + console.log('\n## Adding Low Priority System'); + engine.addSystem(lowProTestSystem, 10); + engine.update(10); + + console.log('\n## Adding Mid Priority System'); + engine.addSystem(midProTestSystem, 5); + engine.update(10); + + console.log('\n## Removing the system and readding'); + engine.removeSystem(testSystem); + engine.update(10); + engine.addSystem(testSystem, 0); + engine.update(10); + + console.log('\n## Adding a second entity'); + entity = new Serpentity.Entity(); + entity.addComponent(new TestComponent()); + engine.addEntity(entity); + engine.update(10); + + console.log('\n## Removing entity'); + engine.removeEntity(entity); + engine.update(10); + + console.log('\n## Removing system'); + engine.removeSystem(testSystem); + engine.update(10); + +}; + +if (typeof require === 'function') { + let Serpentity = require('serpentity'); + test(Serpentity); +} else { + window.addEventListener('load', function () { + test(window.Serpentity); + }); +} +