babylon.node.tests.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /**
  2. * Describes the test suite.
  3. */
  4. describe('Babylon Node', () => {
  5. let subject: BABYLON.Engine;
  6. /**
  7. * Loads the dependencies.
  8. */
  9. before(function (done) {
  10. this.timeout(180000);
  11. (BABYLONDEVTOOLS).Loader
  12. .useDist()
  13. .load(function () {
  14. // Force apply promise polyfill for consistent behavior between PhantomJS, IE11, and other browsers.
  15. BABYLON.PromisePolyfill.Apply(true);
  16. done();
  17. });
  18. });
  19. /**
  20. * Create a new engine subject before each test.
  21. */
  22. beforeEach(function () {
  23. subject = new BABYLON.NullEngine({
  24. renderHeight: 256,
  25. renderWidth: 256,
  26. textureSize: 256,
  27. deterministicLockstep: false,
  28. lockstepMaxSteps: 1
  29. });
  30. });
  31. describe('#Node', () => {
  32. it('dispose', () => {
  33. const scene = new BABYLON.Scene(subject);
  34. const node = new BABYLON.Node("node", scene);
  35. const transformNode = new BABYLON.TransformNode("transformNode", scene);
  36. transformNode.parent = node;
  37. const mesh = new BABYLON.Mesh("node2", scene);
  38. mesh.parent = node;
  39. mesh.material = new BABYLON.PBRMaterial("material", scene)
  40. node.dispose();
  41. expect(node.isDisposed(), "node.isDisposed").to.be.true;
  42. expect(transformNode.isDisposed(), "transformNode.isDisposed").to.be.true;
  43. expect(mesh.isDisposed(), "mesh.isDisposed").to.be.true;
  44. expect(scene.materials, "scene.materials").to.have.lengthOf(1);
  45. });
  46. it('dispose with doNotRecurse', () => {
  47. const scene = new BABYLON.Scene(subject);
  48. const node = new BABYLON.Node("node", scene);
  49. const transformNode = new BABYLON.TransformNode("transformNode", scene);
  50. transformNode.parent = node;
  51. const mesh = new BABYLON.Mesh("node2", scene);
  52. mesh.parent = node;
  53. mesh.material = new BABYLON.PBRMaterial("material", scene)
  54. node.dispose(true);
  55. expect(node.isDisposed(), "node.isDisposed").to.be.true;
  56. expect(transformNode.isDisposed(), "transformNode.isDisposed").to.be.false;
  57. expect(mesh.isDisposed(), "mesh.isDisposed").to.be.false;
  58. expect(scene.materials, "scene.materials").to.have.lengthOf(1);
  59. });
  60. it('dispose with disposeMaterialAndTextures', () => {
  61. const scene = new BABYLON.Scene(subject);
  62. const transformNode = new BABYLON.TransformNode("transformNode", scene);
  63. const mesh = new BABYLON.Mesh("mesh", scene);
  64. mesh.parent = transformNode;
  65. mesh.material = new BABYLON.PBRMaterial("material", scene)
  66. transformNode.dispose(false, true);
  67. expect(transformNode.isDisposed(), "node.isDisposed").to.be.true;
  68. expect(mesh.isDisposed(), "mesh.isDisposed").to.be.true;
  69. expect(scene.meshes, "scene.meshes").to.be.empty;
  70. expect(scene.materials, "scene.materials").to.be.empty;
  71. });
  72. });
  73. });