From 3321480843e0fbaee9a37c92167a08e2e9d4c937 Mon Sep 17 00:00:00 2001 From: yutopp Date: Fri, 1 Feb 2019 19:02:57 +0900 Subject: [PATCH] Now sexualUssageName field in meta is required --- .../Editor/Tests/UniVRMSerializeTests.cs | 48 ++++++++++++++++++- .../UniVRM/Scripts/Format/glTF_VRM_Meta.cs | 2 +- 2 files changed, 47 insertions(+), 3 deletions(-) diff --git a/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs b/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs index 7cd56f9b2..21dd82844 100644 --- a/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs +++ b/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs @@ -242,10 +242,11 @@ namespace VRM licenseName = "CC0", allowedUserName = "OnlyAuthor", violentUssageName = "Disallow", + sexualUssageName = "Disallow", }; var json = model.ToJson(); - Assert.AreEqual(@"{""texture"":-1,""allowedUserName"":""OnlyAuthor"",""violentUssageName"":""Disallow"",""licenseName"":""CC0""}", json); + Assert.AreEqual(@"{""texture"":-1,""allowedUserName"":""OnlyAuthor"",""violentUssageName"":""Disallow"",""sexualUssageName"":""Disallow"",""licenseName"":""CC0""}", json); Debug.Log(json); var c = new JsonSchemaValidationContext("") @@ -254,7 +255,7 @@ namespace VRM }; var json2 = JsonSchema.FromType().Serialize(model, c); // NOTE: New serializer outputs values which will not be used... - Assert.AreEqual(@"{""allowedUserName"":""OnlyAuthor"",""violentUssageName"":""Disallow"",""licenseName"":""CC0""}",json2); + Assert.AreEqual(@"{""allowedUserName"":""OnlyAuthor"",""violentUssageName"":""Disallow"",""sexualUssageName"":""Disallow"",""licenseName"":""CC0""}",json2); } [Test] @@ -279,6 +280,7 @@ namespace VRM allowedUserName = "OnlyAuthor", violentUssageName = "Disallow", licenseName = "_INVALID_SOME_THING_", + sexualUssageName = "Disallow", }; var c = new JsonSchemaValidationContext("") @@ -297,6 +299,7 @@ namespace VRM // allowedUserName = "OnlyAuthor", licenseName = "CC0", violentUssageName = "Disallow", + sexualUssageName = "Disallow", }; var c = new JsonSchemaValidationContext("") @@ -314,6 +317,7 @@ namespace VRM { allowedUserName = "_INVALID_SOME_THING_", violentUssageName = "Disallow", + sexualUssageName = "Disallow", licenseName = "CC0", }; @@ -332,6 +336,7 @@ namespace VRM { allowedUserName = "OnlyAuthor", //violentUssageName = "Disallow", + sexualUssageName = "Disallow", licenseName = "CC0", }; @@ -350,6 +355,7 @@ namespace VRM { allowedUserName = "OnlyAuthor", violentUssageName = "_INVALID_SOME_THING_", + sexualUssageName = "Disallow", licenseName = "CC0", }; @@ -362,6 +368,44 @@ namespace VRM ); Assert.AreEqual("[violentUssageName.String] _INVALID_SOME_THING_ is not valid enum", ex.Message); } + + { + var model = new glTF_VRM_Meta() + { + allowedUserName = "OnlyAuthor", + violentUssageName = "Disallow", + //sexualUssageName = "Disallow", + licenseName = "CC0", + }; + + var c = new JsonSchemaValidationContext("") + { + EnableDiagnosisForNotRequiredFields = true, + }; + var ex = Assert.Throws( + () => JsonSchema.FromType().Serialize(model, c) + ); + Assert.AreEqual("[sexualUssageName.String] null", ex.Message); + } + + { + var model = new glTF_VRM_Meta() + { + allowedUserName = "OnlyAuthor", + violentUssageName = "Disallow", + sexualUssageName = "_INVALID_SOME_THING_", + licenseName = "CC0", + }; + + var c = new JsonSchemaValidationContext("") + { + EnableDiagnosisForNotRequiredFields = true, + }; + var ex = Assert.Throws( + () => JsonSchema.FromType().Serialize(model, c) + ); + Assert.AreEqual("[sexualUssageName.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 6dbf9d4e4..279dc5839 100644 --- a/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs +++ b/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs @@ -89,7 +89,7 @@ namespace VRM set { violentUssageName = value.ToString(); } } - [JsonSchema(Description = "Permission to perform sexual acts with this avatar", EnumValues = new object[] + [JsonSchema(Required = true, Description = "Permission to perform sexual acts with this avatar", EnumValues = new object[] { "Disallow", "Allow",