12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- /**
- * @author lxxxvi / https://github.com/lxxxvi
- * Developed as part of a project at University of Applied Sciences and Arts Northwestern Switzerland (www.fhnw.ch)
- */
- QUnit.module( "RemoveScriptCommand" );
- QUnit.test( "Test RemoveScriptCommand (Undo and Redo)", function( assert ) {
- var editor = new Editor();
- // prepare
- var box = aBox( "The scripted box" );
- var sphere = aSphere( "The scripted sphere" );
- var objects = [ box, sphere ];
- var xMove = { name: "", source: "function update( event ) { this.position.x = this.position.x + 1; }" };
- var yMove = { name: "", source: "function update( event ) { this.position.y = this.position.y + 1; }" };
- var scripts = [ xMove, yMove ];
- // add objects to editor
- objects.map( function( item ) {
- editor.execute( new AddObjectCommand( item ) );
- } );
- assert.ok( editor.scene.children.length == 2, "OK, the box and the sphere have been added" );
- // add scripts to the objects
- for ( var i = 0; i < scripts.length; i ++ ) {
- var cmd = new AddScriptCommand( objects[ i ], scripts[ i ] );
- cmd.updatable = false;
- editor.execute( cmd );
- }
- for ( var i = 0; i < scripts.length; i ++ ) {
- var cmd = new RemoveScriptCommand( objects[ i ], scripts[ i ] );
- cmd.updatable = false;
- editor.execute( cmd );
- }
- assert.ok( getScriptCount( editor ) == 0, "OK, all scripts have been removed" );
- scripts.map( function() {
- editor.undo();
- } );
- assert.ok( getScriptCount( editor ) == scripts.length, "OK, all scripts have been added again by undo(s)" );
- var scriptsKeys = Object.keys( editor.scripts );
- for ( var i = 0; i < scriptsKeys.length; i ++ ) {
- assert.ok( editor.scripts[ scriptsKeys[ i ] ][ 0 ] == scripts[ i ], "OK, script #" + i + " is still assigned correctly" );
- }
- editor.redo();
- assert.ok( getScriptCount( editor ) == scripts.length - 1, "OK, one script has been removed again by redo" );
- } );
|