SetSceneCommand.tests.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. QUnit.module( "TestCmdSetScene" );
  2. QUnit.test( "Test for SetSceneCommand (Undo and Redo)", function( assert ) {
  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 AddObjectCommand( 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 SetSceneCommand( importedScene );
  19. cmd.updatable = false;
  20. editor.execute( cmd );
  21. } );
  22. // tests
  23. assert.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. assert.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. assert.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. assert.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. } );