TestMoveObjectCommand.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /**
  2. * @author lxxxvi / https://github.com/lxxxvi
  3. * Developed as part of a project at University of Applied Sciences and Arts Northwestern Switzerland (www.fhnw.ch)
  4. */
  5. module( "MoveObjectCommand" );
  6. test( "Test MoveObjectCommand (Undo and Redo)", function() {
  7. var editor = new Editor();
  8. // create some objects
  9. var anakinsName = 'Anakin Skywalker';
  10. var lukesName = 'Luke Skywalker';
  11. var anakinSkywalker = aSphere( anakinsName );
  12. var lukeSkywalker = aBox( lukesName );
  13. editor.execute( new AddObjectCommand( anakinSkywalker ) );
  14. editor.execute( new AddObjectCommand( lukeSkywalker ) );
  15. ok( anakinSkywalker.parent.name == "Scene", "OK, Anakin's parent is 'Scene' " );
  16. ok( lukeSkywalker.parent.name == "Scene", "OK, Luke's parent is 'Scene' " );
  17. // Tell Luke, Anakin is his father
  18. editor.execute( new MoveObjectCommand( lukeSkywalker, anakinSkywalker ) );
  19. ok( true === true, "(Luke has been told who his father is)" );
  20. ok( anakinSkywalker.parent.name == "Scene", "OK, Anakin's parent is still 'Scene' " );
  21. ok( lukeSkywalker.parent.name == anakinsName, "OK, Luke's parent is '" + anakinsName + "' " );
  22. editor.undo();
  23. ok( true === true, "(Statement undone)" );
  24. ok( anakinSkywalker.parent.name == "Scene", "OK, Anakin's parent is still 'Scene' " );
  25. ok( lukeSkywalker.parent.name == "Scene", "OK, Luke's parent is 'Scene' again " );
  26. editor.redo();
  27. ok( true === true, "(Statement redone)" );
  28. ok( anakinSkywalker.parent.name == "Scene", "OK, Anakin's parent is still 'Scene' " );
  29. ok( lukeSkywalker.parent.name == anakinsName, "OK, Luke's parent is '" + anakinsName + "' again " );
  30. } );