1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- module("TestCmdSetScene");
- test("Test for CmdSetScene (Undo and Redo)", function() {
- // setup
- var editor = new Editor();
- objects = [ aBox(), aSphere(), aPointlight() ];
- // create multiple editors (scenes) and save the output
- var scenes = objects.map( function( object ) {
- editor = new Editor();
- var cmd = new CmdAddObject( object );
- cmd.updatable = false;
- editor.execute( cmd );
- return { obj: object, exportedData: exportScene( editor ) };
- });
- // create new empty editor (scene), merge the other editors (scenes)
- editor = new Editor();
- scenes.map( function( scene ) {
- var importedScene = importScene( scene.exportedData );
- var cmd = new CmdSetScene( importedScene );
- cmd.updatable = false;
- editor.execute( cmd );
- });
- // tests
- ok( editor.scene.children.length = scenes.length,
- "OK, all scenes have been merged");
- var i = 0;
- while( i < editor.scene.children.length ) {
- ok( editor.scene.children[ i ].name == scenes[ i ].obj.name,
- "OK, editor.scene.children[ " + i + " ].name matches scenes[ " + i + " ].obj.name");
- i++;
- }
- editor.undo();
- var i = 0;
- while( i < editor.scene.children.length ) {
- ok( editor.scene.children[ i ].name == scenes[ i ].obj.name,
- "OK, editor.scene.children[ " + i + " ].name matches scenes[ " + i + " ].obj.name after undo");
- i++;
- }
- editor.redo();
- var i = 0;
- while( i < editor.scene.children.length ) {
- ok( editor.scene.children[ i ].name == scenes[ i ].obj.name,
- "OK, editor.scene.children[ " + i + " ].name matches scenes[ " + i + " ].obj.name after redo");
- i++;
- }
- });
|