TestCmdMoveObject.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. module( "CmdMoveObject" );
  2. test( "Test CmdMoveObject (Undo and Redo)", function() {
  3. var editor = new Editor();
  4. // create some objects
  5. var anakinsName = 'Anakin Skywalker';
  6. var lukesName = 'Luke Skywalker';
  7. var anakinSkywalker = aSphere( anakinsName );
  8. var lukeSkywalker = aBox( lukesName );
  9. editor.execute( new CmdAddObject( anakinSkywalker ) );
  10. editor.execute( new CmdAddObject( lukeSkywalker ) );
  11. ok( anakinSkywalker.parent.name == "Scene", "OK, Anakin's parent is 'Scene' ");
  12. ok( lukeSkywalker.parent.name == "Scene", "OK, Luke's parent is 'Scene' ");
  13. // Tell Luke, Anakin is his father
  14. editor.execute( new CmdMoveObject( lukeSkywalker, anakinSkywalker ) );
  15. ok( true === true, "(Luke has been told who his father is)");
  16. ok( anakinSkywalker.parent.name == "Scene" , "OK, Anakin's parent is still 'Scene' ");
  17. ok( lukeSkywalker.parent.name == anakinsName, "OK, Luke's parent is '" + anakinsName + "' ");
  18. editor.undo();
  19. ok( true === true, "(Statement undone)");
  20. ok( anakinSkywalker.parent.name == "Scene", "OK, Anakin's parent is still 'Scene' ");
  21. ok( lukeSkywalker.parent.name == "Scene", "OK, Luke's parent is 'Scene' again ");
  22. editor.redo();
  23. ok( true === true, "(Statement redone)");
  24. ok( anakinSkywalker.parent.name == "Scene" , "OK, Anakin's parent is still 'Scene' ");
  25. ok( lukeSkywalker.parent.name == anakinsName, "OK, Luke's parent is '" + anakinsName + "' again ");
  26. });