|
@@ -0,0 +1,56 @@
|
|
|
|
+module("CmdSetMaterialValue");
|
|
|
|
+
|
|
|
|
+test( "Test for CmdSetMaterialValue (Undo and Redo)", function() {
|
|
|
|
+
|
|
|
|
+ // setup scene
|
|
|
|
+ var editor = new Editor();
|
|
|
|
+ var box = aBox();
|
|
|
|
+ var cmd = new CmdAddObject( 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 ],
|
|
|
|
+ vertexColors: [ 'No', 'Face', 'Vertex' ],
|
|
|
|
+ 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 ],
|
|
|
|
+ wirefrimeLinewidth: [ 1.2, 3.4, 5.6 ]
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ var testDataKeys = Object.keys( testData );
|
|
|
|
+
|
|
|
|
+ testDataKeys.map( function( attributeName ) {
|
|
|
|
+
|
|
|
|
+ testData[ attributeName ].map( function( value ) {
|
|
|
|
+
|
|
|
|
+ var cmd = new CmdSetMaterialValue( box, attributeName, value );
|
|
|
|
+ cmd.updatable = false;
|
|
|
|
+ editor.execute( cmd );
|
|
|
|
+
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ var length = testData[ attributeName].length;
|
|
|
|
+ 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();
|
|
|
|
+ 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();
|
|
|
|
+ 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 ] + "')");
|
|
|
|
+
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+});
|