fix: open folder pickers at current paths
This commit is contained in:
@@ -11,26 +11,85 @@ public sealed class LegacyOperatorSettingsNativeContractTests
|
||||
Path.Combine(AppRoot, "MainWindow.xaml.cs"));
|
||||
private static readonly string Settings = File.ReadAllText(
|
||||
Path.Combine(AppRoot, "MainWindow.Settings.cs"));
|
||||
private static readonly string FolderPicker = File.ReadAllText(
|
||||
Path.Combine(AppRoot, "MainWindow.BackgroundPicker.cs"));
|
||||
private static readonly string Playout = File.ReadAllText(
|
||||
Path.Combine(AppRoot, "MainWindow.Playout.cs"));
|
||||
|
||||
[Fact]
|
||||
public void FolderPathsComeOnlyFromTheWindowOwnedNativePicker()
|
||||
{
|
||||
Assert.Contains("var picker = new FolderPicker", Settings, StringComparison.Ordinal);
|
||||
Assert.Contains("picker.FileTypeFilter.Add(\"*\")", Settings,
|
||||
Assert.Contains(
|
||||
"var initialDirectory = ResolveOperatorFolderPickerStartDirectory(kind)",
|
||||
Settings,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("InitializeWithWindow.Initialize(picker, owner);", Settings,
|
||||
Assert.Contains("await PickOperatorFolderAsync(", Settings,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("await picker.PickSingleFolderAsync()", Settings,
|
||||
Assert.Contains("LegacyFileDialog.ShowFolder(", FolderPicker,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("selected.Path", Settings, StringComparison.Ordinal);
|
||||
Assert.Contains("WindowNative.GetWindowHandle(this)", FolderPicker,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("FileOpenOptions.PickFolders", FolderPicker,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("FileOpenOptions.ForceFileSystem", FolderPicker,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("FileOpenOptions.PathMustExist", FolderPicker,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("FileOpenOptions.NoDereferenceLinks", FolderPicker,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("dialog.SetFolder(initialFolder);", FolderPicker,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("dialog.SetDefaultFolder(initialFolder);", FolderPicker,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("selectedPath", Settings, StringComparison.Ordinal);
|
||||
Assert.Contains("LegacyOperatorFolderValidator.TryValidate(", Settings,
|
||||
StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("PickerLocationId.ComputerFolder", Settings,
|
||||
StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("intent.Path", Settings, StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("choose.Path", Settings, StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void FolderPickerStartsAtTheLatestSavedPathOrItsNearestExistingParent()
|
||||
{
|
||||
var resolver = Slice(
|
||||
Settings,
|
||||
"private string? ResolveOperatorFolderPickerStartDirectory(",
|
||||
"private static string ResolveOperatorFolderPickerTitle(");
|
||||
|
||||
Assert.Contains("_operatorSettings.SceneDirectory", resolver,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("_operatorSettings.ResourceDirectory", resolver,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("_operatorSettings.BackgroundDirectory", resolver,
|
||||
StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("_appliedOperatorSettings", resolver,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("Path.Combine(AppContext.BaseDirectory, \"Cuts\")", resolver,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("Path.Combine(AppContext.BaseDirectory, \"Res\")", resolver,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("ResolveAutomaticBackgroundDirectory()", resolver,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("FindNearestExistingDirectory(preferredPath)", resolver,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("candidate = candidate.Parent", resolver,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("FindNearestExistingDirectory(AppContext.BaseDirectory)", resolver,
|
||||
StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void FolderPickerTitleAndButtonRemainCompatibleWithTheLocalStateSmoke()
|
||||
{
|
||||
Assert.Contains("\"폴더 선택 - 디자인\"", Settings, StringComparison.Ordinal);
|
||||
Assert.Contains("\"폴더 선택 - 설정\"", Settings, StringComparison.Ordinal);
|
||||
Assert.Contains("\"폴더 선택 - 배경\"", Settings, StringComparison.Ordinal);
|
||||
Assert.Contains("dialog.SetOkButtonLabel(\"폴더 선택\")", FolderPicker,
|
||||
StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SelectedFoldersAreLoadedAtStartupAndAppliedOnlyAtCompositionBoundaries()
|
||||
{
|
||||
@@ -162,7 +221,7 @@ public sealed class LegacyOperatorSettingsNativeContractTests
|
||||
{
|
||||
var cancelledPicker = Slice(
|
||||
Settings,
|
||||
"if (selected is null)",
|
||||
"if (selectedPath is null)",
|
||||
"cancellationToken.ThrowIfCancellationRequested();");
|
||||
|
||||
Assert.DoesNotContain(
|
||||
|
||||
Reference in New Issue
Block a user