|
@@ -2,5 +2,199 @@
|
|
* @author TristanVALCKE / https://github.com/TristanVALCKE
|
|
* @author TristanVALCKE / https://github.com/TristanVALCKE
|
|
*/
|
|
*/
|
|
|
|
|
|
-//Todo
|
|
|
|
-console.warn("Todo: Unit tests of PropertyBinding")
|
|
|
|
|
|
+QUnit.module( 'BufferAttribute' );
|
|
|
|
+
|
|
|
|
+QUnit.test( 'parseTrackName' , function( assert ) {
|
|
|
|
+
|
|
|
|
+ var paths = [
|
|
|
|
+
|
|
|
|
+ [
|
|
|
|
+ '.property',
|
|
|
|
+ {
|
|
|
|
+ nodeName: undefined,
|
|
|
|
+ objectName: undefined,
|
|
|
|
+ objectIndex: undefined,
|
|
|
|
+ propertyName: 'property',
|
|
|
|
+ propertyIndex: undefined
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+
|
|
|
|
+ [
|
|
|
|
+ 'nodeName.property',
|
|
|
|
+ {
|
|
|
|
+ nodeName: 'nodeName',
|
|
|
|
+ objectName: undefined,
|
|
|
|
+ objectIndex: undefined,
|
|
|
|
+ propertyName: 'property',
|
|
|
|
+ propertyIndex: undefined
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+
|
|
|
|
+ [
|
|
|
|
+ 'a.property',
|
|
|
|
+ {
|
|
|
|
+ nodeName: 'a',
|
|
|
|
+ objectName: undefined,
|
|
|
|
+ objectIndex: undefined,
|
|
|
|
+ propertyName: 'property',
|
|
|
|
+ propertyIndex: undefined
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+
|
|
|
|
+ [
|
|
|
|
+ 'no.de.Name.property',
|
|
|
|
+ {
|
|
|
|
+ nodeName: 'no.de.Name',
|
|
|
|
+ objectName: undefined,
|
|
|
|
+ objectIndex: undefined,
|
|
|
|
+ propertyName: 'property',
|
|
|
|
+ propertyIndex: undefined
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+
|
|
|
|
+ [
|
|
|
|
+ 'no.d-e.Name.property',
|
|
|
|
+ {
|
|
|
|
+ nodeName: 'no.d-e.Name',
|
|
|
|
+ objectName: undefined,
|
|
|
|
+ objectIndex: undefined,
|
|
|
|
+ propertyName: 'property',
|
|
|
|
+ propertyIndex: undefined
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+
|
|
|
|
+ [
|
|
|
|
+ 'nodeName.property[accessor]',
|
|
|
|
+ {
|
|
|
|
+ nodeName: 'nodeName',
|
|
|
|
+ objectName: undefined,
|
|
|
|
+ objectIndex: undefined,
|
|
|
|
+ propertyName: 'property',
|
|
|
|
+ propertyIndex: 'accessor'
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+
|
|
|
|
+ [
|
|
|
|
+ 'nodeName.material.property[accessor]',
|
|
|
|
+ {
|
|
|
|
+ nodeName: 'nodeName',
|
|
|
|
+ objectName: 'material',
|
|
|
|
+ objectIndex: undefined,
|
|
|
|
+ propertyName: 'property',
|
|
|
|
+ propertyIndex: 'accessor'
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+
|
|
|
|
+ [
|
|
|
|
+ 'no.de.Name.material.property',
|
|
|
|
+ {
|
|
|
|
+ nodeName: 'no.de.Name',
|
|
|
|
+ objectName: 'material',
|
|
|
|
+ objectIndex: undefined,
|
|
|
|
+ propertyName: 'property',
|
|
|
|
+ propertyIndex: undefined
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+
|
|
|
|
+ [
|
|
|
|
+ 'no.de.Name.material[materialIndex].property',
|
|
|
|
+ {
|
|
|
|
+ nodeName: 'no.de.Name',
|
|
|
|
+ objectName: 'material',
|
|
|
|
+ objectIndex: 'materialIndex',
|
|
|
|
+ propertyName: 'property',
|
|
|
|
+ propertyIndex: undefined
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+
|
|
|
|
+ [
|
|
|
|
+ 'uuid.property[accessor]',
|
|
|
|
+ {
|
|
|
|
+ nodeName: 'uuid',
|
|
|
|
+ objectName: undefined,
|
|
|
|
+ objectIndex: undefined,
|
|
|
|
+ propertyName: 'property',
|
|
|
|
+ propertyIndex: 'accessor'
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+
|
|
|
|
+ [
|
|
|
|
+ 'uuid.objectName[objectIndex].propertyName[propertyIndex]',
|
|
|
|
+ {
|
|
|
|
+ nodeName: 'uuid',
|
|
|
|
+ objectName: 'objectName',
|
|
|
|
+ objectIndex: 'objectIndex',
|
|
|
|
+ propertyName: 'propertyName',
|
|
|
|
+ propertyIndex: 'propertyIndex'
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+
|
|
|
|
+ [
|
|
|
|
+ 'parentName/nodeName.property',
|
|
|
|
+ {
|
|
|
|
+ // directoryName is currently unused.
|
|
|
|
+ nodeName: 'nodeName',
|
|
|
|
+ objectName: undefined,
|
|
|
|
+ objectIndex: undefined,
|
|
|
|
+ propertyName: 'property',
|
|
|
|
+ propertyIndex: undefined
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+
|
|
|
|
+ [
|
|
|
|
+ 'parentName/no.de.Name.property',
|
|
|
|
+ {
|
|
|
|
+ // directoryName is currently unused.
|
|
|
|
+ nodeName: 'no.de.Name',
|
|
|
|
+ objectName: undefined,
|
|
|
|
+ objectIndex: undefined,
|
|
|
|
+ propertyName: 'property',
|
|
|
|
+ propertyIndex: undefined
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+
|
|
|
|
+ [
|
|
|
|
+ 'parentName/parentName/nodeName.property[index]',
|
|
|
|
+ {
|
|
|
|
+ // directoryName is currently unused.
|
|
|
|
+ nodeName: 'nodeName',
|
|
|
|
+ objectName: undefined,
|
|
|
|
+ objectIndex: undefined,
|
|
|
|
+ propertyName: 'property',
|
|
|
|
+ propertyIndex: 'index'
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+
|
|
|
|
+ [
|
|
|
|
+ '.bone[Armature.DEF_cog].position',
|
|
|
|
+ {
|
|
|
|
+ nodeName: undefined,
|
|
|
|
+ objectName: 'bone',
|
|
|
|
+ objectIndex: 'Armature.DEF_cog',
|
|
|
|
+ propertyName: 'position',
|
|
|
|
+ propertyIndex: undefined
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+
|
|
|
|
+ [
|
|
|
|
+ 'scene:helium_balloon_model:helium_balloon_model.position',
|
|
|
|
+ {
|
|
|
|
+ nodeName: 'helium_balloon_model',
|
|
|
|
+ objectName: undefined,
|
|
|
|
+ objectIndex: undefined,
|
|
|
|
+ propertyName: 'position',
|
|
|
|
+ propertyIndex: undefined
|
|
|
|
+ }
|
|
|
|
+ ]
|
|
|
|
+ ];
|
|
|
|
+
|
|
|
|
+ paths.forEach( function ( path, i ) {
|
|
|
|
+
|
|
|
|
+ assert.smartEqual(
|
|
|
|
+ THREE.PropertyBinding.parseTrackName( path[ 0 ] ),
|
|
|
|
+ path[ 1 ],
|
|
|
|
+ 'Parses track name: ' + path[ 0 ]
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ } );
|
|
|
|
+});
|