Browse Source

Merge pull request #12549 from Itee/unit_tests

Unit tests - New PR
Mr.doob 7 years ago
parent
commit
2e379d9b86
100 changed files with 2153 additions and 346 deletions
  1. 3 3
      package.json
  2. 0 252
      test/Three.Unit.js
  3. 56 15
      test/rollup.unit.config.js
  4. 80 0
      test/three.editor.unit.js
  5. 3 0
      test/three.example.unit.js
  6. 290 0
      test/three.source.unit.js
  7. 26 0
      test/unit/UnitTests.html
  8. 20 0
      test/unit/editor/Command.tests.js
  9. 20 0
      test/unit/editor/Config.tests.js
  10. 20 0
      test/unit/editor/Editor.tests.js
  11. 20 0
      test/unit/editor/History.tests.js
  12. 20 0
      test/unit/editor/Loader.tests.js
  13. 20 0
      test/unit/editor/Menubar.Add.tests.js
  14. 20 0
      test/unit/editor/Menubar.Edit.tests.js
  15. 20 0
      test/unit/editor/Menubar.Examples.tests.js
  16. 20 0
      test/unit/editor/Menubar.File.tests.js
  17. 20 0
      test/unit/editor/Menubar.Help.tests.js
  18. 20 0
      test/unit/editor/Menubar.Play.tests.js
  19. 20 0
      test/unit/editor/Menubar.Status.tests.js
  20. 20 0
      test/unit/editor/Menubar.View.tests.js
  21. 20 0
      test/unit/editor/Menubar.tests.js
  22. 20 0
      test/unit/editor/Player.tests.js
  23. 20 0
      test/unit/editor/Script.tests.js
  24. 20 0
      test/unit/editor/Sidebar.Animation.tests.js
  25. 20 0
      test/unit/editor/Sidebar.Geometry.BoxGeometry.tests.js
  26. 20 0
      test/unit/editor/Sidebar.Geometry.BufferGeometry.tests.js
  27. 20 0
      test/unit/editor/Sidebar.Geometry.CircleGeometry.tests.js
  28. 20 0
      test/unit/editor/Sidebar.Geometry.CylinderGeometry.tests.js
  29. 20 0
      test/unit/editor/Sidebar.Geometry.Geometry.tests.js
  30. 20 0
      test/unit/editor/Sidebar.Geometry.IcosahedronGeometry.tests.js
  31. 20 0
      test/unit/editor/Sidebar.Geometry.LatheGeometry.tests.js
  32. 20 0
      test/unit/editor/Sidebar.Geometry.Modifiers.tests.js
  33. 20 0
      test/unit/editor/Sidebar.Geometry.PlaneGeometry.tests.js
  34. 20 0
      test/unit/editor/Sidebar.Geometry.SphereGeometry.tests.js
  35. 20 0
      test/unit/editor/Sidebar.Geometry.TeapotBufferGeometry.tests.js
  36. 20 0
      test/unit/editor/Sidebar.Geometry.TorusGeometry.tests.js
  37. 20 0
      test/unit/editor/Sidebar.Geometry.TorusKnotGeometry.tests.js
  38. 20 0
      test/unit/editor/Sidebar.Geometry.tests.js
  39. 20 0
      test/unit/editor/Sidebar.History.tests.js
  40. 20 0
      test/unit/editor/Sidebar.Material.tests.js
  41. 20 0
      test/unit/editor/Sidebar.Object.tests.js
  42. 20 0
      test/unit/editor/Sidebar.Project.tests.js
  43. 20 0
      test/unit/editor/Sidebar.Properties.tests.js
  44. 20 0
      test/unit/editor/Sidebar.Scene.tests.js
  45. 20 0
      test/unit/editor/Sidebar.Script.tests.js
  46. 20 0
      test/unit/editor/Sidebar.Settings.tests.js
  47. 20 0
      test/unit/editor/Sidebar.tests.js
  48. 20 0
      test/unit/editor/Storage.tests.js
  49. 20 0
      test/unit/editor/Toolbar.tests.js
  50. 20 0
      test/unit/editor/Viewport.Info.tests.js
  51. 20 0
      test/unit/editor/Viewport.tests.js
  52. 24 0
      test/unit/editor/commands/AddObjectCommand.tests.js
  53. 24 0
      test/unit/editor/commands/AddScriptCommand.tests.js
  54. 24 0
      test/unit/editor/commands/MoveObjectCommand.tests.js
  55. 24 0
      test/unit/editor/commands/MultiCmdsCommand.tests.js
  56. 24 0
      test/unit/editor/commands/RemoveObjectCommand.tests.js
  57. 24 0
      test/unit/editor/commands/RemoveScriptCommand.tests.js
  58. 24 0
      test/unit/editor/commands/SetColorCommand.tests.js
  59. 24 0
      test/unit/editor/commands/SetGeometryCommand.tests.js
  60. 24 0
      test/unit/editor/commands/SetGeometryValueCommand.tests.js
  61. 24 0
      test/unit/editor/commands/SetMaterialColorCommand.tests.js
  62. 24 0
      test/unit/editor/commands/SetMaterialCommand.tests.js
  63. 24 0
      test/unit/editor/commands/SetMaterialMapCommand.tests.js
  64. 24 0
      test/unit/editor/commands/SetMaterialValueCommand.tests.js
  65. 24 0
      test/unit/editor/commands/SetPositionCommand.tests.js
  66. 24 0
      test/unit/editor/commands/SetRotationCommand.tests.js
  67. 24 0
      test/unit/editor/commands/SetScaleCommand.tests.js
  68. 24 0
      test/unit/editor/commands/SetSceneCommand.tests.js
  69. 24 0
      test/unit/editor/commands/SetScriptValueCommand.tests.js
  70. 24 0
      test/unit/editor/commands/SetUuidCommand.tests.js
  71. 24 0
      test/unit/editor/commands/SetValueCommand.tests.js
  72. 0 0
      test/unit/editor/old_to_convert/AddObjectCommandAndRemoveObjectCommand.tests.js
  73. 0 0
      test/unit/editor/old_to_convert/AddScriptCommand.tests.js
  74. 0 0
      test/unit/editor/old_to_convert/MassUndoAndRedo.tests.js
  75. 0 0
      test/unit/editor/old_to_convert/MoveObjectCommand.tests.js
  76. 0 0
      test/unit/editor/old_to_convert/MultiCmdsCommand.tests.js
  77. 0 0
      test/unit/editor/old_to_convert/NegativeCases.tests.js
  78. 0 0
      test/unit/editor/old_to_convert/NestedDoUndoRedo.tests.js
  79. 0 0
      test/unit/editor/old_to_convert/RemoveScriptCommand.tests.js
  80. 2 0
      test/unit/editor/old_to_convert/Serialization.tests.js
  81. 0 0
      test/unit/editor/old_to_convert/SetColorCommand.tests.js
  82. 0 0
      test/unit/editor/old_to_convert/SetGeometryCommand.tests.js
  83. 0 0
      test/unit/editor/old_to_convert/SetGeometryValueCommand.tests.js
  84. 0 0
      test/unit/editor/old_to_convert/SetMaterialColorCommand.tests.js
  85. 0 0
      test/unit/editor/old_to_convert/SetMaterialCommand.tests.js
  86. 0 0
      test/unit/editor/old_to_convert/SetMaterialMapCommand.tests.js
  87. 0 0
      test/unit/editor/old_to_convert/SetMaterialValueCommand.tests.js
  88. 0 0
      test/unit/editor/old_to_convert/SetPositionCommand.tests.js
  89. 0 0
      test/unit/editor/old_to_convert/SetRotationCommand.tests.js
  90. 0 0
      test/unit/editor/old_to_convert/SetScaleCommand.tests.js
  91. 0 0
      test/unit/editor/old_to_convert/SetSceneCommand.tests.js
  92. 0 0
      test/unit/editor/old_to_convert/SetScriptValueCommand.tests.js
  93. 0 0
      test/unit/editor/old_to_convert/SetUuidCommand.tests.js
  94. 0 0
      test/unit/editor/old_to_convert/SetValueCommand.tests.js
  95. 27 30
      test/unit/qunit-utils.js
  96. 0 34
      test/unit/src/animation/AnimationAction.js
  97. 229 0
      test/unit/src/animation/AnimationAction.tests.js
  98. 0 6
      test/unit/src/animation/AnimationClip.js
  99. 77 0
      test/unit/src/animation/AnimationClip.tests.js
  100. 0 6
      test/unit/src/animation/AnimationMixer.js

+ 3 - 3
package.json

@@ -28,13 +28,13 @@
   },
   "scripts": {
     "build": "rollup -c",
-    "build-test": "rollup -c test/rollup.unit.config.js",
+    "build-test": "rollup -c test/rollup.unit.config.js -w",
     "build-uglify": "rollup -c && uglifyjs build/three.js -cm --preamble \"// threejs.org/license\" > build/three.min.js",
     "build-closure": "rollup -c && java -jar node_modules/google-closure-compiler/compiler.jar --warning_level=VERBOSE --jscomp_off=globalThis --jscomp_off=checkTypes --externs utils/build/externs.js --language_in=ECMASCRIPT5_STRICT --js build/three.js --js_output_file build/three.min.js",
     "dev": "concurrently --names \"ROLLUP,HTTP\" -c \"bgBlue.bold,bgGreen.bold\" \"rollup -c -w -m inline\" \"serve --port 8080\"",
     "start": "npm run dev",
     "lint": "eslint src",
-    "test": "rollup -c test/rollup.unit.config.js -w",
+    "test": "qunit test/unit/three.source.unit.js",
     "editor": "electron ./editor/main.js"
   },
   "keywords": [
@@ -55,7 +55,7 @@
     "eslint": "^4.1.1",
     "eslint-config-mdcs": "^4.2.2",
     "google-closure-compiler": "^20170521.0.0",
-    "qunitjs": "^2.1.1",
+    "qunitjs": "^2.4.0",
     "rollup": "^0.43.0",
     "rollup-watch": "^4.0.0",
     "serve": "^6.3.1",

+ 0 - 252
test/Three.Unit.js

@@ -1,252 +0,0 @@
-
-//src
-import '../src/polyfills.js';
-export * from '../src/constants.js';
-export * from '../src/Three.Legacy.js';
-export * from '../src/utils.js';
-
-//src/animation
-export { AnimationAction } from '../src/animation/AnimationAction.js';
-export { AnimationClip } from '../src/animation/AnimationClip.js';
-export { AnimationMixer } from '../src/animation/AnimationMixer.js';
-export { AnimationObjectGroup } from '../src/animation/AnimationObjectGroup.js';
-export { AnimationUtils } from '../src/animation/AnimationUtils.js';
-export { KeyframeTrack } from '../src/animation/KeyframeTrack.js';
-export { KeyframeTrackConstructor } from '../src/animation/KeyframeTrackConstructor.js';
-export { KeyframeTrackPrototype } from '../src/animation/KeyframeTrackPrototype.js';
-export { PropertyBinding } from '../src/animation/PropertyBinding.js';
-export { PropertyMixer } from '../src/animation/PropertyMixer.js';
-
-//src/animation/tracks
-export { BooleanKeyframeTrack } from '../src/animation/tracks/BooleanKeyframeTrack.js';
-export { ColorKeyframeTrack } from '../src/animation/tracks/ColorKeyframeTrack.js';
-export { NumberKeyframeTrack } from '../src/animation/tracks/NumberKeyframeTrack.js';
-export { QuaternionKeyframeTrack } from '../src/animation/tracks/QuaternionKeyframeTrack.js';
-export { StringKeyframeTrack } from '../src/animation/tracks/StringKeyframeTrack.js';
-export { VectorKeyframeTrack } from '../src/animation/tracks/VectorKeyframeTrack.js';
-
-
-//src/audio
-export { Audio } from '../src/audio/Audio.js';
-export { AudioAnalyser } from '../src/audio/AudioAnalyser.js';
-export { AudioContext } from '../src/audio/AudioContext.js';
-export { AudioListener } from '../src/audio/AudioListener.js';
-export { PositionalAudio } from '../src/audio/PositionalAudio.js';
-
-
-//src/cameras
-export { ArrayCamera } from '../src/cameras/ArrayCamera.js';
-export { Camera } from '../src/cameras/Camera.js';
-export { CubeCamera } from '../src/cameras/CubeCamera.js';
-export { OrthographicCamera } from '../src/cameras/OrthographicCamera.js';
-export { PerspectiveCamera } from '../src/cameras/PerspectiveCamera.js';
-export { StereoCamera } from '../src/cameras/StereoCamera.js';
-
-
-//src/core
-export * from '../src/core/BufferAttribute.js';
-export { BufferGeometry } from '../src/core/BufferGeometry.js';
-export { Clock } from '../src/core/Clock.js';
-export { DirectGeometry } from '../src/core/DirectGeometry.js';
-export { EventDispatcher } from '../src/core/EventDispatcher.js';
-export { Face3 } from '../src/core/Face3.js';
-export { Geometry } from '../src/core/Geometry.js';
-export { InstancedBufferAttribute } from '../src/core/InstancedBufferAttribute.js';
-export { InstancedBufferGeometry } from '../src/core/InstancedBufferGeometry.js';
-export { InstancedInterleavedBuffer } from '../src/core/InstancedInterleavedBuffer.js';
-export { InterleavedBuffer } from '../src/core/InterleavedBuffer.js';
-export { InterleavedBufferAttribute } from '../src/core/InterleavedBufferAttribute.js';
-export { Layers } from '../src/core/Layers.js';
-export { Object3D } from '../src/core/Object3D.js';
-export { Raycaster } from '../src/core/Raycaster.js';
-export { Uniform } from '../src/core/Uniform.js';
-
-
-//src/extras
-export { SceneUtils } from '../src/extras/SceneUtils.js';
-export { ShapeUtils } from '../src/extras/ShapeUtils.js';
-
-//src/extras/core
-export { Curve } from '../src/extras/core/Curve.js';
-export { CurvePath } from '../src/extras/core/CurvePath.js';
-export { Font } from '../src/extras/core/Font.js';
-export * from '../src/extras/core/Interpolations.js';
-export { Path } from '../src/extras/core/Path.js';
-export { PathPrototype } from '../src/extras/core/PathPrototype.js';
-export { Shape } from '../src/extras/core/Shape.js';
-export { ShapePath } from '../src/extras/core/ShapePath.js';
-
-//src/extras/curves
-export { ArcCurve } from '../src/extras/curves/ArcCurve.js';
-export { CatmullRomCurve3 } from '../src/extras/curves/CatmullRomCurve3.js';
-export { CubicBezierCurve } from '../src/extras/curves/CubicBezierCurve.js';
-export { CubicBezierCurve3 } from '../src/extras/curves/CubicBezierCurve3.js';
-export { EllipseCurve } from '../src/extras/curves/EllipseCurve.js';
-export { LineCurve } from '../src/extras/curves/LineCurve.js';
-export { LineCurve3 } from '../src/extras/curves/LineCurve3.js';
-export { QuadraticBezierCurve } from '../src/extras/curves/QuadraticBezierCurve.js';
-export { QuadraticBezierCurve3 } from '../src/extras/curves/QuadraticBezierCurve3.js';
-export { SplineCurve } from '../src/extras/curves/SplineCurve.js';
-
-//src/extras/objects
-export { ImmediateRenderObject } from '../src/extras/objects/ImmediateRenderObject.js';
-
-
-//src/geometries
-export * from '../src/geometries/Geometries.js';
-
-
-//src/helpers
-export { ArrowHelper } from '../src/helpers/ArrowHelper.js';
-export { AxesHelper } from '../src/helpers/AxesHelper.js';
-export { BoxHelper } from '../src/helpers/BoxHelper.js';
-export { Box3Helper } from '../src/helpers/Box3Helper.js';
-export { CameraHelper } from '../src/helpers/CameraHelper.js';
-export { DirectionalLightHelper } from '../src/helpers/DirectionalLightHelper.js';
-export { FaceNormalsHelper } from '../src/helpers/FaceNormalsHelper.js';
-export { GridHelper } from '../src/helpers/GridHelper.js';
-export { HemisphereLightHelper } from '../src/helpers/HemisphereLightHelper.js';
-export { PlaneHelper } from '../src/helpers/PlaneHelper.js';
-export { PointLightHelper } from '../src/helpers/PointLightHelper.js';
-export { PolarGridHelper } from '../src/helpers/PolarGridHelper.js';
-export { RectAreaLightHelper } from '../src/helpers/RectAreaLightHelper.js';
-export { SkeletonHelper } from '../src/helpers/SkeletonHelper.js';
-export { SpotLightHelper } from '../src/helpers/SpotLightHelper.js';
-export { VertexNormalsHelper } from '../src/helpers/VertexNormalsHelper.js';
-
-
-//src/lights
-export { AmbientLight } from '../src/lights/AmbientLight.js';
-export { DirectionalLight } from '../src/lights/DirectionalLight.js';
-export { DirectionalLightShadow } from '../src/lights/DirectionalLightShadow.js';
-export { HemisphereLight } from '../src/lights/HemisphereLight.js';
-export { Light } from '../src/lights/Light.js';
-export { LightShadow } from '../src/lights/LightShadow.js';
-export { PointLight } from '../src/lights/PointLight.js';
-export { RectAreaLight } from '../src/lights/RectAreaLight.js';
-export { SpotLight } from '../src/lights/SpotLight.js';
-export { SpotLightShadow } from '../src/lights/SpotLightShadow.js';
-
-
-//src/loaders
-export { AnimationLoader } from '../src/loaders/AnimationLoader.js';
-export { AudioLoader } from '../src/loaders/AudioLoader.js';
-export { BufferGeometryLoader } from '../src/loaders/BufferGeometryLoader.js';
-export { Cache } from '../src/loaders/Cache.js';
-export { CompressedTextureLoader } from '../src/loaders/CompressedTextureLoader.js';
-export { CubeTextureLoader } from '../src/loaders/CubeTextureLoader.js';
-export { DataTextureLoader } from '../src/loaders/DataTextureLoader.js';
-export { DefaultLoadingManager, LoadingManager } from '../src/loaders/LoadingManager.js';
-export { FileLoader } from '../src/loaders/FileLoader.js';
-export { FontLoader } from '../src/loaders/FontLoader.js';
-export { ImageLoader } from '../src/loaders/ImageLoader.js';
-export { JSONLoader } from '../src/loaders/JSONLoader.js';
-export { Loader } from '../src/loaders/Loader.js';
-export { MaterialLoader } from '../src/loaders/MaterialLoader.js';
-export { ObjectLoader } from '../src/loaders/ObjectLoader.js';
-export { TextureLoader } from '../src/loaders/TextureLoader.js';
-
-
-//src/materials
-export * from '../src/materials/Materials.js';
-
-
-//src/math
-export { _Math as Math } from '../src/math/Math.js';
-export { Box2 } from '../src/math/Box2.js';
-export { Box3 } from '../src/math/Box3.js';
-export { Color } from '../src/math/Color.js';
-export { Cylindrical } from '../src/math/Cylindrical.js';
-export { Euler } from '../src/math/Euler.js';
-export { Frustum } from '../src/math/Frustum.js';
-export { Interpolant } from '../src/math/Interpolant.js';
-export { Line3 } from '../src/math/Line3.js';
-export { Matrix3 } from '../src/math/Matrix3.js';
-export { Matrix4 } from '../src/math/Matrix4.js';
-export { Plane } from '../src/math/Plane.js';
-export { Quaternion } from '../src/math/Quaternion.js';
-export { Ray } from '../src/math/Ray.js';
-export { Sphere } from '../src/math/Sphere.js';
-export { Spherical } from '../src/math/Spherical.js';
-export { Triangle } from '../src/math/Triangle.js';
-export { Vector2 } from '../src/math/Vector2.js';
-export { Vector3 } from '../src/math/Vector3.js';
-export { Vector4 } from '../src/math/Vector4.js';
-
-//src/math/interpolants
-export { CubicInterpolant } from '../src/math/interpolants/CubicInterpolant.js';
-export { DiscreteInterpolant } from '../src/math/interpolants/DiscreteInterpolant.js';
-export { LinearInterpolant } from '../src/math/interpolants/LinearInterpolant.js';
-export { QuaternionLinearInterpolant } from '../src/math/interpolants/QuaternionLinearInterpolant.js';
-
-
-//src/objects
-export { Bone } from '../src/objects/Bone.js';
-export { Group } from '../src/objects/Group.js';
-export { LensFlare } from '../src/objects/LensFlare.js';
-export { Line } from '../src/objects/Line.js';
-export { LineLoop } from '../src/objects/LineLoop.js';
-export { LineSegments } from '../src/objects/LineSegments.js';
-export { LOD } from '../src/objects/LOD.js';
-export { Mesh } from '../src/objects/Mesh.js';
-export { Points } from '../src/objects/Points.js';
-export { Skeleton } from '../src/objects/Skeleton.js';
-export { SkinnedMesh } from '../src/objects/SkinnedMesh.js';
-export { Sprite } from '../src/objects/Sprite.js';
-
-
-//src/renderers
-export { WebGL2Renderer } from '../src/renderers/WebGL2Renderer.js';
-export { WebGLRenderer } from '../src/renderers/WebGLRenderer.js';
-export { WebGLRenderTarget } from '../src/renderers/WebGLRenderTarget.js';
-export { WebGLRenderTargetCube } from '../src/renderers/WebGLRenderTargetCube.js';
-
-//src/renderers/shaders
-export { ShaderChunk } from '../src/renderers/shaders/ShaderChunk.js';
-export { ShaderLib } from '../src/renderers/shaders/ShaderLib.js';
-export { UniformsLib } from '../src/renderers/shaders/UniformsLib.js';
-export { UniformsUtils } from '../src/renderers/shaders/UniformsUtils.js';
-
-//src/renderers/webgl
-export { WebGLAttributes } from '../src/renderers/webgl/WebGLAttributes.js';
-export { WebGLBackground } from '../src/renderers/webgl/WebGLBackground.js';
-export { WebGLBufferRenderer } from '../src/renderers/webgl/WebGLBufferRenderer.js';
-export { WebGLCapabilities } from '../src/renderers/webgl/WebGLCapabilities.js';
-export { WebGLClipping } from '../src/renderers/webgl/WebGLClipping.js';
-export { WebGLExtensions } from '../src/renderers/webgl/WebGLExtensions.js';
-export { WebGLFlareRenderer } from '../src/renderers/webgl/WebGLFlareRenderer.js';
-export { WebGLGeometries } from '../src/renderers/webgl/WebGLGeometries.js';
-export { WebGLIndexedBufferRenderer } from '../src/renderers/webgl/WebGLIndexedBufferRenderer.js';
-export { WebGLLights } from '../src/renderers/webgl/WebGLLights.js';
-export { WebGLMorphtargets } from '../src/renderers/webgl/WebGLMorphtargets.js';
-export { WebGLObjects } from '../src/renderers/webgl/WebGLObjects.js';
-export { WebGLProgram } from '../src/renderers/webgl/WebGLProgram.js';
-export { WebGLPrograms } from '../src/renderers/webgl/WebGLPrograms.js';
-export { WebGLProperties } from '../src/renderers/webgl/WebGLProperties.js';
-export { WebGLRenderLists } from '../src/renderers/webgl/WebGLRenderLists.js';
-export { WebGLShader } from '../src/renderers/webgl/WebGLShader.js';
-export { WebGLShadowMap } from '../src/renderers/webgl/WebGLShadowMap.js';
-export { WebGLSpriteRenderer } from '../src/renderers/webgl/WebGLSpriteRenderer.js';
-export { WebGLState } from '../src/renderers/webgl/WebGLState.js';
-export { WebGLTextures } from '../src/renderers/webgl/WebGLTextures.js';
-export { WebGLUniforms } from '../src/renderers/webgl/WebGLUniforms.js';
-export { WebGLUtils } from '../src/renderers/webgl/WebGLUtils.js';
-
-//src/renderers/webvr
-export { WebVRManager } from '../src/renderers/webvr/WebVRManager.js';
-
-
-//src/scenes
-export { Fog } from '../src/scenes/Fog.js';
-export { FogExp2 } from '../src/scenes/FogExp2.js';
-export { Scene } from '../src/scenes/Scene.js';
-
-
-//src/textures
-export { CanvasTexture } from '../src/textures/CanvasTexture.js';
-export { CompressedTexture } from '../src/textures/CompressedTexture.js';
-export { CubeTexture } from '../src/textures/CubeTexture.js';
-export { DataTexture } from '../src/textures/DataTexture.js';
-export { DepthTexture } from '../src/textures/DepthTexture.js';
-export { Texture } from '../src/textures/Texture.js';
-export { VideoTexture } from '../src/textures/VideoTexture.js';

+ 56 - 15
test/rollup.unit.config.js

@@ -23,18 +23,59 @@ function glsl() {
 
 }
 
-export default {
-	entry: 'test/Three.Unit.js',
-	indent: '\t',
-	plugins: [
-		glsl()
-	],
-	// sourceMap: true,
-	targets: [
-		{
-			format: 'umd',
-			moduleName: 'THREE',
-			dest: 'test/unit/three.unit.js'
-		}
-	]
-};
+export default [
+	// editor unit conf
+	{
+		entry: 'test/three.editor.unit.js',
+		indent: '\t',
+		plugins: [
+			glsl()
+		],
+		// sourceMap: true,
+		targets: [
+			{
+				format: 'umd',
+				moduleName: 'THREE',
+				dest: 'test/unit/three.editor.unit.js',
+				intro: 'QUnit.module( "Editor", () => {',
+				outro: '} );',
+			}
+		]
+	},
+	// example unit conf
+	{
+		entry: 'test/three.example.unit.js',
+		indent: '\t',
+		plugins: [
+			glsl()
+		],
+		// sourceMap: true,
+		targets: [
+			{
+				format: 'umd',
+				moduleName: 'THREE',
+				dest: 'test/unit/three.example.unit.js',
+				intro: 'QUnit.module( "Example", () => {',
+				outro: '} );',
+			}
+		]
+	},
+	// source unit conf
+	{
+		entry: 'test/three.source.unit.js',
+		indent: '\t',
+		plugins: [
+			glsl()
+		],
+		// sourceMap: true,
+		targets: [
+			{
+				format: 'umd',
+				moduleName: 'THREE',
+				dest: 'test/unit/three.source.unit.js',
+				intro: 'QUnit.module( "Source", () => {',
+				outro: '} );',
+			}
+		]
+	},
+];

+ 80 - 0
test/three.editor.unit.js

@@ -0,0 +1,80 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+
+// TODO (Itee) Editor is not es6 module so care to include order !!!
+// TODO: all views could not be testable, waiting modular code before implement units tests on them
+
+//editor
+import './unit/editor/Command.tests';
+import './unit/editor/Config.tests';
+import './unit/editor/Editor.tests';
+import './unit/editor/History.tests';
+import './unit/editor/Loader.tests';
+import './unit/editor/Player.tests';
+import './unit/editor/Script.tests';
+
+import './unit/editor/Menubar.tests';
+import './unit/editor/Menubar.Add.tests';
+import './unit/editor/Menubar.Edit.tests';
+import './unit/editor/Menubar.Examples.tests';
+import './unit/editor/Menubar.File.tests';
+import './unit/editor/Menubar.Help.tests';
+import './unit/editor/Menubar.Play.tests';
+import './unit/editor/Menubar.Status.tests';
+import './unit/editor/Menubar.View.tests';
+
+import './unit/editor/Sidebar.tests';
+import './unit/editor/Sidebar.Animation.tests';
+import './unit/editor/Sidebar.Geometry.tests';
+import './unit/editor/Sidebar.Geometry.BoxGeometry.tests';
+import './unit/editor/Sidebar.Geometry.BufferGeometry.tests';
+import './unit/editor/Sidebar.Geometry.CircleGeometry.tests';
+import './unit/editor/Sidebar.Geometry.CylinderGeometry.tests';
+import './unit/editor/Sidebar.Geometry.Geometry.tests';
+import './unit/editor/Sidebar.Geometry.IcosahedronGeometry.tests';
+import './unit/editor/Sidebar.Geometry.LatheGeometry.tests';
+import './unit/editor/Sidebar.Geometry.Modifiers.tests';
+import './unit/editor/Sidebar.Geometry.PlaneGeometry.tests';
+import './unit/editor/Sidebar.Geometry.SphereGeometry.tests';
+import './unit/editor/Sidebar.Geometry.TeapotBufferGeometry.tests';
+import './unit/editor/Sidebar.Geometry.TorusGeometry.tests';
+import './unit/editor/Sidebar.Geometry.TorusKnotGeometry.tests';
+import './unit/editor/Sidebar.History.tests';
+import './unit/editor/Sidebar.Material.tests';
+import './unit/editor/Sidebar.Object.tests';
+import './unit/editor/Sidebar.Project.tests';
+import './unit/editor/Sidebar.Properties.tests';
+import './unit/editor/Sidebar.Scene.tests';
+import './unit/editor/Sidebar.Script.tests';
+import './unit/editor/Sidebar.Settings.tests';
+
+import './unit/editor/Storage.tests';
+import './unit/editor/Toolbar.tests';
+import './unit/editor/Viewport.tests';
+import './unit/editor/Viewport.Info.tests';
+
+//editor/commands
+import './unit/editor/commands/AddObjectCommand.tests';
+import './unit/editor/commands/AddScriptCommand.tests';
+import './unit/editor/commands/MoveObjectCommand.tests';
+import './unit/editor/commands/MultiCmdsCommand.tests';
+import './unit/editor/commands/RemoveObjectCommand.tests';
+import './unit/editor/commands/RemoveScriptCommand.tests';
+import './unit/editor/commands/SetColorCommand.tests';
+import './unit/editor/commands/SetGeometryCommand.tests';
+import './unit/editor/commands/SetGeometryValueCommand.tests';
+import './unit/editor/commands/SetMaterialColorCommand.tests';
+import './unit/editor/commands/SetMaterialCommand.tests';
+import './unit/editor/commands/SetMaterialMapCommand.tests';
+import './unit/editor/commands/SetMaterialValueCommand.tests';
+import './unit/editor/commands/SetPositionCommand.tests';
+import './unit/editor/commands/SetRotationCommand.tests';
+import './unit/editor/commands/SetScaleCommand.tests';
+import './unit/editor/commands/SetSceneCommand.tests';
+import './unit/editor/commands/SetScriptValueCommand.tests';
+import './unit/editor/commands/SetUuidCommand.tests';
+import './unit/editor/commands/SetValueCommand.tests';
+
+//editor/others
+

+ 3 - 0
test/three.example.unit.js

@@ -0,0 +1,3 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */

+ 290 - 0
test/three.source.unit.js

@@ -0,0 +1,290 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+
+//src
+import './unit/src/constants.tests';
+import './unit/src/polyfills.tests';
+import './unit/src/utils.tests';
+
+
+//src/animation
+import './unit/src/animation/AnimationAction.tests';
+import './unit/src/animation/AnimationClip.tests';
+import './unit/src/animation/AnimationMixer.tests';
+import './unit/src/animation/AnimationObjectGroup.tests';
+import './unit/src/animation/AnimationUtils.tests';
+import './unit/src/animation/KeyframeTrack.tests';
+import './unit/src/animation/PropertyBinding.tests';
+import './unit/src/animation/PropertyMixer.tests';
+
+//src/animation/tracks
+import './unit/src/animation/tracks/BooleanKeyframeTrack.tests';
+import './unit/src/animation/tracks/ColorKeyframeTrack.tests';
+import './unit/src/animation/tracks/NumberKeyframeTrack.tests';
+import './unit/src/animation/tracks/QuaternionKeyframeTrack.tests';
+import './unit/src/animation/tracks/StringKeyframeTrack.tests';
+import './unit/src/animation/tracks/VectorKeyframeTrack.tests';
+
+
+//src/audio
+import './unit/src/audio/Audio.tests';
+import './unit/src/audio/AudioAnalyser.tests';
+import './unit/src/audio/AudioContext.tests';
+import './unit/src/audio/AudioListener.tests';
+import './unit/src/audio/PositionalAudio.tests';
+
+
+//src/cameras
+import './unit/src/cameras/ArrayCamera.tests';
+import './unit/src/cameras/Camera.tests';
+import './unit/src/cameras/CubeCamera.tests';
+import './unit/src/cameras/OrthographicCamera.tests';
+import './unit/src/cameras/PerspectiveCamera.tests';
+import './unit/src/cameras/StereoCamera.tests';
+
+
+//src/core
+import './unit/src/core/BufferAttribute.tests';
+import './unit/src/core/BufferGeometry.tests';
+import './unit/src/core/Clock.tests';
+import './unit/src/core/DirectGeometry.tests';
+import './unit/src/core/EventDispatcher.tests';
+import './unit/src/core/Face3.tests';
+import './unit/src/core/Geometry.tests';
+import './unit/src/core/InstancedBufferAttribute.tests';
+import './unit/src/core/InstancedBufferGeometry.tests';
+import './unit/src/core/InstancedInterleavedBuffer.tests';
+import './unit/src/core/InterleavedBuffer.tests';
+import './unit/src/core/InterleavedBufferAttribute.tests';
+import './unit/src/core/Layers.tests';
+import './unit/src/core/Object3D.tests';
+import './unit/src/core/Raycaster.tests';
+import './unit/src/core/Uniform.tests';
+
+
+//src/extras
+import './unit/src/extras/SceneUtils.tests';
+import './unit/src/extras/ShapeUtils.tests';
+
+//src/extras/core
+import './unit/src/extras/core/Curve.tests';
+import './unit/src/extras/core/CurvePath.tests';
+import './unit/src/extras/core/Font.tests';
+import './unit/src/extras/core/Interpolations.tests';
+import './unit/src/extras/core/Path.tests';
+import './unit/src/extras/core/PathPrototype.tests';
+import './unit/src/extras/core/Shape.tests';
+import './unit/src/extras/core/ShapePath.tests';
+
+//src/extras/curves
+import './unit/src/extras/curves/ArcCurve.tests';
+import './unit/src/extras/curves/CatmullRomCurve3.tests';
+import './unit/src/extras/curves/CubicBezierCurve.tests';
+import './unit/src/extras/curves/CubicBezierCurve3.tests';
+import './unit/src/extras/curves/EllipseCurve.tests';
+import './unit/src/extras/curves/LineCurve.tests';
+import './unit/src/extras/curves/LineCurve3.tests';
+import './unit/src/extras/curves/QuadraticBezierCurve.tests';
+import './unit/src/extras/curves/QuadraticBezierCurve3.tests';
+import './unit/src/extras/curves/SplineCurve.tests';
+
+//src/extras/objects
+import './unit/src/extras/objects/ImmediateRenderObject.tests';
+
+
+//src/geometries
+import './unit/src/geometries/BoxGeometry.tests';
+import './unit/src/geometries/CircleGeometry.tests';
+import './unit/src/geometries/ConeGeometry.tests';
+import './unit/src/geometries/CylinderGeometry.tests';
+import './unit/src/geometries/DodecahedronGeometry.tests';
+import './unit/src/geometries/EdgesGeometry.tests';
+import './unit/src/geometries/ExtrudeGeometry.tests';
+import './unit/src/geometries/IcosahedronGeometry.tests';
+import './unit/src/geometries/LatheGeometry.tests';
+import './unit/src/geometries/OctahedronGeometry.tests';
+import './unit/src/geometries/ParametricGeometry.tests';
+import './unit/src/geometries/PlaneGeometry.tests';
+import './unit/src/geometries/PolyhedronGeometry.tests';
+import './unit/src/geometries/RingGeometry.tests';
+import './unit/src/geometries/ShapeGeometry.tests';
+import './unit/src/geometries/SphereGeometry.tests';
+import './unit/src/geometries/TetrahedronGeometry.tests';
+import './unit/src/geometries/TextGeometry.tests';
+import './unit/src/geometries/TorusGeometry.tests';
+import './unit/src/geometries/TorusKnotGeometry.tests';
+import './unit/src/geometries/TubeGeometry.tests';
+import './unit/src/geometries/WireframeGeometry.tests';
+
+
+//src/helpers
+import './unit/src/helpers/ArrowHelper.tests';
+import './unit/src/helpers/AxesHelper.tests';
+import './unit/src/helpers/Box3Helper.tests';
+import './unit/src/helpers/BoxHelper.tests';
+import './unit/src/helpers/CameraHelper.tests';
+import './unit/src/helpers/DirectionalLightHelper.tests';
+import './unit/src/helpers/FaceNormalsHelper.tests';
+import './unit/src/helpers/GridHelper.tests';
+import './unit/src/helpers/HemisphereLightHelper.tests';
+import './unit/src/helpers/PlaneHelper.tests';
+import './unit/src/helpers/PointLightHelper.tests';
+import './unit/src/helpers/PolarGridHelper.tests';
+import './unit/src/helpers/RectAreaLightHelper.tests';
+import './unit/src/helpers/SkeletonHelper.tests';
+import './unit/src/helpers/SpotLightHelper.tests';
+import './unit/src/helpers/VertexNormalsHelper.tests';
+
+
+//src/lights
+import './unit/src/lights/AmbientLight.tests';
+import './unit/src/lights/DirectionalLight.tests';
+import './unit/src/lights/DirectionalLightShadow.tests';
+import './unit/src/lights/HemisphereLight.tests';
+import './unit/src/lights/Light.tests';
+import './unit/src/lights/LightShadow.tests';
+import './unit/src/lights/PointLight.tests';
+import './unit/src/lights/RectAreaLight.tests';
+import './unit/src/lights/SpotLight.tests';
+import './unit/src/lights/SpotLightShadow.tests';
+
+
+//src/loaders
+import './unit/src/loaders/AnimationLoader.tests';
+import './unit/src/loaders/AudioLoader.tests';
+import './unit/src/loaders/BufferGeometryLoader.tests';
+import './unit/src/loaders/Cache.tests';
+import './unit/src/loaders/CompressedTextureLoader.tests';
+import './unit/src/loaders/CubeTextureLoader.tests';
+import './unit/src/loaders/DataTextureLoader.tests';
+import './unit/src/loaders/FileLoader.tests';
+import './unit/src/loaders/FontLoader.tests';
+import './unit/src/loaders/ImageLoader.tests';
+import './unit/src/loaders/JSONLoader.tests';
+import './unit/src/loaders/Loader.tests';
+import './unit/src/loaders/LoadingManager.tests';
+import './unit/src/loaders/MaterialLoader.tests';
+import './unit/src/loaders/ObjectLoader.tests';
+import './unit/src/loaders/TextureLoader.tests';
+
+
+//src/materials
+import './unit/src/materials/LineBasicMaterial.tests';
+import './unit/src/materials/LineDashedMaterial.tests';
+import './unit/src/materials/Material.tests';
+import './unit/src/materials/MeshBasicMaterial.tests';
+import './unit/src/materials/MeshDepthMaterial.tests';
+import './unit/src/materials/MeshDistanceMaterial.tests';
+import './unit/src/materials/MeshLambertMaterial.tests';
+import './unit/src/materials/MeshNormalMaterial.tests';
+import './unit/src/materials/MeshPhongMaterial.tests';
+import './unit/src/materials/MeshPhysicalMaterial.tests';
+import './unit/src/materials/MeshStandardMaterial.tests';
+import './unit/src/materials/MeshToonMaterial.tests';
+import './unit/src/materials/PointsMaterial.tests';
+import './unit/src/materials/RawShaderMaterial.tests';
+import './unit/src/materials/ShaderMaterial.tests';
+import './unit/src/materials/ShadowMaterial.tests';
+import './unit/src/materials/SpriteMaterial.tests';
+
+
+//src/math
+import './unit/src/math/Box2.tests';
+import './unit/src/math/Box3.tests';
+import './unit/src/math/Color.tests';
+import './unit/src/math/Cylindrical.tests';
+import './unit/src/math/Euler.tests';
+import './unit/src/math/Frustum.tests';
+import './unit/src/math/Interpolant.tests';
+import './unit/src/math/Line3.tests';
+import './unit/src/math/Math.tests';
+import './unit/src/math/Matrix3.tests';
+import './unit/src/math/Matrix4.tests';
+import './unit/src/math/Plane.tests';
+import './unit/src/math/Quaternion.tests';
+import './unit/src/math/Ray.tests';
+import './unit/src/math/Sphere.tests';
+import './unit/src/math/Spherical.tests';
+import './unit/src/math/Triangle.tests';
+import './unit/src/math/Vector2.tests';
+import './unit/src/math/Vector3.tests';
+import './unit/src/math/Vector4.tests';
+
+//src/math/interpolants
+import './unit/src/math/interpolants/CubicInterpolant.tests';
+import './unit/src/math/interpolants/DiscreteInterpolant.tests';
+import './unit/src/math/interpolants/LinearInterpolant.tests';
+import './unit/src/math/interpolants/QuaternionLinearInterpolant.tests';
+
+
+//src/objects
+import './unit/src/objects/Bone.tests';
+import './unit/src/objects/Group.tests';
+import './unit/src/objects/LensFlare.tests';
+import './unit/src/objects/Line.tests';
+import './unit/src/objects/LineLoop.tests';
+import './unit/src/objects/LineSegments.tests';
+import './unit/src/objects/LOD.tests';
+import './unit/src/objects/Mesh.tests';
+import './unit/src/objects/Points.tests';
+import './unit/src/objects/Skeleton.tests';
+import './unit/src/objects/SkinnedMesh.tests';
+import './unit/src/objects/Sprite.tests';
+
+
+//src/renderers
+import './unit/src/renderers/WebGL2Renderer.tests';
+import './unit/src/renderers/WebGLRenderer.tests';
+import './unit/src/renderers/WebGLRenderTarget.tests';
+import './unit/src/renderers/WebGLRenderTargetCube.tests';
+
+//src/renderers/shaders
+import './unit/src/renderers/shaders/ShaderChunk.tests';
+import './unit/src/renderers/shaders/ShaderLib.tests';
+import './unit/src/renderers/shaders/UniformsLib.tests';
+import './unit/src/renderers/shaders/UniformsUtils.tests';
+
+//src/renderers/webgl
+import './unit/src/renderers/webgl/WebGLAttributes.tests';
+import './unit/src/renderers/webgl/WebGLBackground.tests';
+import './unit/src/renderers/webgl/WebGLBufferRenderer.tests';
+import './unit/src/renderers/webgl/WebGLCapabilities.tests';
+import './unit/src/renderers/webgl/WebGLClipping.tests';
+import './unit/src/renderers/webgl/WebGLExtensions.tests';
+import './unit/src/renderers/webgl/WebGLFlareRenderer.tests';
+import './unit/src/renderers/webgl/WebGLGeometries.tests';
+import './unit/src/renderers/webgl/WebGLIndexedBufferRenderer.tests';
+import './unit/src/renderers/webgl/WebGLLights.tests';
+import './unit/src/renderers/webgl/WebGLMorphtargets.tests';
+import './unit/src/renderers/webgl/WebGLObjects.tests';
+import './unit/src/renderers/webgl/WebGLProgram.tests';
+import './unit/src/renderers/webgl/WebGLPrograms.tests';
+import './unit/src/renderers/webgl/WebGLProperties.tests';
+import './unit/src/renderers/webgl/WebGLRenderLists.tests';
+import './unit/src/renderers/webgl/WebGLShader.tests';
+import './unit/src/renderers/webgl/WebGLShadowMap.tests';
+import './unit/src/renderers/webgl/WebGLSpriteRenderer.tests';
+import './unit/src/renderers/webgl/WebGLState.tests';
+import './unit/src/renderers/webgl/WebGLTextures.tests';
+import './unit/src/renderers/webgl/WebGLUniforms.tests';
+import './unit/src/renderers/webgl/WebGLUtils.tests';
+
+//src/renderers/webvr
+import './unit/src/renderers/webvr/WebVRManager.tests';
+
+
+//src/scenes
+import './unit/src/scenes/Fog.tests';
+import './unit/src/scenes/FogExp2.tests';
+import './unit/src/scenes/Scene.tests';
+
+
+//src/textures
+import './unit/src/textures/CanvasTexture.tests';
+import './unit/src/textures/CompressedTexture.tests';
+import './unit/src/textures/CubeTexture.tests';
+import './unit/src/textures/DataTexture.tests';
+import './unit/src/textures/DepthTexture.tests';
+import './unit/src/textures/Texture.tests';
+import './unit/src/textures/VideoTexture.tests';

+ 26 - 0
test/unit/UnitTests.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title>ThreeJS Unit Tests - Using Files in /src</title>
+        <link rel="stylesheet" href="../../node_modules/qunitjs/qunit/qunit.css">
+    </head>
+    <body>
+
+        <div id="qunit"></div>
+        <div id="qunit-fixture"></div>
+
+        <script src="../../node_modules/qunitjs/qunit/qunit.js"></script>
+
+        <!-- We need three.js because qunit-utils cannot be es6 module and use THREE stuff... -->
+        <script src="../../build/three.js"></script>
+        <script src="SmartComparer.js"></script>
+        <script src="qunit-utils.js"></script>
+
+        <!-- add sources to test below -->
+        <!--<script src="three.editor.unit.js"></script>-->
+        <!--<script src="three.example.unit.js"></script>-->
+        <script src="three.source.unit.js"></script>
+
+    </body>
+</html>

+ 20 - 0
test/unit/editor/Command.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Command';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Command', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Config.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Config';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Config', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Editor.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Editor';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Editor', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/History.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/History';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'History', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Loader.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Loader';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Loader', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Menubar.Add.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Menubar.Add';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Menubar.Add', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Menubar.Edit.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Menubar.Edit';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Menubar.Edit', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Menubar.Examples.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Menubar.Examples';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Menubar.Examples', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Menubar.File.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Menubar.File';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Menubar.File', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Menubar.Help.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Menubar.Help';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Menubar.Help', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Menubar.Play.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Menubar.Play';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Menubar.Play', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Menubar.Status.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Menubar.Status';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Menubar.Status', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Menubar.View.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Menubar.View';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Menubar.View', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Menubar.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Menubar';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Menubar', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Player.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Player';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Player', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Script.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Script';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Script', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Animation.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Animation';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Animation', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Geometry.BoxGeometry.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Geometry.BoxGeometry';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Geometry.BoxGeometry', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Geometry.BufferGeometry.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Geometry.BufferGeometry';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Geometry.BufferGeometry', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Geometry.CircleGeometry.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Geometry.CircleGeometry';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Geometry.CircleGeometry', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Geometry.CylinderGeometry.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Geometry.CylinderGeometry';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Geometry.CylinderGeometry', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Geometry.Geometry.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Geometry';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Geometry', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Geometry.IcosahedronGeometry.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Geometry.IcosahedronGeometry';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Geometry.IcosahedronGeometry', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Geometry.LatheGeometry.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Geometry.LatheGeometry';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Geometry.LatheGeometry', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Geometry.Modifiers.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Geometry.Modifiers';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Geometry.Modifiers', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Geometry.PlaneGeometry.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Geometry.PlaneGeometry';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Geometry.PlaneGeometry', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Geometry.SphereGeometry.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Geometry.SphereGeometry';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Geometry.SphereGeometry', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Geometry.TeapotBufferGeometry.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Geometry.TeapotBufferGeometry';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Geometry.TeapotBufferGeometry', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Geometry.TorusGeometry.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Geometry.TorusGeometry';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Geometry.TorusGeometry', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Geometry.TorusKnotGeometry.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Geometry.TorusKnotGeometry';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Geometry.TorusKnotGeometry', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Geometry.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Geometry';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Geometry', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.History.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.History';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.History', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Material.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Material';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Material', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Object.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Object';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Object', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Project.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Project';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Project', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Properties.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Properties';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Properties', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Scene.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Scene';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Scene', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Script.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Script';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Script', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.Settings.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar.Settings';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar.Settings', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Sidebar.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Sidebar';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Sidebar', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Storage.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Storage';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Storage', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Toolbar.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Toolbar';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Toolbar', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Viewport.Info.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Viewport.Info';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Viewport.Info', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 20 - 0
test/unit/editor/Viewport.tests.js

@@ -0,0 +1,20 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../editor/js/Viewport';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module.todo( 'Viewport', () => {
+
+		QUnit.test( 'write me !', ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/AddObjectCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/AddObjectCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'AddObjectCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/AddScriptCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/AddScriptCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'AddScriptCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/MoveObjectCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/MoveObjectCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'MoveObjectCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/MultiCmdsCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/MultiCmdsCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'MultiCmdsCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/RemoveObjectCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/RemoveObjectCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'RemoveObjectCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/RemoveScriptCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/RemoveScriptCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'RemoveScriptCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/SetColorCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/SetColorCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'SetColorCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/SetGeometryCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/SetGeometryCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'SetGeometryCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/SetGeometryValueCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/SetGeometryValueCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'SetGeometryValueCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/SetMaterialColorCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/SetMaterialColorCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'SetMaterialColorCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/SetMaterialCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/SetMaterialCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'SetMaterialCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/SetMaterialMapCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/SetMaterialMapCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'SetMaterialMapCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/SetMaterialValueCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/SetMaterialValueCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'SetMaterialValueCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/SetPositionCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/SetPositionCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'SetPositionCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/SetRotationCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/SetRotationCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'SetRotationCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/SetScaleCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/SetScaleCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'SetScaleCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/SetSceneCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/SetSceneCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'SetSceneCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/SetScriptValueCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/SetScriptValueCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'SetScriptValueCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/SetUuidCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/SetUuidCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'SetUuidCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 24 - 0
test/unit/editor/commands/SetValueCommand.tests.js

@@ -0,0 +1,24 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { NothingsIsExportedYet } from '../../../../editor/js/commands/SetValueCommand';
+
+export default QUnit.module( 'Editor', () => {
+
+	QUnit.module( 'Commands', () => {
+
+		QUnit.module.todo( 'SetValueCommand', () => {
+
+			QUnit.test( 'write me !', ( assert ) => {
+
+				assert.ok( false, "everything's gonna be alright" );
+
+			} );
+
+		} );
+
+	} );
+
+} );

+ 0 - 0
test/unit/editor/TestAddObjectCommandAndRemoveObjectCommand.js → test/unit/editor/old_to_convert/AddObjectCommandAndRemoveObjectCommand.tests.js


+ 0 - 0
test/unit/editor/TestAddScriptCommand.js → test/unit/editor/old_to_convert/AddScriptCommand.tests.js


+ 0 - 0
test/unit/editor/TestMassUndoAndRedo.js → test/unit/editor/old_to_convert/MassUndoAndRedo.tests.js


+ 0 - 0
test/unit/editor/TestMoveObjectCommand.js → test/unit/editor/old_to_convert/MoveObjectCommand.tests.js


+ 0 - 0
test/unit/editor/TestMultiCmdsCommand.js → test/unit/editor/old_to_convert/MultiCmdsCommand.tests.js


+ 0 - 0
test/unit/editor/TestNegativeCases.js → test/unit/editor/old_to_convert/NegativeCases.tests.js


+ 0 - 0
test/unit/editor/TestNestedDoUndoRedo.js → test/unit/editor/old_to_convert/NestedDoUndoRedo.tests.js


+ 0 - 0
test/unit/editor/TestRemoveScriptCommand.js → test/unit/editor/old_to_convert/RemoveScriptCommand.tests.js


+ 2 - 0
test/unit/editor/TestSerialization.js → test/unit/editor/old_to_convert/Serialization.tests.js

@@ -7,6 +7,8 @@ QUnit.module( "Serialization" );
 
 QUnit.test( "Test Serialization", function( assert ) {
 
+	assert.timeout( 1000 );
+
 	// setup
 	var editor = new Editor();
 	var done = assert.async();

+ 0 - 0
test/unit/editor/TestSetColorCommand.js → test/unit/editor/old_to_convert/SetColorCommand.tests.js


+ 0 - 0
test/unit/editor/TestSetGeometryCommand.js → test/unit/editor/old_to_convert/SetGeometryCommand.tests.js


+ 0 - 0
test/unit/editor/TestSetGeometryValueCommand.js → test/unit/editor/old_to_convert/SetGeometryValueCommand.tests.js


+ 0 - 0
test/unit/editor/TestSetMaterialColorCommand.js → test/unit/editor/old_to_convert/SetMaterialColorCommand.tests.js


+ 0 - 0
test/unit/editor/TestSetMaterialCommand.js → test/unit/editor/old_to_convert/SetMaterialCommand.tests.js


+ 0 - 0
test/unit/editor/TestSetMaterialMapCommand.js → test/unit/editor/old_to_convert/SetMaterialMapCommand.tests.js


+ 0 - 0
test/unit/editor/TestSetMaterialValueCommand.js → test/unit/editor/old_to_convert/SetMaterialValueCommand.tests.js


+ 0 - 0
test/unit/editor/TestSetPositionCommand.js → test/unit/editor/old_to_convert/SetPositionCommand.tests.js


+ 0 - 0
test/unit/editor/TestSetRotationCommand.js → test/unit/editor/old_to_convert/SetRotationCommand.tests.js


+ 0 - 0
test/unit/editor/TestSetScaleCommand.js → test/unit/editor/old_to_convert/SetScaleCommand.tests.js


+ 0 - 0
test/unit/editor/TestSetSceneCommand.js → test/unit/editor/old_to_convert/SetSceneCommand.tests.js


+ 0 - 0
test/unit/editor/TestSetScriptValueCommand.js → test/unit/editor/old_to_convert/SetScriptValueCommand.tests.js


+ 0 - 0
test/unit/editor/TestSetUuidCommand.js → test/unit/editor/old_to_convert/SetUuidCommand.tests.js


+ 0 - 0
test/unit/editor/TestSetValueCommand.js → test/unit/editor/old_to_convert/SetValueCommand.tests.js


+ 27 - 30
test/unit/qunit-utils.js

@@ -2,7 +2,7 @@
 // Custom QUnit assertions.
 //
 
-QUnit.assert.success = function( message ) {
+QUnit.assert.success = function ( message ) {
 
 	// Equivalent to assert( true, message );
 	this.pushResult( {
@@ -14,7 +14,7 @@ QUnit.assert.success = function( message ) {
 
 };
 
-QUnit.assert.fail = function( message ) {
+QUnit.assert.fail = function ( message ) {
 
 	// Equivalent to assert( false, message );
 	this.pushResult( {
@@ -26,9 +26,9 @@ QUnit.assert.fail = function( message ) {
 
 };
 
-QUnit.assert.numEqual = function( actual, expected, message ) {
+QUnit.assert.numEqual = function ( actual, expected, message ) {
 
-	var diff = Math.abs(actual - expected);
+	var diff = Math.abs( actual - expected );
 	message = message || ( actual + " should be equal to " + expected );
 	this.pushResult( {
 		result: diff < 0.1,
@@ -39,10 +39,10 @@ QUnit.assert.numEqual = function( actual, expected, message ) {
 
 };
 
-QUnit.assert.equalKey = function( obj, ref, key ) {
+QUnit.assert.equalKey = function ( obj, ref, key ) {
 
-	var actual = obj[key];
-	var expected = ref[key];
+	var actual = obj[ key ];
+	var expected = ref[ key ];
 	var message = actual + ' should be equal to ' + expected + ' for key "' + key + '"';
 	this.pushResult( {
 		result: actual == expected,
@@ -53,11 +53,11 @@ QUnit.assert.equalKey = function( obj, ref, key ) {
 
 };
 
-QUnit.assert.smartEqual = function( actual, expected, message ) {
+QUnit.assert.smartEqual = function ( actual, expected, message ) {
 
 	var cmp = new SmartComparer();
 
-	var same = cmp.areEqual(actual, expected);
+	var same = cmp.areEqual( actual, expected );
 	var msg = cmp.getDiagnostic() || message;
 
 	this.pushResult( {
@@ -69,8 +69,6 @@ QUnit.assert.smartEqual = function( actual, expected, message ) {
 
 };
 
-
-
 //
 //	GEOMETRY TEST HELPERS
 //
@@ -95,7 +93,8 @@ function checkGeometryClone( geom ) {
 
 }
 
-function getDifferingProp( geometryA, geometryB, excludedProperties) {
+function getDifferingProp( geometryA, geometryB, excludedProperties ) {
+
 	excludedProperties = excludedProperties || [];
 
 	var geometryKeys = Object.keys( geometryA );
@@ -103,22 +102,23 @@ function getDifferingProp( geometryA, geometryB, excludedProperties) {
 
 	var differingProp = undefined;
 
-	for ( var i = 0, l = geometryKeys.length; i < l; i++ ) {
+	for ( var i = 0, l = geometryKeys.length; i < l; i ++ ) {
 
 		var key = geometryKeys[ i ];
 
-		if ( excludedProperties.indexOf(key) >= 0 ) {
-			continue;
-		}
+		if ( excludedProperties.indexOf( key ) >= 0 ) continue;
 
 		if ( cloneKeys.indexOf( key ) < 0 ) {
+
 			differingProp = key;
 			break;
+
 		}
 
 	}
 
 	return differingProp;
+
 }
 
 // Compare json file with its source geometry.
@@ -130,7 +130,7 @@ function checkGeometryJsonWriting( geom, json ) {
 	QUnit.assert.equal( json.id, undefined, "should not persist id" );
 
 	var params = geom.parameters;
-	if ( !params ) {
+	if ( ! params ) {
 
 		return;
 
@@ -138,7 +138,7 @@ function checkGeometryJsonWriting( geom, json ) {
 
 	// All parameters from geometry should be persisted.
 	var keys = Object.keys( params );
-	for ( var i = 0, l = keys.length; i < l; i++ ) {
+	for ( var i = 0, l = keys.length; i < l; i ++ ) {
 
 		QUnit.assert.equalKey( params, json, keys[ i ] );
 
@@ -148,12 +148,13 @@ function checkGeometryJsonWriting( geom, json ) {
 	// json is flat. Ignore first level json properties that are not parameters.
 	var notParameters = [ "metadata", "uuid", "type" ];
 	var keys = Object.keys( json );
-	for ( var i = 0, l = keys.length; i < l; i++ ) {
+	for ( var i = 0, l = keys.length; i < l; i ++ ) {
 
 		var key = keys[ i ];
-		if ( notParameters.indexOf( key) === -1 ) QUnit.assert.equalKey( params, json, key );
+		if ( notParameters.indexOf( key ) === - 1 ) QUnit.assert.equalKey( params, json, key );
 
 	}
+
 }
 
 // Check parsing and reconstruction of json geometry
@@ -167,10 +168,8 @@ function checkGeometryJsonReading( json, geom ) {
 	QUnit.assert.ok( output[ geom.uuid ], 'geometry matching source uuid not in output' );
 	// 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 differing = getDifferingProp( output[ geom.uuid ], geom, [ 'bones' ] );
+	if ( differing ) console.log( differing );
 
 	var excludedProperties = [ 'bones' ];
 
@@ -179,6 +178,7 @@ function checkGeometryJsonReading( json, geom ) {
 
 	differingProp = getDifferingProp( geom, output[ geom.uuid ], excludedProperties );
 	QUnit.assert.ok( differingProp === undefined, 'properties are equal' );
+
 }
 
 // Verify geom -> json -> geom
@@ -197,11 +197,11 @@ function checkFinite( geom ) {
 
 	var vertices = geom.vertices || [];
 
-	for ( var i = 0, l = vertices.length; i < l; i++ ) {
+	for ( var i = 0, l = vertices.length; i < l; i ++ ) {
 
 		var v = geom.vertices[ i ];
 
-		if ( !( isFinite( v.x ) || isFinite( v.y ) || isFinite( v.z ) ) ) {
+		if ( ! ( isFinite( v.x ) || isFinite( v.y ) || isFinite( v.z ) ) ) {
 
 			allVerticesAreFinite = false;
 			break;
@@ -219,7 +219,7 @@ function checkFinite( geom ) {
 // Run common geometry tests.
 function runStdGeometryTests( assert, geometries ) {
 
-	for ( var i = 0, l = geometries.length; i < l; i++ ) {
+	for ( var i = 0, l = geometries.length; i < l; i ++ ) {
 
 		var geom = geometries[ i ];
 
@@ -235,9 +235,6 @@ function runStdGeometryTests( assert, geometries ) {
 
 }
 
-
-
-
 //
 //	LIGHT TEST HELPERS
 //

+ 0 - 34
test/unit/src/animation/AnimationAction.js

@@ -1,34 +0,0 @@
-/**
- * @author TristanVALCKE / https://github.com/TristanVALCKE
- */
-
-//Todo
-console.warn("Todo: Unit tests of AnimationAction")
-
-//QUnit.module( "AnimationAction" );
-//
-//QUnit.test( "Instancing", function( assert ) {
-//
-//    var mixer = new THREE.AnimationMixer();
-//    var clip = new THREE.AnimationClip();
-//
-//    assert.throws(
-//        function() {
-//            new THREE.AnimationAction()
-//        },
-//        new Error("Mixer can't be null or undefined !"),
-//        "raised error instance about undefined or null mixer"
-//    );
-//
-//    assert.throws(
-//        function() {
-//            new THREE.AnimationAction(mixer)
-//        },
-//        new Error("Clip can't be null or undefined !"),
-//        "raised error instance about undefined or null clip"
-//    );
-//
-//    var animationAction = new THREE.AnimationAction(mixer, clip);
-//    assert.ok( animationAction, "animationAction instanciated" );
-//
-//} );

+ 229 - 0
test/unit/src/animation/AnimationAction.tests.js

@@ -0,0 +1,229 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { AnimationAction } from '../../../../src/animation/AnimationAction';
+import { AnimationMixer } from '../../../../src/animation/AnimationMixer';
+import { AnimationClip } from '../../../../src/animation/AnimationClip';
+
+export default QUnit.module( 'Animation', () => {
+
+	QUnit.module.todo( 'AnimationAction', () => {
+
+		// INSTANCING
+		QUnit.test( "Instancing", ( assert ) => {
+
+			var mixer = new AnimationMixer();
+			var clip = new AnimationClip();
+
+			assert.throws(
+				function () {
+
+					new AnimationAction();
+
+				},
+				new Error( "Mixer can't be null or undefined !" ),
+				"raised error instance about undefined or null mixer"
+			);
+
+			assert.throws(
+				function () {
+
+					new AnimationAction( mixer );
+
+				},
+				new Error( "Clip can't be null or undefined !" ),
+				"raised error instance about undefined or null clip"
+			);
+
+			var animationAction = new AnimationAction( mixer, clip );
+			assert.ok( animationAction, "animationAction instanciated" );
+
+		} );
+
+		// PRIVATE STUFF
+		QUnit.test( "_update", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "_updateWeight", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "_updateTimeScale", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "_updateTime", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "_setEndings", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "_scheduleFading", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		// PUBLIC STUFF
+		QUnit.test( "play", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "stop", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "reset", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "isRunning", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "isScheduled", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "startAt", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "setLoop", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "setEffectiveWeight", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "getEffectiveWeight", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "fadeIn", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "fadeOut", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "crossFadeFrom", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "crossFadeTo", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "stopFading", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "setEffectiveTimeScale", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "getEffectiveTimeScale", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "setDuration", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "syncWith", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "halt", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "warp", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "stopWarping", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "getMixer", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "getClip", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "getRoot", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 0 - 6
test/unit/src/animation/AnimationClip.js

@@ -1,6 +0,0 @@
-/**
- * @author TristanVALCKE / https://github.com/TristanVALCKE
- */
-
-//Todo
-console.warn("Todo: Unit tests of AnimationClip")

+ 77 - 0
test/unit/src/animation/AnimationClip.tests.js

@@ -0,0 +1,77 @@
+/**
+ * @author TristanVALCKE / https://github.com/Itee
+ */
+/* global QUnit */
+
+import { AnimationClip } from '../../../../src/animation/AnimationClip';
+
+export default QUnit.module( 'Animation', () => {
+
+	QUnit.module.todo( 'AnimationClip', () => {
+
+		// INSTANCING
+		QUnit.test( "Instancing", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		// STATIC STUFF
+		QUnit.test( "parse", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "toJSON", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "CreateFromMorphTargetSequence", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "findByName", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "CreateClipsFromMorphTargetSequences", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "parseAnimation", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		// PUBLIC STUFF
+		QUnit.test( "resetDuration", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "trim", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+		QUnit.test( "optimize", ( assert ) => {
+
+			assert.ok( false, "everything's gonna be alright" );
+
+		} );
+
+	} );
+
+} );

+ 0 - 6
test/unit/src/animation/AnimationMixer.js

@@ -1,6 +0,0 @@
-/**
- * @author TristanVALCKE / https://github.com/TristanVALCKE
- */
-
-//Todo
-console.warn("Todo: Unit tests of AnimationMixer")

Some files were not shown because too many files changed in this diff