fix: apply direct runtime paths and respect taskbar
This commit is contained in:
@@ -22,11 +22,10 @@ public sealed class LegacyOperatorSettingsTests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SceneValidation_RequiresEveryActiveSceneAndBuiltInAssetAndAllowsMissingExternalVideo()
|
||||
public void SceneValidation_AcceptsAnEmptyCutsDirectoryAsADirectRuntimePath()
|
||||
{
|
||||
using var directory = new TemporaryDirectory();
|
||||
var sceneDirectory = directory.CreateDirectory("Cuts");
|
||||
WriteValidSceneFiles(sceneDirectory);
|
||||
|
||||
var result = LegacyOperatorFolderValidator.Validate(
|
||||
LegacyOperatorSettingsFolderKind.Scene,
|
||||
@@ -34,91 +33,33 @@ public sealed class LegacyOperatorSettingsTests
|
||||
|
||||
Assert.True(result.IsValid);
|
||||
Assert.Equal(Path.GetFullPath(sceneDirectory), result.Folder!.CanonicalPath);
|
||||
Assert.Equal("fixture-scene", File.ReadAllText(
|
||||
Path.Combine(result.Folder.CanonicalPath, "5001.t2s")));
|
||||
Assert.Contains("Cuts", result.Folder.AbbreviatedPath);
|
||||
Assert.InRange(
|
||||
result.Folder.AbbreviatedPath.Length,
|
||||
1,
|
||||
LegacyOperatorFolderValidator.DefaultDisplayCharacters);
|
||||
Assert.False(result.Folder.DatabaseIniDetected);
|
||||
Assert.Equal(
|
||||
LegacyOperatorFolderValidator.OptionalExternalAssetRelativePaths.Count,
|
||||
result.Folder.MissingOptionalExternalAssetCount);
|
||||
Assert.Equal(0, result.Folder.MissingOptionalExternalAssetCount);
|
||||
Assert.Null(result.WarningMessage);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SceneValidation_BaselineOnlyIsRejectedInsteadOfBreakingOtherScenesAfterRestart()
|
||||
public void SceneValidation_DoesNotInspectPartialScenesOrVideoFiles()
|
||||
{
|
||||
using var directory = new TemporaryDirectory();
|
||||
var sceneDirectory = directory.CreateDirectory("partial-Cuts");
|
||||
File.WriteAllText(Path.Combine(sceneDirectory, "5001.t2s"), "baseline");
|
||||
var videoDirectory = Directory.CreateDirectory(
|
||||
Path.Combine(sceneDirectory, "Video")).FullName;
|
||||
File.WriteAllBytes(Path.Combine(videoDirectory, "partial.vrv"), []);
|
||||
|
||||
var result = LegacyOperatorFolderValidator.Validate(
|
||||
LegacyOperatorSettingsFolderKind.Scene,
|
||||
sceneDirectory);
|
||||
|
||||
Assert.False(result.IsValid);
|
||||
Assert.Equal(
|
||||
LegacyOperatorFolderValidationFailure.RequiredFileMissing,
|
||||
result.Failure);
|
||||
Assert.Null(result.Folder);
|
||||
AssertPathFree(result.WarningMessage, sceneDirectory);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SceneValidation_MissingOneActiveSceneOrBuiltInAssetIsRejected()
|
||||
{
|
||||
using var directory = new TemporaryDirectory();
|
||||
var missingSceneDirectory = directory.CreateDirectory("missing-scene");
|
||||
WriteValidSceneFiles(missingSceneDirectory);
|
||||
File.Delete(Path.Combine(missingSceneDirectory, "5079.t2s"));
|
||||
var missingScene = LegacyOperatorFolderValidator.Validate(
|
||||
LegacyOperatorSettingsFolderKind.Scene,
|
||||
missingSceneDirectory);
|
||||
|
||||
var missingAssetDirectory = directory.CreateDirectory("missing-asset");
|
||||
WriteValidSceneFiles(missingAssetDirectory);
|
||||
File.Delete(Path.Combine(missingAssetDirectory, "Images", "KRX.png"));
|
||||
var missingAsset = LegacyOperatorFolderValidator.Validate(
|
||||
LegacyOperatorSettingsFolderKind.Scene,
|
||||
missingAssetDirectory);
|
||||
|
||||
Assert.False(missingScene.IsValid);
|
||||
Assert.Equal(LegacyOperatorFolderValidationFailure.RequiredFileMissing,
|
||||
missingScene.Failure);
|
||||
Assert.False(missingAsset.IsValid);
|
||||
Assert.Equal(LegacyOperatorFolderValidationFailure.RequiredFileMissing,
|
||||
missingAsset.Failure);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SceneValidation_RejectsEmptyRequiredOrPresentOptionalFiles()
|
||||
{
|
||||
using var directory = new TemporaryDirectory();
|
||||
var emptyRequiredDirectory = directory.CreateDirectory("empty-required");
|
||||
WriteValidSceneFiles(emptyRequiredDirectory);
|
||||
File.WriteAllBytes(Path.Combine(emptyRequiredDirectory, "5076.t2s"), []);
|
||||
var emptyRequired = LegacyOperatorFolderValidator.Validate(
|
||||
LegacyOperatorSettingsFolderKind.Scene,
|
||||
emptyRequiredDirectory);
|
||||
|
||||
var emptyOptionalDirectory = directory.CreateDirectory("empty-optional");
|
||||
WriteValidSceneFiles(emptyOptionalDirectory);
|
||||
var optionalPath = Path.Combine(emptyOptionalDirectory, "Video", "큐브배경.vrv");
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(optionalPath)!);
|
||||
File.WriteAllBytes(optionalPath, []);
|
||||
var emptyOptional = LegacyOperatorFolderValidator.Validate(
|
||||
LegacyOperatorSettingsFolderKind.Scene,
|
||||
emptyOptionalDirectory);
|
||||
|
||||
Assert.False(emptyRequired.IsValid);
|
||||
Assert.Equal(LegacyOperatorFolderValidationFailure.RequiredFileUnsafe,
|
||||
emptyRequired.Failure);
|
||||
Assert.False(emptyOptional.IsValid);
|
||||
Assert.Equal(LegacyOperatorFolderValidationFailure.RequiredFileUnsafe,
|
||||
emptyOptional.Failure);
|
||||
Assert.True(result.IsValid);
|
||||
Assert.Equal(Path.GetFullPath(sceneDirectory), result.Folder!.CanonicalPath);
|
||||
Assert.Null(result.WarningMessage);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -162,10 +103,12 @@ public sealed class LegacyOperatorSettingsTests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SceneValidation_MissingBaselineFailsWithoutLeakingThePath()
|
||||
public void SceneValidation_MissingDirectoryFailsWithoutLeakingThePath()
|
||||
{
|
||||
using var directory = new TemporaryDirectory();
|
||||
var sceneDirectory = directory.CreateDirectory("sensitive-design-folder");
|
||||
var sceneDirectory = Path.Combine(
|
||||
directory.Path,
|
||||
"sensitive-design-folder");
|
||||
|
||||
var result = LegacyOperatorFolderValidator.Validate(
|
||||
LegacyOperatorSettingsFolderKind.Scene,
|
||||
@@ -173,7 +116,7 @@ public sealed class LegacyOperatorSettingsTests
|
||||
|
||||
Assert.False(result.IsValid);
|
||||
Assert.Equal(
|
||||
LegacyOperatorFolderValidationFailure.RequiredFileMissing,
|
||||
LegacyOperatorFolderValidationFailure.DirectoryNotFound,
|
||||
result.Failure);
|
||||
Assert.Null(result.Folder);
|
||||
AssertPathFree(result.WarningMessage, sceneDirectory);
|
||||
|
||||
Reference in New Issue
Block a user