UniVRM/Assets/VRM/Tests/InvalidFileNameTest.cs
Isamu Mogi d1cd273aa8 Windows以外でDetectInvalidCharactersテストが失敗する。テスト対象メソッドがもう使われていないのでテスト自体を削除
macOS上のUnity 2020.3.34f1でDetectInvalidCharactersテストが失敗していました。テスト対象メソッドの
Path.GetInvalidFileNameCharsの実装をUnityのレポジトリで確認したところ
https://github.com/Unity-Technologies/mono/blob/2020.3.34f1/mcs/class/corlib/System.IO/Path.cs#L560-L571
Windows以外の環境では、必ずテストに失敗することがわかりました。

調査したところ、Path.GetInvalidFileNameChars自体がUniVRMとそのサブモジュールですでに使われていないことが判明したため
テスト自体が不要になったと考え、削除しました。
2022-11-15 18:19:11 +09:00

35 lines
1.4 KiB
C#

using NUnit.Framework;
using System.Linq;
using UniGLTF;
namespace VRM
{
public class InvalidFileNameTest
{
[Test]
[TestCase("VRMVRMVRMVRMVRMVRMVRMVRMVRMVRMVRMVRMVRMVRMVRMVRMVRMVRMVRMVRMVRMVRMV", true)]
[TestCase("VRMFormatVRMFormatVRMFormatVRMFormatVRMFormatVRMFormatVRMFormat", false)]
[TestCase("UniVRMUniVRMUniVRMUniVRMUniVRMUniVRMUniVRMUniVRMUniVRMUniVRMUniVRM", true)]
[TestCase("UniVRMUniVRMUniVRMUniVRMUniVRMUniVRMUniVRMUniVRMUniVRMUniVRMUniV", false)]
[TestCase("AliciaAliciaAliciaAliciaAliciaAliciaAliciaAliciaAliciaAliciaAliciaAlicia", true)]
public void DetectFileNameLength(string fileName, bool isIllegal)
{
var result = NameValidator.IsFileNameLengthTooLong(fileName);
Assert.AreEqual(result, isIllegal);
}
[Test]
[TestCase("\u0000\u0042\u0062", true)]
[TestCase("\u0045\u0046\u0047\u0065\u0068\u0036", false)]
[TestCase("\u0043\u0045\u0047\u007F", true)]
[TestCase("\u0000\u0042\u0062", true)]
[TestCase("\u003A\u0039\u005C\u0060\u0074", false)]
[TestCase("\u005D\u006F\u001C\u007A\u0036\u0049", true)]
public void DetectControlCharacters(string fileName, bool isIllegal)
{
var result = fileName.Any(x => char.IsControl(x));
Assert.AreEqual(result, isIllegal);
}
}
}