TestCmdSetScene.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. module("TestCmdSetScene");
  2. test("Test for CmdSetScene (Undo and Redo)", function() {
  3. // setup
  4. var editor = new Editor();
  5. objects = [ aBox(), aSphere(), aPointlight() ];
  6. // create multiple editors (scenes) and save the output
  7. var scenes = objects.map( function( object ) {
  8. editor = new Editor();
  9. var cmd = new CmdAddObject( object );
  10. cmd.updatable = false;
  11. editor.execute( cmd );
  12. return { obj: object, exportedData: exportScene( editor ) };
  13. });
  14. // create new empty editor (scene), merge the other editors (scenes)
  15. editor = new Editor();
  16. scenes.map( function( scene ) {
  17. var importedScene = importScene( scene.exportedData );
  18. var cmd = new CmdSetScene( importedScene );
  19. cmd.updatable = false;
  20. editor.execute( cmd );
  21. });
  22. // tests
  23. ok( editor.scene.children.length = scenes.length,
  24. "OK, all scenes have been merged");
  25. var i = 0;
  26. while( i < editor.scene.children.length ) {
  27. ok( editor.scene.children[ i ].name == scenes[ i ].obj.name,
  28. "OK, editor.scene.children[ " + i + " ].name matches scenes[ " + i + " ].obj.name");
  29. i++;
  30. }
  31. editor.undo();
  32. var i = 0;
  33. while( i < editor.scene.children.length ) {
  34. ok( editor.scene.children[ i ].name == scenes[ i ].obj.name,
  35. "OK, editor.scene.children[ " + i + " ].name matches scenes[ " + i + " ].obj.name after undo");
  36. i++;
  37. }
  38. editor.redo();
  39. var i = 0;
  40. while( i < editor.scene.children.length ) {
  41. ok( editor.scene.children[ i ].name == scenes[ i ].obj.name,
  42. "OK, editor.scene.children[ " + i + " ].name matches scenes[ " + i + " ].obj.name after redo");
  43. i++;
  44. }
  45. });