TestCmdAddObjectAndCmdRemoveObject.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. module( "CmdAddObjectAndCmdRemoveObject" );
  2. test( "Test CmdAddObject and CmdRemoveObject (Undo and Redo)", function() {
  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 CmdAddObject( object );
  12. cmd.updatable = false;
  13. editor.execute( cmd );
  14. ok( editor.scene.children.length == 1, "OK, adding '" + object.type + "' was successful " );
  15. editor.undo();
  16. ok( editor.scene.children.length == 0, "OK, adding '" + object.type + "' is undone (was removed)" );
  17. editor.redo();
  18. ok( editor.scene.children[ 0 ].name == object.name, "OK, removed '" + object.type + "' was added again (redo)" );
  19. // Test Remove
  20. var cmd = new CmdRemoveObject( object );
  21. cmd.updatable = false;
  22. editor.execute( cmd );
  23. ok( editor.scene.children.length == 0, "OK, removing object was successful" );
  24. editor.undo();
  25. ok( editor.scene.children[ 0 ].name == object.name, "OK, removed object was added again (undo)" );
  26. editor.redo();
  27. ok( editor.scene.children.length == 0, "OK, object was removed again (redo)" );
  28. } );
  29. } );