+++ /dev/null
-<!DOCTYPE html>
-<html>
- <head>
- <title>Serpentity Browser Test</title>
- <script src="/bower_components/neon/neon.js"></script>
- <script src="/bower_components/serpentity/dist/serpentity.js"></script>
- <script type="application/javascript">
- /////////////////
- // 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");
- Class("TestSystem").inherits(Serpentity.System)({
- prototype : {
- added : function added(engine) {
- this.testNodes = engine.getNodes(TestNode);
- console.log("System added callback: " + "EXEC OK");
- },
-
- removed : function removed(engine) {
- this.testNodes = null;
- console.log("System removed callback: " + "EXEC OK");
- },
-
- update : function update(dt) {
- this.testNodes.forEach(function (node) {
- console.log("Running Node: " + (node.test.testMessage === "test" ? "SYSTEM OK" : "FAIL"));
- });
- console.log("System update callback: " + "EXEC OK");
- }
- }
- });
- var testSystem = new TestSystem();
-
- Class("LowProTestSystem").inherits(Serpentity.System)({
- prototype : {
- added : function added(engine) {
- this.testNodes = engine.getNodes(TestNode);
- console.log("System added callback: " + "EXEC OK");
- },
-
- removed : function removed(engine) {
- this.testNodes = null;
- console.log("System removed callback: " + "EXEC OK");
- },
-
- update : function update(dt) {
- this.testNodes.forEach(function (node) {
- console.log("Running Low Priority Node: " + (node.test.testMessage === "test" ? "SYSTEM OK" : "FAIL"));
- });
- console.log("System update callback: " + "EXEC OK");
- }
- }
- });
- var lowProTestSystem = new LowProTestSystem();
- console.log("LowProTestSystem: " + "CREATE OK")
-
- Class("MidProTestSystem").inherits(Serpentity.System)({
- prototype : {
- added : function added(engine) {
- this.testNodes = engine.getNodes(TestNode);
- console.log("System added callback: " + "EXEC OK");
- },
-
- removed : function removed(engine) {
- this.testNodes = null;
- console.log("System removed callback: " + "EXEC OK");
- },
-
- update : function update(dt) {
- this.testNodes.forEach(function (node) {
- console.log("Running Mid Priority Node: " + (node.test.testMessage === "test" ? "SYSTEM OK" : "FAIL"));
- });
- console.log("System update callback: " + "EXEC OK");
- }
- }
- });
- var midProTestSystem = new MidProTestSystem();
- console.log("MidProTestSystem: " + "CREATE OK")
-
-
- Class("TestComponent").inherits(Serpentity.Component)({
- prototype : {
- testMessage : "test"
- }
- });
- console.log("TestComponent: " + "CREATE OK")
-
- Class("TestNode").inherits(Serpentity.Node)({
- types : {
- test : TestComponent
- }
- });
- console.log("TestNode: " + "CREATE OK")
-
-
- console.log("\n## Adding system to the engine")
-
- var 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")
- var 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")
- var 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);
- </script>
- </head>
- <body>
- <h1>404 Droids Not Found</h1>
- Look in your console...
- </body>
-</html>
--- /dev/null
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Serpentity Browser Test</title>
+ <script src="/node_modules/serpentity/dist/serpentity.js"></script>
+ <script src="/test/integration.js"></script>
+ </head>
+ <body>
+ <h1>404 Droids Not Found</h1>
+ Look in your console...
+ </body>
+</html>
--- /dev/null
+'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);
+ });
+}
+