1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /**
- * @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( "SetMaterialValueCommand" );
- QUnit.test( "Test for SetMaterialValueCommand (Undo and Redo)", function( assert ) {
- // setup scene
- var editor = new Editor();
- var box = aBox();
- var cmd = new AddObjectCommand( box );
- cmd.updatable = false;
- editor.execute( cmd );
- // every attribute gets three test values
- var testData = {
- uuid: [ THREE.Math.generateUUID(), THREE.Math.generateUUID(), THREE.Math.generateUUID() ],
- name: [ 'Alpha', 'Bravo', 'Charlie' ],
- shininess: [ 11.1, 22.2, 33.3 ],
- bumpScale: [ 1.1, 2.2, 3.3 ],
- reflectivity: [ - 1.3, 2.1, 5.0 ],
- aoMapIntensity: [ 0.1, 0.4, 0.7 ],
- side: [ 'Front', 'Back', 'Double' ],
- shading: [ 'No', 'Flat', 'Smooth' ],
- blending: [ 'No', 'Normal', 'Additive' ],
- opacity: [ 0.2, 0.5, 0.8 ],
- alphaTest: [ 0.1, 0.6, 0.9 ],
- wireframeLinewidth: [ 1.2, 3.4, 5.6 ]
- };
- var testDataKeys = Object.keys( testData );
- testDataKeys.map( function( attributeName ) {
- testData[ attributeName ].map( function( value ) {
- var cmd = new SetMaterialValueCommand( box, attributeName, value );
- cmd.updatable = false;
- editor.execute( cmd );
- } );
- var length = testData[ attributeName ].length;
- assert.ok( box.material[ attributeName ] == testData[ attributeName ][ length - 1 ],
- "OK, " + attributeName + " was set correctly to the last value (expected: '" + testData[ attributeName ][ length - 1 ] + "', actual: '" + box.material[ attributeName ] + "')" );
- editor.undo();
- assert.ok( box.material[ attributeName ] == testData[ attributeName ][ length - 2 ],
- "OK, " + attributeName + " was set correctly to the second to the last value after undo (expected: '" + testData[ attributeName ][ length - 2 ] + "', actual: '" + box.material[ attributeName ] + "')" );
- editor.redo();
- assert.ok( box.material[ attributeName ] == testData[ attributeName ][ length - 1 ],
- "OK, " + attributeName + " was set correctly to the last value again after redo (expected: '" + testData[ attributeName ][ length - 1 ] + "', actual: '" + box.material[ attributeName ] + "')" );
- } );
- } );
|