2020-04-21 11:47:02 +02:00
|
|
|
const {assert} = require('chai');
|
2020-04-23 15:26:54 +02:00
|
|
|
const Event = require('../src/r3/r3-event.js');
|
2020-04-21 11:47:02 +02:00
|
|
|
|
2021-10-01 12:40:04 +02:00
|
|
|
//GENERATED_COMPONENT_IMPORTS_START
|
|
|
|
const ComponentCode = require('../src/r3/r3-component/./r3-component-code.js');
|
2021-10-24 12:55:42 +02:00
|
|
|
const ComponentCodeJS = require('../src/r3/r3-component/./r3-component-code-j-s.js');
|
2021-10-01 12:40:04 +02:00
|
|
|
const ComponentDOM = require('../src/r3/r3-component/./r3-component-d-o-m.js');
|
2021-10-24 12:55:42 +02:00
|
|
|
const ComponentDOMCanvas = require('../src/r3/r3-component/./r3-component-d-o-m-canvas.js');
|
|
|
|
const ComponentDOMImage = require('../src/r3/r3-component/./r3-component-d-o-m-image.js');
|
2021-10-01 12:40:04 +02:00
|
|
|
const ComponentGraphics = require('../src/r3/r3-component/./r3-component-graphics.js');
|
2021-10-24 12:55:42 +02:00
|
|
|
const ComponentGraphicsGeometry = require('../src/r3/r3-component/./r3-component-graphics-geometry.js');
|
|
|
|
const ComponentGraphicsGeometryBuffer = require('../src/r3/r3-component/./r3-component-graphics-geometry-buffer.js');
|
|
|
|
const ComponentGraphicsGeometryBufferPlane = require('../src/r3/r3-component/./r3-component-graphics-geometry-buffer-plane.js');
|
|
|
|
const ComponentGraphicsImage = require('../src/r3/r3-component/./r3-component-graphics-image.js');
|
|
|
|
const ComponentGraphicsMaterial = require('../src/r3/r3-component/./r3-component-graphics-material.js');
|
|
|
|
const ComponentGraphicsMesh = require('../src/r3/r3-component/./r3-component-graphics-mesh.js');
|
|
|
|
const ComponentGraphicsTexture = require('../src/r3/r3-component/./r3-component-graphics-texture.js');
|
2021-10-02 06:50:42 +02:00
|
|
|
const ComponentInput = require('../src/r3/r3-component/./r3-component-input.js');
|
2021-10-24 12:55:42 +02:00
|
|
|
const ComponentInputTouch = require('../src/r3/r3-component/./r3-component-input-touch.js');
|
2021-10-01 12:40:04 +02:00
|
|
|
//GENERATED_COMPONENT_IMPORTS_END
|
|
|
|
|
|
|
|
//GENERATED_ENTITY_IMPORTS_START
|
|
|
|
const EntitySlider = require('../src/r3/r3-entity/./r3-entity-slider.js');
|
|
|
|
//GENERATED_ENTITY_IMPORTS_END
|
|
|
|
|
|
|
|
//GENERATED_RUNTIME_IMPORTS_START
|
2021-10-24 12:55:42 +02:00
|
|
|
const RuntimeAudio = require('../src/r3/r3-runtime/./r3-runtime-audio.js');
|
|
|
|
const RuntimeAudioThree = require('../src/r3/r3-runtime/./r3-runtime-audio-three.js');
|
|
|
|
const RuntimeCode = require('../src/r3/r3-runtime/./r3-runtime-code.js');
|
|
|
|
const RuntimeCodeJS = require('../src/r3/r3-runtime/./r3-runtime-code-j-s.js');
|
2021-10-01 12:40:04 +02:00
|
|
|
const RuntimeCoder = require('../src/r3/r3-runtime/./r3-runtime-coder.js');
|
2021-10-24 12:55:42 +02:00
|
|
|
const RuntimeCoderCodeMirror = require('../src/r3/r3-runtime/./r3-runtime-coder-code-mirror.js');
|
2021-10-01 12:40:04 +02:00
|
|
|
const RuntimeDOM = require('../src/r3/r3-runtime/./r3-runtime-d-o-m.js');
|
2021-10-24 12:55:42 +02:00
|
|
|
const RuntimeDOMJS = require('../src/r3/r3-runtime/./r3-runtime-d-o-m-j-s.js');
|
|
|
|
const RuntimeDOMWeb = require('../src/r3/r3-runtime/./r3-runtime-d-o-m-web.js');
|
2021-10-01 12:40:04 +02:00
|
|
|
const RuntimeGUI = require('../src/r3/r3-runtime/./r3-runtime-g-u-i.js');
|
2021-10-24 12:55:42 +02:00
|
|
|
const RuntimeGUIControlKit = require('../src/r3/r3-runtime/./r3-runtime-g-u-i-control-kit.js');
|
2021-10-01 12:40:04 +02:00
|
|
|
const RuntimeGraphics = require('../src/r3/r3-runtime/./r3-runtime-graphics.js');
|
2021-10-24 12:55:42 +02:00
|
|
|
const RuntimeGraphicsThree = require('../src/r3/r3-runtime/./r3-runtime-graphics-three.js');
|
2021-10-01 12:40:04 +02:00
|
|
|
const RuntimePhysics = require('../src/r3/r3-runtime/./r3-runtime-physics.js');
|
2021-10-24 12:55:42 +02:00
|
|
|
const RuntimePhysicsBullet = require('../src/r3/r3-runtime/./r3-runtime-physics-bullet.js');
|
2021-10-01 12:40:04 +02:00
|
|
|
const RuntimeSocket = require('../src/r3/r3-runtime/./r3-runtime-socket.js');
|
|
|
|
const RuntimeStatistics = require('../src/r3/r3-runtime/./r3-runtime-statistics.js');
|
2021-10-24 12:55:42 +02:00
|
|
|
const RuntimeStatisticsStats = require('../src/r3/r3-runtime/./r3-runtime-statistics-stats.js');
|
2021-10-01 12:40:04 +02:00
|
|
|
//GENERATED_RUNTIME_IMPORTS_END
|
|
|
|
|
|
|
|
//GENERATED_R3_OBJECT_IMPORTS_START
|
|
|
|
const Project = require('../src/r3/r3-object/./r3-project.js');
|
|
|
|
//GENERATED_R3_OBJECT_IMPORTS_END
|
|
|
|
|
2021-10-01 06:08:34 +02:00
|
|
|
describe('R3 Tests', () => {
|
2020-04-21 11:47:02 +02:00
|
|
|
|
|
|
|
it (
|
2021-10-01 08:36:52 +02:00
|
|
|
'R3 loads',
|
2020-04-21 11:47:02 +02:00
|
|
|
() => {
|
|
|
|
|
2021-10-01 06:08:34 +02:00
|
|
|
const R3 = require('../src/r3/');
|
2020-04-21 11:47:02 +02:00
|
|
|
|
2021-10-01 06:08:34 +02:00
|
|
|
assert.typeOf(R3.Version, 'string');
|
|
|
|
assert.typeOf(R3.CompileDate, 'string');
|
2020-04-21 11:47:02 +02:00
|
|
|
|
2021-10-01 06:08:34 +02:00
|
|
|
console.log('R3 Version : ' + R3.Version);
|
|
|
|
console.log('R3 Compile Date : ' + R3.CompileDate);
|
|
|
|
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
it (
|
2021-10-01 08:36:52 +02:00
|
|
|
'Creation of all components succeed',
|
2021-10-01 06:08:34 +02:00
|
|
|
() => {
|
|
|
|
|
2021-10-01 12:40:04 +02:00
|
|
|
//GENERATED_COMPONENT_CREATE_START
|
|
|
|
const componentCode = new ComponentCode();
|
2021-10-02 14:55:08 +02:00
|
|
|
assert.isTrue(componentCode.initialized);
|
2021-10-24 12:55:42 +02:00
|
|
|
const componentCodeJS = new ComponentCodeJS();
|
|
|
|
assert.isTrue(componentCodeJS.initialized);
|
2021-10-01 12:40:04 +02:00
|
|
|
const componentDOM = new ComponentDOM();
|
2021-10-02 14:55:08 +02:00
|
|
|
assert.isTrue(componentDOM.initialized);
|
2021-10-24 12:55:42 +02:00
|
|
|
const componentDOMCanvas = new ComponentDOMCanvas();
|
|
|
|
assert.isTrue(componentDOMCanvas.initialized);
|
|
|
|
const componentDOMImage = new ComponentDOMImage();
|
|
|
|
assert.isTrue(componentDOMImage.initialized);
|
2021-10-01 12:40:04 +02:00
|
|
|
const componentGraphics = new ComponentGraphics();
|
2021-10-02 14:55:08 +02:00
|
|
|
assert.isTrue(componentGraphics.initialized);
|
2021-10-24 12:55:42 +02:00
|
|
|
const componentGraphicsGeometry = new ComponentGraphicsGeometry();
|
|
|
|
assert.isTrue(componentGraphicsGeometry.initialized);
|
|
|
|
const componentGraphicsGeometryBuffer = new ComponentGraphicsGeometryBuffer();
|
|
|
|
assert.isTrue(componentGraphicsGeometryBuffer.initialized);
|
|
|
|
const componentGraphicsGeometryBufferPlane = new ComponentGraphicsGeometryBufferPlane();
|
|
|
|
assert.isTrue(componentGraphicsGeometryBufferPlane.initialized);
|
|
|
|
const componentGraphicsImage = new ComponentGraphicsImage();
|
|
|
|
assert.isTrue(componentGraphicsImage.initialized);
|
|
|
|
const componentGraphicsMaterial = new ComponentGraphicsMaterial();
|
|
|
|
assert.isTrue(componentGraphicsMaterial.initialized);
|
|
|
|
const componentGraphicsMesh = new ComponentGraphicsMesh();
|
|
|
|
assert.isTrue(componentGraphicsMesh.initialized);
|
|
|
|
const componentGraphicsTexture = new ComponentGraphicsTexture();
|
|
|
|
assert.isTrue(componentGraphicsTexture.initialized);
|
2021-10-02 06:50:42 +02:00
|
|
|
const componentInput = new ComponentInput();
|
2021-10-02 14:55:08 +02:00
|
|
|
assert.isTrue(componentInput.initialized);
|
2021-10-24 12:55:42 +02:00
|
|
|
const componentInputTouch = new ComponentInputTouch();
|
|
|
|
assert.isTrue(componentInputTouch.initialized);
|
2021-10-01 12:40:04 +02:00
|
|
|
//GENERATED_COMPONENT_CREATE_END
|
|
|
|
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
it (
|
|
|
|
'Creation of all entities succeed',
|
|
|
|
() => {
|
|
|
|
|
|
|
|
//GENERATED_ENTITY_CREATE_START
|
|
|
|
const entitySlider = new EntitySlider();
|
2021-10-02 14:55:08 +02:00
|
|
|
assert.isTrue(entitySlider.initialized);
|
2021-10-01 12:40:04 +02:00
|
|
|
//GENERATED_ENTITY_CREATE_END
|
|
|
|
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
it (
|
|
|
|
'Creation of all runtimes succeed',
|
|
|
|
() => {
|
|
|
|
|
|
|
|
//GENERATED_RUNTIME_CREATE_START
|
2021-10-24 12:55:42 +02:00
|
|
|
const runtimeAudio = new RuntimeAudio();
|
|
|
|
const runtimeAudioThree = new RuntimeAudioThree();
|
|
|
|
const runtimeCode = new RuntimeCode();
|
|
|
|
const runtimeCodeJS = new RuntimeCodeJS();
|
2021-10-01 12:40:04 +02:00
|
|
|
const runtimeCoder = new RuntimeCoder();
|
2021-10-24 12:55:42 +02:00
|
|
|
const runtimeCoderCodeMirror = new RuntimeCoderCodeMirror();
|
2021-10-01 12:40:04 +02:00
|
|
|
const runtimeDOM = new RuntimeDOM();
|
2021-10-24 12:55:42 +02:00
|
|
|
const runtimeDOMJS = new RuntimeDOMJS();
|
|
|
|
const runtimeDOMWeb = new RuntimeDOMWeb();
|
2021-10-01 12:40:04 +02:00
|
|
|
const runtimeGUI = new RuntimeGUI();
|
2021-10-24 12:55:42 +02:00
|
|
|
const runtimeGUIControlKit = new RuntimeGUIControlKit();
|
2021-10-01 12:40:04 +02:00
|
|
|
const runtimeGraphics = new RuntimeGraphics();
|
2021-10-24 12:55:42 +02:00
|
|
|
const runtimeGraphicsThree = new RuntimeGraphicsThree();
|
2021-10-01 12:40:04 +02:00
|
|
|
const runtimePhysics = new RuntimePhysics();
|
2021-10-24 12:55:42 +02:00
|
|
|
const runtimePhysicsBullet = new RuntimePhysicsBullet();
|
2021-10-01 12:40:04 +02:00
|
|
|
const runtimeSocket = new RuntimeSocket();
|
|
|
|
const runtimeStatistics = new RuntimeStatistics();
|
2021-10-24 12:55:42 +02:00
|
|
|
const runtimeStatisticsStats = new RuntimeStatisticsStats();
|
2021-10-01 12:40:04 +02:00
|
|
|
//GENERATED_RUNTIME_CREATE_END
|
|
|
|
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
it (
|
|
|
|
'Creation of all objects succeed',
|
|
|
|
() => {
|
2021-10-01 06:08:34 +02:00
|
|
|
|
2021-10-01 12:40:04 +02:00
|
|
|
//GENERATED_R3_OBJECT_CREATE_START
|
|
|
|
const project = new Project();
|
|
|
|
//GENERATED_R3_OBJECT_CREATE_END
|
2020-04-21 11:47:02 +02:00
|
|
|
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
2021-10-02 06:50:42 +02:00
|
|
|
it (
|
2021-10-02 10:27:25 +02:00
|
|
|
'Linking system sets parent / child relationships correctly',
|
2021-10-02 06:50:42 +02:00
|
|
|
() => {
|
|
|
|
|
2021-10-02 14:55:08 +02:00
|
|
|
const slider1 = new EntitySlider(
|
|
|
|
{
|
|
|
|
name : 'slider1'
|
|
|
|
}
|
|
|
|
);
|
2021-10-02 10:27:25 +02:00
|
|
|
|
2021-10-02 06:50:42 +02:00
|
|
|
const canvas = new ComponentCanvas();
|
|
|
|
const touch = new ComponentTouch();
|
2021-10-02 10:27:25 +02:00
|
|
|
|
|
|
|
const image1 = new ComponentImage();
|
|
|
|
const image2 = new ComponentImage();
|
|
|
|
const image3 = new ComponentImage();
|
|
|
|
|
|
|
|
// test normal assignment
|
|
|
|
|
|
|
|
slider1.canvas = canvas;
|
|
|
|
|
|
|
|
assert.deepEqual(canvas.parents, [slider1]);
|
|
|
|
assert.deepEqual(slider1.children, [canvas]);
|
|
|
|
assert.deepEqual(slider1.components, [canvas]);
|
|
|
|
|
|
|
|
slider1.images = [image1];
|
|
|
|
|
|
|
|
assert.deepEqual(image1.parents, [slider1]);
|
|
|
|
assert.deepEqual(slider1.children, [canvas, image1]);
|
|
|
|
assert.deepEqual(slider1.images, [image1]);
|
|
|
|
assert.deepEqual(slider1.components, [canvas, image1]);
|
|
|
|
|
|
|
|
// test assignment through constructor
|
|
|
|
|
|
|
|
const slider2 = new EntitySlider(
|
|
|
|
{
|
2021-10-02 14:55:08 +02:00
|
|
|
name : 'slider2',
|
2021-10-02 10:27:25 +02:00
|
|
|
canvas : canvas,
|
|
|
|
images : [image1, image2]
|
|
|
|
}
|
|
|
|
)
|
|
|
|
|
|
|
|
assert.deepEqual(canvas.parents, [slider1, slider2]);
|
|
|
|
assert.deepEqual(image1.parents, [slider1, slider2]);
|
|
|
|
assert.deepEqual(image2.parents, [slider2]);
|
|
|
|
|
|
|
|
assert.deepEqual(slider2.images, [image1, image2]);
|
|
|
|
assert.deepEqual(slider2.children, [canvas, image1, image2]);
|
|
|
|
assert.deepEqual(slider2.components, [canvas, image1, image2]);
|
|
|
|
|
|
|
|
try {
|
|
|
|
const slider3 = new EntitySlider(
|
|
|
|
{
|
2021-10-02 14:55:08 +02:00
|
|
|
name: 'badSlider3',
|
2021-10-02 10:27:25 +02:00
|
|
|
canvas: canvas,
|
|
|
|
images: null
|
|
|
|
}
|
|
|
|
)
|
|
|
|
} catch (err) {
|
|
|
|
assert.isTrue(err instanceof TypeError);
|
|
|
|
}
|
|
|
|
|
2021-10-02 14:55:08 +02:00
|
|
|
const slider3 = new EntitySlider(
|
|
|
|
{
|
|
|
|
name : 'slider3',
|
|
|
|
canvas
|
|
|
|
}
|
|
|
|
);
|
2021-10-02 10:27:25 +02:00
|
|
|
slider3.images = [image1, image2, image3];
|
|
|
|
|
|
|
|
assert.deepEqual(image1.parents, [slider1, slider2, slider3]);
|
|
|
|
assert.deepEqual(slider3.children, [canvas, image1, image2, image3]);
|
|
|
|
assert.deepEqual(slider3.components, [canvas, image1, image2, image3]);
|
|
|
|
|
|
|
|
//test normal re-assignment
|
|
|
|
slider3.images = [image1, image3];
|
|
|
|
assert.deepEqual(image1.parents, [slider1, slider2, slider3]);
|
2021-10-02 10:47:22 +02:00
|
|
|
assert.deepEqual(image2.parents, [slider2]);
|
2021-10-02 10:27:25 +02:00
|
|
|
assert.deepEqual(slider3.children, [canvas, image1, image3]);
|
|
|
|
assert.deepEqual(slider3.components, [canvas, image1, image3]);
|
|
|
|
|
2021-10-02 10:47:22 +02:00
|
|
|
//test via splice
|
|
|
|
slider3.images = [];//splice(0,2);
|
|
|
|
assert.deepEqual(image1.parents, [slider1, slider2]);
|
|
|
|
assert.deepEqual(image2.parents, [slider2]);
|
|
|
|
assert.deepEqual(image3.parents, []);
|
2021-10-02 14:55:08 +02:00
|
|
|
assert.deepEqual(slider3.children, [canvas]);
|
|
|
|
assert.deepEqual(slider3.components, [canvas]);
|
|
|
|
|
|
|
|
slider3.canvas = null;
|
|
|
|
assert.deepEqual(canvas.parents, [slider1, slider2]);
|
|
|
|
assert.deepEqual(slider3.children, []);
|
|
|
|
assert.deepEqual(slider3.components, []);
|
|
|
|
|
|
|
|
try {
|
|
|
|
const slider4 = new EntitySlider(
|
|
|
|
{
|
|
|
|
canvas,
|
|
|
|
images: [{}]
|
|
|
|
}
|
|
|
|
);
|
|
|
|
} catch (err) {
|
|
|
|
assert.isTrue(err instanceof TypeError);
|
|
|
|
}
|
2021-10-02 10:47:22 +02:00
|
|
|
|
2021-10-02 14:55:08 +02:00
|
|
|
assert.deepEqual(canvas.parents, [slider1, slider2]);
|
2021-10-02 10:47:22 +02:00
|
|
|
|
2021-10-02 14:55:08 +02:00
|
|
|
try {
|
|
|
|
const slider5 = new EntitySlider(
|
|
|
|
{
|
2021-10-03 09:03:00 +02:00
|
|
|
name : 'slider5',
|
2021-10-02 14:55:08 +02:00
|
|
|
canvas : image1
|
|
|
|
}
|
|
|
|
);
|
|
|
|
} catch (err) {
|
|
|
|
assert.isTrue(err instanceof TypeError);
|
|
|
|
}
|
2021-10-03 09:03:00 +02:00
|
|
|
|
|
|
|
// test if delete works on an object
|
|
|
|
const slider6 = new EntitySlider(
|
|
|
|
{
|
|
|
|
name : 'slider6',
|
|
|
|
canvas : canvas
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
delete slider6.canvas;
|
|
|
|
|
|
|
|
// assert.deepEqual(canvas.parents, [slider1, slider2]);
|
|
|
|
|
|
|
|
console.log('DELETE AND SPLICE DOES NOT WORK');
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
it(
|
|
|
|
'Linking system detects future ready state correctly',
|
|
|
|
() => {
|
|
|
|
|
2021-10-10 15:31:23 +02:00
|
|
|
const R3 = require('../src/r3/');
|
|
|
|
|
2021-10-03 09:03:00 +02:00
|
|
|
let touch1 = new ComponentTouch(
|
|
|
|
{
|
|
|
|
name : 'touch1'
|
|
|
|
}
|
|
|
|
)
|
|
|
|
|
|
|
|
let canvas = new ComponentCanvas();
|
|
|
|
|
|
|
|
assert.isFalse(touch1.ready[0]);
|
|
|
|
|
|
|
|
touch1.domComponent = canvas;
|
|
|
|
|
|
|
|
assert.isTrue(touch1.ready[0]);
|
|
|
|
|
2021-10-10 15:31:23 +02:00
|
|
|
let slider1 = new EntitySlider();
|
|
|
|
|
|
|
|
assert.isFalse(slider1.ready[0]);
|
|
|
|
|
|
|
|
let images = [];
|
|
|
|
|
|
|
|
slider1.images = images;
|
|
|
|
|
|
|
|
assert.isFalse(slider1.ready[0]);
|
|
|
|
|
|
|
|
let image1 = new ComponentImage();
|
|
|
|
|
|
|
|
slider1.images = [image1];
|
|
|
|
|
|
|
|
assert.isFalse(slider1.ready[0]);
|
|
|
|
|
|
|
|
slider1.canvas = canvas;
|
|
|
|
|
|
|
|
assert.isFalse(slider1.ready[0]);
|
|
|
|
|
|
|
|
slider1.touch = touch1;
|
|
|
|
|
|
|
|
assert.isTrue(slider1.ready[0]);
|
|
|
|
|
|
|
|
touch1.domComponent = null;
|
|
|
|
|
|
|
|
assert.isFalse(touch1.ready[0]);
|
|
|
|
assert.isFalse(slider1.ready[0]);
|
|
|
|
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
it(
|
|
|
|
'Tests the Graph building process',
|
|
|
|
() => {
|
|
|
|
const R3 = require('../src/r3/');
|
|
|
|
let canvas = new ComponentCanvas();
|
|
|
|
let image1 = new ComponentImage();
|
|
|
|
let image2 = new ComponentImage();
|
|
|
|
let image3 = new ComponentImage();
|
|
|
|
let image4 = new ComponentImage();
|
|
|
|
|
|
|
|
let touch = new ComponentTouch(
|
|
|
|
{
|
|
|
|
domComponent : canvas
|
|
|
|
}
|
|
|
|
);
|
|
|
|
let slider = new EntitySlider(
|
|
|
|
{
|
|
|
|
canvas,
|
|
|
|
images : [image1, image2, image3, image4],
|
|
|
|
}
|
|
|
|
)
|
|
|
|
slider.touch = touch;
|
|
|
|
|
|
|
|
assert.isTrue(slider.ready[0]);
|
|
|
|
|
|
|
|
touch.domComponent = null;
|
|
|
|
|
|
|
|
assert.isFalse(slider.ready[0]);
|
|
|
|
|
|
|
|
touch.domComponent = canvas;
|
|
|
|
|
|
|
|
assert.isTrue(slider.ready[0]);
|
|
|
|
|
2021-10-02 06:50:42 +02:00
|
|
|
}
|
|
|
|
);
|
|
|
|
|
2020-04-21 11:47:02 +02:00
|
|
|
});
|
|
|
|
|