Browse Source

if you load an objet from json, JSONLoader will maybe add some undefined properties like bones. If you compare the originial with the json object, these properies will be missed. For that reson you cant use smartcompare and need to exclude props manually§

simonThiele 10 năm trước cách đây
mục cha
commit
bfa2cc7802
1 tập tin đã thay đổi với 20 bổ sung3 xóa
  1. 20 3
      test/unit/qunit-utils.js

+ 20 - 3
test/unit/qunit-utils.js

@@ -58,9 +58,11 @@ function checkGeometryClone( geom ) {
 	QUnit.assert.notEqual( copy.id, geom.id, "clone id should differ from original" );
 	QUnit.assert.notEqual( copy.id, geom.id, "clone id should differ from original" );
 
 
 	var excludedProperties = [ 'parameters', 'widthSegments', 'heightSegments', 'depthSegments' ];
 	var excludedProperties = [ 'parameters', 'widthSegments', 'heightSegments', 'depthSegments' ];
+
 	var differingProp = getDifferingProp( geom, copy, excludedProperties );
 	var differingProp = getDifferingProp( geom, copy, excludedProperties );
-	var differingProp = getDifferingProp( copy, geom, excludedProperties );
+	ok( differingProp === undefined, 'properties are equal' );
 
 
+	differingProp = getDifferingProp( copy, geom, excludedProperties );
 	ok( differingProp === undefined, 'properties are equal' );
 	ok( differingProp === undefined, 'properties are equal' );
 
 
 	// json round trip with clone
 	// json round trip with clone
@@ -68,7 +70,9 @@ function checkGeometryClone( geom ) {
 
 
 }
 }
 
 
-function getDifferingProp( geometryA, geometryB, excludedProperties ) {
+function getDifferingProp( geometryA, geometryB, excludedProperties) {
+	excludedProperties = excludedProperties || [];
+
 	var geometryKeys = Object.keys( geometryA );
 	var geometryKeys = Object.keys( geometryA );
 	var cloneKeys = Object.keys( geometryB );
 	var cloneKeys = Object.keys( geometryB );
 
 
@@ -137,7 +141,20 @@ function checkGeometryJsonReading( json, geom ) {
 	var output = loader.parseGeometries( wrap );
 	var output = loader.parseGeometries( wrap );
 
 
 	QUnit.assert.ok( output[ geom.uuid ], 'geometry matching source uuid not in output' );
 	QUnit.assert.ok( output[ geom.uuid ], 'geometry matching source uuid not in output' );
-	QUnit.assert.smartEqual( output[ geom.uuid ], geom, 'Reconstruct geometry from ObjectLoader' );
+	// QUnit.assert.smartEqual( output[ geom.uuid ], geom, 'Reconstruct geometry from ObjectLoader' );
+
+	var differing = getDifferingProp(output[ geom.uuid ], geom, ['bones']);
+	if (differing) {
+		console.log(differing);
+	}
+
+	var excludedProperties = [ 'bones' ];
+
+	var differingProp = getDifferingProp( output[ geom.uuid ], geom, excludedProperties );
+	ok( differingProp === undefined, 'properties are equal' );
+
+	differingProp = getDifferingProp( geom, output[ geom.uuid ], excludedProperties );
+	ok( differingProp === undefined, 'properties are equal' );
 }
 }
 
 
 // Verify geom -> json -> geom
 // Verify geom -> json -> geom

粤ICP备19079148号