diff --git a/tests/content/entity/material/apply/entities/model/test.js b/tests/content/entity/material/apply/entities/model/test.js index aa3d29db..2fcb9141 100644 --- a/tests/content/entity/material/apply/entities/model/test.js +++ b/tests/content/entity/material/apply/entities/model/test.js @@ -62,8 +62,7 @@ nitpick.perform("Apply Material Entities to Model Entities", Script.resolvePath( } } - nitpick.addDelay(6); - + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("Display materials on multiple models"); nitpick.addStep("Clean up after test", function () { diff --git a/tests/content/entity/material/apply/overlays/model/test.js b/tests/content/entity/material/apply/overlays/model/test.js index a2604ba5..3cd16fe9 100644 --- a/tests/content/entity/material/apply/overlays/model/test.js +++ b/tests/content/entity/material/apply/overlays/model/test.js @@ -64,8 +64,7 @@ nitpick.perform("Apply Material Entities to Model Overlays", Script.resolvePath( } } - nitpick.addDelay(6); - + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("Display materials on multiple model overlays"); nitpick.addStep("Clean up after test", function () { diff --git a/tests/content/entity/material/apply/targeting/test.js b/tests/content/entity/material/apply/targeting/test.js index badf270a..256f1efc 100644 --- a/tests/content/entity/material/apply/targeting/test.js +++ b/tests/content/entity/material/apply/targeting/test.js @@ -65,8 +65,7 @@ nitpick.perform("Material targeting", Script.resolvePath("."), "secondary", func } } - nitpick.addDelay(6); - + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("Display materials on multiple models"); nitpick.addStep("Clean up after test", function () { diff --git a/tests/content/entity/material/create/test.js b/tests/content/entity/material/create/test.js index 883103c7..b56698c2 100644 --- a/tests/content/entity/material/create/test.js +++ b/tests/content/entity/material/create/test.js @@ -166,8 +166,7 @@ nitpick.perform("Material Entities", Script.resolvePath("."), "secondary", funct } }); - nitpick.addDelay(10); - + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("Take snapshot when not in Debug mode"); nitpick.addStep("Debug Emissive", function () { diff --git a/tests/content/entity/model/modelBaking/normal_texture/test.js b/tests/content/entity/model/modelBaking/normal_texture/test.js index 97716780..82860fc2 100644 --- a/tests/content/entity/model/modelBaking/normal_texture/test.js +++ b/tests/content/entity/model/modelBaking/normal_texture/test.js @@ -40,7 +40,7 @@ nitpick.perform("Read FBX model with normal texture", Script.resolvePath("."), " // Show a cube with just a normal texture addEntityWithOffset(createdEntities, 'models/model_baking/normal_texture/ModelUVScalingCube.baked.fbx', { x: 0.0, y: 0.75, z: -2.0 }); - nitpick.addDelay(8); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("FBX normal texture should be visible on an otherwise white model"); nitpick.addStep("Clean up after test", function () { diff --git a/tests/content/entity/model/modelReaders/fbxReader/uv_scale/test.js b/tests/content/entity/model/modelReaders/fbxReader/uv_scale/test.js index 1935bf8b..dbd74ced 100644 --- a/tests/content/entity/model/modelReaders/fbxReader/uv_scale/test.js +++ b/tests/content/entity/model/modelReaders/fbxReader/uv_scale/test.js @@ -37,7 +37,7 @@ nitpick.perform("Read FBX models with UV scale properties", Script.resolvePath(" // A cube with the FBX material (not to be confused with the texture) scaled automatically using Maya|uv_scale so it looks the same as the unscaled cube addEntityWithOffset(createdEntities, 'models/fbx_models/uv_scale/maya_material/MayaUVScaleCube.fbx', { x: 1.5, y: 0.75, z: -4.0 }); - nitpick.addDelay(8); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("FBX cube model texture scale comparison"); nitpick.addStep("Clean up after test", function () { diff --git a/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/alphaBlend/test.js b/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/alphaBlend/test.js index 7f5bfa98..6295cd22 100755 --- a/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/alphaBlend/test.js +++ b/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/alphaBlend/test.js @@ -33,7 +33,7 @@ nitpick.perform("Read GLTF model", Script.resolvePath("."), "secondary", functio }); createdEntities.push(testEntity); - nitpick.addDelay(4); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("AlphaBlendModeTest.glb Model is visible"); diff --git a/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/brainstem/test.js b/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/brainstem/test.js index f5b69d2d..9b247453 100755 --- a/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/brainstem/test.js +++ b/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/brainstem/test.js @@ -33,6 +33,7 @@ nitpick.perform("Read GLTF model", Script.resolvePath("."), "secondary", functio }); createdEntities.push(testEntity); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("BrainStem.glb Model is visible"); diff --git a/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/buggy/test.js b/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/buggy/test.js index ffbd40a9..89eea2d2 100755 --- a/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/buggy/test.js +++ b/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/buggy/test.js @@ -33,6 +33,7 @@ nitpick.perform("Read GLTF model", Script.resolvePath("."), "secondary", functio }); createdEntities.push(testEntity); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStep("Scale to 1m", function () { var properties = Entities.getEntityProperties(testEntity); diff --git a/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/city/test.js b/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/city/test.js index 118d5446..1c0b7e88 100755 --- a/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/city/test.js +++ b/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/city/test.js @@ -33,6 +33,7 @@ nitpick.perform("Read GLTF model", Script.resolvePath("."), "secondary", functio }); createdEntities.push(testEntity); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStep("Scale to 1m", function () { var properties = Entities.getEntityProperties(testEntity); diff --git a/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/lantern/test.js b/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/lantern/test.js index d4196c20..4ec05fe6 100755 --- a/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/lantern/test.js +++ b/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/lantern/test.js @@ -33,6 +33,7 @@ nitpick.perform("Read GLTF model", Script.resolvePath("."), "secondary", functio }); createdEntities.push(testEntity); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStep("Scale to 1m", function () { var properties = Entities.getEntityProperties(testEntity); diff --git a/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/metalRoughSpheres/test.js b/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/metalRoughSpheres/test.js index e0b203ac..e236f60c 100755 --- a/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/metalRoughSpheres/test.js +++ b/tests/content/entity/model/modelReaders/gltfReader/glbTestSuite/metalRoughSpheres/test.js @@ -33,6 +33,7 @@ nitpick.perform("Read GLTF model", Script.resolvePath("."), "secondary", functio }); createdEntities.push(testEntity); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStep("Scale to 1m", function () { var properties = Entities.getEntityProperties(testEntity); diff --git a/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/brainstem/test.js b/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/brainstem/test.js index 039e9152..bf0628b2 100755 --- a/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/brainstem/test.js +++ b/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/brainstem/test.js @@ -33,6 +33,7 @@ nitpick.perform("Read GLTF model", Script.resolvePath("."), "secondary", functio }); createdEntities.push(testEntity); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("BrainStem.gltf Model is visible"); diff --git a/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/buggy/test.js b/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/buggy/test.js index 4b798471..74549bfc 100755 --- a/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/buggy/test.js +++ b/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/buggy/test.js @@ -33,6 +33,7 @@ nitpick.perform("Read GLTF model", Script.resolvePath("."), "secondary", functio }); createdEntities.push(testEntity); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStep("Scale to 1m", function () { var properties = Entities.getEntityProperties(testEntity); diff --git a/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/city/test.js b/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/city/test.js index f9e3996f..51e83027 100755 --- a/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/city/test.js +++ b/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/city/test.js @@ -33,6 +33,7 @@ nitpick.perform("Read GLTF model", Script.resolvePath("."), "secondary", functio }); createdEntities.push(testEntity); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStep("Scale to 1m", function () { var properties = Entities.getEntityProperties(testEntity); diff --git a/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/embedded/brainstem/test.js b/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/embedded/brainstem/test.js index 7b903eb0..546aebb6 100755 --- a/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/embedded/brainstem/test.js +++ b/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/embedded/brainstem/test.js @@ -33,6 +33,7 @@ nitpick.perform("Read GLTF model", Script.resolvePath("."), "secondary", functio }); createdEntities.push(testEntity); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("BrainStem.gltf Model is visible"); diff --git a/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/embedded/buggy/test.js b/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/embedded/buggy/test.js index 6ee9d737..a59fbb60 100755 --- a/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/embedded/buggy/test.js +++ b/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/embedded/buggy/test.js @@ -33,6 +33,7 @@ nitpick.perform("Read GLTF model", Script.resolvePath("."), "secondary", functio }); createdEntities.push(testEntity); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStep("Scale to 1m", function () { var properties = Entities.getEntityProperties(testEntity); diff --git a/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/embedded/city/test.js b/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/embedded/city/test.js index a1330016..cd2ae415 100755 --- a/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/embedded/city/test.js +++ b/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/embedded/city/test.js @@ -33,6 +33,7 @@ nitpick.perform("Read GLTF model", Script.resolvePath("."), "secondary", functio }); createdEntities.push(testEntity); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStep("Scale to 1m", function () { var properties = Entities.getEntityProperties(testEntity); diff --git a/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/embedded/metalRoughSpheres/test.js b/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/embedded/metalRoughSpheres/test.js index deb6abb5..7433dce5 100755 --- a/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/embedded/metalRoughSpheres/test.js +++ b/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/embedded/metalRoughSpheres/test.js @@ -33,6 +33,7 @@ nitpick.perform("Read GLTF model", Script.resolvePath("."), "secondary", functio }); createdEntities.push(testEntity); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStep("Scale to 1m", function () { var properties = Entities.getEntityProperties(testEntity); diff --git a/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/lantern/test.js b/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/lantern/test.js index 886abd05..2390519f 100755 --- a/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/lantern/test.js +++ b/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/lantern/test.js @@ -33,6 +33,7 @@ nitpick.perform("Read GLTF model", Script.resolvePath("."), "secondary", functio }); createdEntities.push(testEntity); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStep("Scale to 1m", function () { var properties = Entities.getEntityProperties(testEntity); diff --git a/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/metalRoughSpheres/test.js b/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/metalRoughSpheres/test.js index 234a857c..55217757 100755 --- a/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/metalRoughSpheres/test.js +++ b/tests/content/entity/model/modelReaders/gltfReader/gltfTestSuite/metalRoughSpheres/test.js @@ -33,6 +33,7 @@ nitpick.perform("Read GLTF model", Script.resolvePath("."), "secondary", functio }); createdEntities.push(testEntity); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStep("Scale to 1m", function () { var properties = Entities.getEntityProperties(testEntity); diff --git a/tests/content/entity/model/renderLayer/front/test.js b/tests/content/entity/model/renderLayer/front/test.js index 27c3b72f..8740748e 100644 --- a/tests/content/entity/model/renderLayer/front/test.js +++ b/tests/content/entity/model/renderLayer/front/test.js @@ -120,7 +120,7 @@ nitpick.perform("Model Entity renderLayer front", Script.resolvePath("."), "seco })); }); - nitpick.addDelay(10); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("Take snapshot of all the models"); nitpick.addStep("Clean up after test", function () { diff --git a/tests/content/entity/model/renderLayer/hud/test.js b/tests/content/entity/model/renderLayer/hud/test.js index 40342412..3badb690 100644 --- a/tests/content/entity/model/renderLayer/hud/test.js +++ b/tests/content/entity/model/renderLayer/hud/test.js @@ -113,8 +113,8 @@ nitpick.perform("Model Entity renderLayer hud", Script.resolvePath("."), "second dimensions: { x: 4, y: 2, z: 0.5}, })); }); - nitpick.addDelay(8); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("Take snapshot of all the models"); nitpick.addStep("Clean up after test", function () { diff --git a/tests/content/overlay/material/test.js b/tests/content/overlay/material/test.js index 853ff687..9ddc7394 100644 --- a/tests/content/overlay/material/test.js +++ b/tests/content/overlay/material/test.js @@ -106,7 +106,7 @@ nitpick.perform("Model Overlay Material create", Script.resolvePath("."), "secon addCases(root, orientation); }); - nitpick.addDelay(12); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("Take snapshot of all the models"); nitpick.addStep("Clean up after test", function () { diff --git a/tests/engine/render/effect/highlight/coverage/test.js b/tests/engine/render/effect/highlight/coverage/test.js index 83fcd37e..72fa3010 100644 --- a/tests/engine/render/effect/highlight/coverage/test.js +++ b/tests/engine/render/effect/highlight/coverage/test.js @@ -285,7 +285,7 @@ nitpick.perform("Highlight Test", Script.resolvePath("."), "secondary", function createdEntities.push(hifi); createdEntities.push(terrain); - nitpick.addDelay(4); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStep("Position secondary camera", function() { validationCamera_translate({ x: 0.0, y: 0.0, z: -8.0 }); diff --git a/tests/engine/render/geometry/invalidURL/test.js b/tests/engine/render/geometry/invalidURL/test.js index 39eab814..740634b6 100644 --- a/tests/engine/render/geometry/invalidURL/test.js +++ b/tests/engine/render/geometry/invalidURL/test.js @@ -27,8 +27,7 @@ nitpick.perform("Attempt to access invalid URL", Script.resolvePath("."), "secon } ); - nitpick.addDelay(6); - + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("Result of invalid URL load"); nitpick.addStep("Load model with valid URL", function () { diff --git a/tests/engine/render/material/albedo/test.js b/tests/engine/render/material/albedo/test.js index b981d486..25c6a991 100644 --- a/tests/engine/render/material/albedo/test.js +++ b/tests/engine/render/material/albedo/test.js @@ -27,7 +27,7 @@ nitpick.perform("Effects of albedo on various materials", Script.resolvePath("." validationCamera_translate(OFFSET); }); - nitpick.addDelay(6); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("Take snapshot of the effects"); nitpick.addStep("Clean up after test", function () { diff --git a/tests/engine/render/material/base/test.js b/tests/engine/render/material/base/test.js index 9dd1627a..00fbd509 100644 --- a/tests/engine/render/material/base/test.js +++ b/tests/engine/render/material/base/test.js @@ -22,7 +22,7 @@ nitpick.perform("Show base effects on various materials", Script.resolvePath("." validationCamera_translate(OFFSET); }); - nitpick.addDelay(6); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("Take snapshot of the effects"); nitpick.addStep("Clean up after test", function () { diff --git a/tests/engine/render/material/emissive/test.js b/tests/engine/render/material/emissive/test.js index 0d29f090..b17ece0d 100644 --- a/tests/engine/render/material/emissive/test.js +++ b/tests/engine/render/material/emissive/test.js @@ -22,7 +22,7 @@ nitpick.perform("Show effects of emmisive materials", Script.resolvePath("."), " validationCamera_translate(OFFSET); }); - nitpick.addDelay(6); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("Take snapshot of the effects"); nitpick.addStep("Clean up after test", function () { diff --git a/tests/engine/render/material/normal_map/test.js b/tests/engine/render/material/normal_map/test.js index 7eadac40..28cc3d7d 100644 --- a/tests/engine/render/material/normal_map/test.js +++ b/tests/engine/render/material/normal_map/test.js @@ -22,7 +22,7 @@ nitpick.perform("Show effects of normal maps", Script.resolvePath("."), "seconda validationCamera_translate(OFFSET); }); - nitpick.addDelay(6); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("Take snapshot of the effects: Material Normal Map"); nitpick.addStep("Clean up after test", function () { diff --git a/tests/engine/render/material/opacity/test.js b/tests/engine/render/material/opacity/test.js index a2019937..051246a4 100644 --- a/tests/engine/render/material/opacity/test.js +++ b/tests/engine/render/material/opacity/test.js @@ -25,7 +25,7 @@ nitpick.perform("Show effects of opacity", Script.resolvePath("."), "secondary", validationCamera_translate(OFFSET); }); - nitpick.addDelay(6); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("Take snapshot of the effects"); nitpick.addStep("Clean up after test", function () { diff --git a/tests/engine/render/material/roughness/test.js b/tests/engine/render/material/roughness/test.js index 787a0146..2cc9f775 100644 --- a/tests/engine/render/material/roughness/test.js +++ b/tests/engine/render/material/roughness/test.js @@ -31,7 +31,7 @@ nitpick.perform("Show effects of roughness", Script.resolvePath("."), "secondary validationCamera_translate(OFFSET); }); - nitpick.addDelay(10); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("Take snapshot of the effects"); nitpick.addStep("Clean up after test", function () { diff --git a/tests/engine/render/material/roughness_map/test.js b/tests/engine/render/material/roughness_map/test.js index 0c274ba0..06db2b99 100644 --- a/tests/engine/render/material/roughness_map/test.js +++ b/tests/engine/render/material/roughness_map/test.js @@ -22,7 +22,7 @@ nitpick.perform("Show effects of roughness maps", Script.resolvePath("."), "seco validationCamera_translate(OFFSET); }); - nitpick.addDelay(6); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("Take snapshot of the effects"); nitpick.addStep("Clean up after test", function () { diff --git a/tests/engine/render/shadows/front/test.js b/tests/engine/render/shadows/front/test.js index cb1995a9..ea390c53 100644 --- a/tests/engine/render/shadows/front/test.js +++ b/tests/engine/render/shadows/front/test.js @@ -14,7 +14,7 @@ nitpick.perform("Shadow - light in front", Script.resolvePath("."), "secondary", createdEntities = setup(20.0, 180.0, nitpick.getOriginFrame()); }); - nitpick.addDelay(3); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("Light source altitude: 20.0, azimuth: 180.0"); nitpick.addStep("Clean up after test", function () { diff --git a/tests/engine/render/shadows/grazing/test.js b/tests/engine/render/shadows/grazing/test.js index 1d17321a..a86d74fc 100644 --- a/tests/engine/render/shadows/grazing/test.js +++ b/tests/engine/render/shadows/grazing/test.js @@ -14,7 +14,7 @@ nitpick.perform("Shadow - light at grazing angle from left", Script.resolvePath( createdEntities = setup(5.0, 90.0, nitpick.getOriginFrame()); }); - nitpick.addDelay(3); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("Light source altitude: 5.0, azimuth: 90.0"); nitpick.addStep("Clean up after test", function () { diff --git a/tests/engine/render/shadows/normal/test.js b/tests/engine/render/shadows/normal/test.js index 84f5059e..d3612a24 100644 --- a/tests/engine/render/shadows/normal/test.js +++ b/tests/engine/render/shadows/normal/test.js @@ -14,7 +14,7 @@ nitpick.perform("Shadow - light on top", Script.resolvePath("."), "secondary", f createdEntities = setup(80.0, -60.0, nitpick.getOriginFrame()); }); - nitpick.addDelay(3); + nitpick.waitForEntityLoad(createdEntities); nitpick.addStepSnapshot("Light source altitude: 80.0, azimuth: -60.0"); nitpick.addStep("Clean up after test", function () { diff --git a/tests/utils/nitpick.js b/tests/utils/nitpick.js index 40142bb1..d5b3ff47 100644 --- a/tests/utils/nitpick.js +++ b/tests/utils/nitpick.js @@ -70,6 +70,36 @@ function onStillSnapshotTaken(path, notify) { waitingForSnapshot = false; } +var arrayOfLoadingEntities = []; +function areEntitiesLoading() { + // Return immediately if no entities in array + if (!arrayOfLoadingEntities.length) { + return false; + } + + // Check if all textures are loaded + if (!Test.isTextureLoadingComplete()) { + console.warn("Waiting for texture load"); + return true; + } + + // Check if we are waiting on any entities to load + for (var i in arrayOfLoadingEntities) { + if (!Entities.isLoaded(arrayOfLoadingEntities[i])) { + console.warn("Waiting for entity " + i); + entitiesStillLoading = true; + return true; + } else { + console.warn("Entity " + i + " loaded + , " + arrayOfLoadingEntities.length + " waiting to load"); + arrayOfLoadingEntities = arrayOfLoadingEntities.splice(i, 1); + } + } + + // All good + arrayOfLoadingEntities = []; + return false; +} + //returns n as a string, padded to length characters with the character ch function pad(n, length, ch) { ch = ch || '0'; // default is '0' @@ -135,6 +165,8 @@ var onRunAutoNext = function() { if (waitingForSnapshot) { console.warn("Waiting for Snapshot"); + } else if (areEntitiesLoading()) { + console.warn("Waiting for entities to load"); } else if (!downloadInProgress && !loadingContentIsStillDisplayed) { // Only run next step if current step is complete if (!runNextStep()) { @@ -680,4 +712,11 @@ module.exports.verifyClientProfile = function() { // Nothing was OK console.warn("We are not running on any of the requested client profiles"); return false; +} + + +module.exports.waitForEntityLoad = function(arrayOfLoadingEntitiesParameter) { + if (typeof Test !== 'undefined') { + arrayOfLoadingEntities = arrayOfLoadingEntitiesParameter.slice(); + } } \ No newline at end of file diff --git a/tests/utils/test_stage.js b/tests/utils/test_stage.js index 7ea77133..2c01aa1b 100644 --- a/tests/utils/test_stage.js +++ b/tests/utils/test_stage.js @@ -213,7 +213,9 @@ setupStage = function (initData) { stageRoot = Vec3.sum(stageRoot, Vec3.multiply(ROOT_Y_OFFSET, Quat.getUp(orientation))); stageTileRoot = Vec3.sum(stageRoot, GRID_TILE_OFFSET); - return addTestBackdrop("Light_stage_backdrop", initData.flags, initData.lifetime); + entities = addTestBackdrop("Light_stage_backdrop", initData.flags, initData.lifetime); + nitpick.waitForEntityLoad(entities); + return entities; } getStagePosOriAt = function (a, b, c) {