From 1632e9de40e4f45a8847eca23b88bed4b91efd24 Mon Sep 17 00:00:00 2001 From: yutopp Date: Fri, 1 Feb 2019 18:59:59 +0900 Subject: [PATCH] Now violentUssageName field in meta is required --- .../Editor/Tests/UniVRMSerializeTests.cs | 45 ++++++++++++++++++- .../UniVRM/Scripts/Format/glTF_VRM_Meta.cs | 2 +- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs b/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs index 24305c6fd..7cd56f9b2 100644 --- a/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs +++ b/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs @@ -241,10 +241,11 @@ namespace VRM { licenseName = "CC0", allowedUserName = "OnlyAuthor", + violentUssageName = "Disallow", }; var json = model.ToJson(); - Assert.AreEqual(@"{""texture"":-1,""allowedUserName"":""OnlyAuthor"",""licenseName"":""CC0""}", json); + Assert.AreEqual(@"{""texture"":-1,""allowedUserName"":""OnlyAuthor"",""violentUssageName"":""Disallow"",""licenseName"":""CC0""}", json); Debug.Log(json); var c = new JsonSchemaValidationContext("") @@ -253,7 +254,7 @@ namespace VRM }; var json2 = JsonSchema.FromType().Serialize(model, c); // NOTE: New serializer outputs values which will not be used... - Assert.AreEqual(@"{""allowedUserName"":""OnlyAuthor"",""licenseName"":""CC0""}",json2); + Assert.AreEqual(@"{""allowedUserName"":""OnlyAuthor"",""violentUssageName"":""Disallow"",""licenseName"":""CC0""}",json2); } [Test] @@ -276,6 +277,7 @@ namespace VRM var model = new glTF_VRM_Meta() { allowedUserName = "OnlyAuthor", + violentUssageName = "Disallow", licenseName = "_INVALID_SOME_THING_", }; @@ -292,7 +294,9 @@ namespace VRM { var model = new glTF_VRM_Meta() { + // allowedUserName = "OnlyAuthor", licenseName = "CC0", + violentUssageName = "Disallow", }; var c = new JsonSchemaValidationContext("") @@ -309,6 +313,7 @@ namespace VRM var model = new glTF_VRM_Meta() { allowedUserName = "_INVALID_SOME_THING_", + violentUssageName = "Disallow", licenseName = "CC0", }; @@ -321,6 +326,42 @@ namespace VRM ); Assert.AreEqual("[allowedUserName.String] _INVALID_SOME_THING_ is not valid enum", ex.Message); } + + { + var model = new glTF_VRM_Meta() + { + allowedUserName = "OnlyAuthor", + //violentUssageName = "Disallow", + licenseName = "CC0", + }; + + var c = new JsonSchemaValidationContext("") + { + EnableDiagnosisForNotRequiredFields = true, + }; + var ex = Assert.Throws( + () => JsonSchema.FromType().Serialize(model, c) + ); + Assert.AreEqual("[violentUssageName.String] null", ex.Message); + } + + { + var model = new glTF_VRM_Meta() + { + allowedUserName = "OnlyAuthor", + violentUssageName = "_INVALID_SOME_THING_", + licenseName = "CC0", + }; + + var c = new JsonSchemaValidationContext("") + { + EnableDiagnosisForNotRequiredFields = true, + }; + var ex = Assert.Throws( + () => JsonSchema.FromType().Serialize(model, c) + ); + Assert.AreEqual("[violentUssageName.String] _INVALID_SOME_THING_ is not valid enum", ex.Message); + } } // TODO: Move to another suitable location diff --git a/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs b/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs index d88bb224b..6dbf9d4e4 100644 --- a/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs +++ b/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs @@ -77,7 +77,7 @@ namespace VRM } } - [JsonSchema(Description = "Permission to perform violent acts with this avatar", EnumValues = new object[] + [JsonSchema(Required = true, Description = "Permission to perform violent acts with this avatar", EnumValues = new object[] { "Disallow", "Allow",