MoveObjectCommand.tests.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. QUnit.module( "MoveObjectCommand" );
  2. QUnit.test( "Test MoveObjectCommand (Undo and Redo)", function( assert ) {
  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 AddObjectCommand( anakinSkywalker ) );
  10. editor.execute( new AddObjectCommand( lukeSkywalker ) );
  11. assert.ok( anakinSkywalker.parent.name == "Scene", "OK, Anakin's parent is 'Scene' " );
  12. assert.ok( lukeSkywalker.parent.name == "Scene", "OK, Luke's parent is 'Scene' " );
  13. // Tell Luke, Anakin is his father
  14. editor.execute( new MoveObjectCommand( lukeSkywalker, anakinSkywalker ) );
  15. assert.ok( true === true, "(Luke has been told who his father is)" );
  16. assert.ok( anakinSkywalker.parent.name == "Scene", "OK, Anakin's parent is still 'Scene' " );
  17. assert.ok( lukeSkywalker.parent.name == anakinsName, "OK, Luke's parent is '" + anakinsName + "' " );
  18. editor.undo();
  19. assert.ok( true === true, "(Statement undone)" );
  20. assert.ok( anakinSkywalker.parent.name == "Scene", "OK, Anakin's parent is still 'Scene' " );
  21. assert.ok( lukeSkywalker.parent.name == "Scene", "OK, Luke's parent is 'Scene' again " );
  22. editor.redo();
  23. assert.ok( true === true, "(Statement redone)" );
  24. assert.ok( anakinSkywalker.parent.name == "Scene", "OK, Anakin's parent is still 'Scene' " );
  25. assert.ok( lukeSkywalker.parent.name == anakinsName, "OK, Luke's parent is '" + anakinsName + "' again " );
  26. } );