AddObjectCommandAndRemoveObjectCommand.tests.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. QUnit.module( "AddObjectCommandAndRemoveObjectCommand" );
  2. QUnit.test( "Test AddObjectCommand and RemoveObjectCommand (Undo and Redo)", function( assert ) {
  3. // setup
  4. var editor = new Editor();
  5. var box = aBox( 'The Box' );
  6. var light = aPointlight( 'The PointLight' );
  7. var camera = aPerspectiveCamera( 'The Camera' );
  8. var objects = [ box , light, camera ];
  9. objects.map( function( object ) {
  10. // Test Add
  11. var cmd = new AddObjectCommand( object );
  12. cmd.updatable = false;
  13. editor.execute( cmd );
  14. assert.ok( editor.scene.children.length == 1, "OK, adding '" + object.type + "' was successful " );
  15. editor.undo();
  16. assert.ok( editor.scene.children.length == 0, "OK, adding '" + object.type + "' is undone (was removed)" );
  17. editor.redo();
  18. assert.ok( editor.scene.children[ 0 ].name == object.name, "OK, removed '" + object.type + "' was added again (redo)" );
  19. assert.ok( editor.selected == object, "OK, focus was set on recovered object after Add-Redo" );
  20. // Test Remove
  21. var cmd = new RemoveObjectCommand( object );
  22. cmd.updatable = false;
  23. editor.execute( cmd );
  24. assert.ok( editor.scene.children.length == 0, "OK, removing object was successful" );
  25. editor.undo();
  26. assert.ok( editor.scene.children[ 0 ].name == object.name, "OK, removed object was added again (undo)" );
  27. assert.ok( editor.selected == object, "OK, focus was set on recovered object after Delete-Undo" );
  28. editor.redo();
  29. assert.ok( editor.scene.children.length == 0, "OK, object was removed again (redo)" );
  30. } );
  31. } );