diff --git a/Assets/VRM10/Tests/ExpressionTests.cs b/Assets/VRM10/Tests/ExpressionTests.cs index 5d2a86592..2095f4438 100644 --- a/Assets/VRM10/Tests/ExpressionTests.cs +++ b/Assets/VRM10/Tests/ExpressionTests.cs @@ -1,4 +1,3 @@ -using System.IO; using System.Linq; using NUnit.Framework; using UnityEngine; @@ -7,34 +6,10 @@ namespace UniVRM10.Test { public class ExpressionTests { - static string AliciaPath - { - get - { - return Path.GetFullPath(Application.dataPath + "/../Tests/Models/Alicia_vrm-0.51/AliciaSolid_vrm-0.51.vrm") - .Replace("\\", "/"); - } - } - - static VRM10Controller Load() - { - Vrm10Data.TryParseOrMigrate(AliciaPath, true, out Vrm10Data vrm); - using (var loader = new Vrm10Importer(vrm)) - { - var task = loader.LoadAsync(new VRMShaders.ImmediateCaller()); - task.Wait(); - - var instance = task.Result; - - return instance.GetComponent(); - } - - } - [Test] public void DuplicatedMaterialColorBindings() { - var controller = Load(); + var controller = TestAsset.LoadAlicia(); var src = controller.Vrm.Expression.Aa.MaterialColorBindings.ToList(); @@ -63,7 +38,7 @@ namespace UniVRM10.Test [Test] public void DuplicatedMaterialUVBindings() { - var controller = Load(); + var controller = TestAsset.LoadAlicia(); var renderers = controller.GetComponentsInChildren(); var name = renderers[0].sharedMaterials[0].name; diff --git a/Assets/VRM10/Tests/LoadTests.cs b/Assets/VRM10/Tests/LoadTests.cs new file mode 100644 index 000000000..4f88785ef --- /dev/null +++ b/Assets/VRM10/Tests/LoadTests.cs @@ -0,0 +1,23 @@ +using NUnit.Framework; + +namespace UniVRM10.Test +{ + public class LoadTests + { + [Test] + public void EmptyThumbnailName() + { + Assert.True(Vrm10Data.TryParseOrMigrate(TestAsset.AliciaPath, true, out Vrm10Data vrm)); + + var index = vrm.VrmExtension.Meta.ThumbnailImage.Value; + + // empty thumbnail name + vrm.Data.GLTF.images[index].name = null; + + using (var loader = new Vrm10Importer(vrm)) + { + loader.LoadAsync(new VRMShaders.ImmediateCaller()).Wait(); + } + } + } +} diff --git a/Assets/VRM10/Tests/LoadTests.cs.meta b/Assets/VRM10/Tests/LoadTests.cs.meta new file mode 100644 index 000000000..2dc13ac5f --- /dev/null +++ b/Assets/VRM10/Tests/LoadTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c9a9a3ce2deae9c4791d816aa189df3d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/VRM10/Tests/TestAsset.cs b/Assets/VRM10/Tests/TestAsset.cs new file mode 100644 index 000000000..a9ef5e72c --- /dev/null +++ b/Assets/VRM10/Tests/TestAsset.cs @@ -0,0 +1,31 @@ +using System.IO; +using UnityEngine; + +namespace UniVRM10 +{ + public static class TestAsset + { + public static string AliciaPath + { + get + { + return Path.GetFullPath(Application.dataPath + "/../Tests/Models/Alicia_vrm-0.51/AliciaSolid_vrm-0.51.vrm") + .Replace("\\", "/"); + } + } + + public static VRM10Controller LoadAlicia() + { + Vrm10Data.TryParseOrMigrate(AliciaPath, true, out Vrm10Data vrm); + using (var loader = new Vrm10Importer(vrm)) + { + var task = loader.LoadAsync(new VRMShaders.ImmediateCaller()); + task.Wait(); + + var instance = task.Result; + + return instance.GetComponent(); + } + } + } +} diff --git a/Assets/VRM10/Tests/TestAsset.cs.meta b/Assets/VRM10/Tests/TestAsset.cs.meta new file mode 100644 index 000000000..f9145dda7 --- /dev/null +++ b/Assets/VRM10/Tests/TestAsset.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b18f57dcd7d3c19469aa4842b2ee6ae1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: