Add queued FFmpeg conversion and finish splitting the window from the host.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -25,6 +25,7 @@ public class UiPreferencesStoreTests
|
||||
Assert.True(prefs.AutoClearQueueWhenDone);
|
||||
Assert.Equal(@"C:\Program Files\7-Zip\7z.exe", prefs.SevenZipPath);
|
||||
Assert.Null(prefs.GitPath);
|
||||
Assert.Null(prefs.FfmpegPath);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -43,6 +44,13 @@ public class UiPreferencesStoreTests
|
||||
Assert.Equal(@"C:\Program Files\Git\cmd\git.exe", prefs.GitPath);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Parse_reads_ffmpeg_path()
|
||||
{
|
||||
var prefs = UiPreferencesStore.Parse(["ffmpeg=C:\\Tools\\ffmpeg.exe"]);
|
||||
Assert.Equal(@"C:\Tools\ffmpeg.exe", prefs.FfmpegPath);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Parse_reads_host_and_removable_index_flags()
|
||||
{
|
||||
@@ -70,6 +78,8 @@ public class UiPreferencesStoreTests
|
||||
Assert.False(prefs.BackgroundHostAtLogon);
|
||||
Assert.Null(prefs.SevenZipPath);
|
||||
Assert.Null(prefs.GitPath);
|
||||
Assert.Null(prefs.FfmpegPath);
|
||||
Assert.True(prefs.SessionTabs is null || prefs.SessionTabs.Count == 0);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -91,6 +101,43 @@ public class UiPreferencesStoreTests
|
||||
Assert.Equal(24, prefs.WindowTop);
|
||||
Assert.True(prefs.WindowMaximized);
|
||||
Assert.Equal(320, prefs.TreeWidth);
|
||||
Assert.True(prefs.SessionTabs is null || prefs.SessionTabs.Count == 0);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Parse_reads_session_tabs_and_active_index()
|
||||
{
|
||||
var left = @"C:\Users\Dominique\Documents";
|
||||
var right = @"D:\Photos";
|
||||
var prefs = UiPreferencesStore.Parse(
|
||||
[
|
||||
"session-active-tab=1",
|
||||
"session-tab=" + UiPreferencesStore.FormatSessionTab(new SessionTabState(LocationRoots.ThisPc)),
|
||||
"session-tab=" + UiPreferencesStore.FormatSessionTab(new SessionTabState(left, right, true, 0.42, true))
|
||||
]);
|
||||
Assert.Equal(1, prefs.SessionActiveTab);
|
||||
Assert.NotNull(prefs.SessionTabs);
|
||||
Assert.Equal(2, prefs.SessionTabs.Count);
|
||||
Assert.Equal(LocationRoots.ThisPc, prefs.SessionTabs[0].LeftPath);
|
||||
Assert.False(prefs.SessionTabs[0].IsSplit);
|
||||
Assert.Equal(left, prefs.SessionTabs[1].LeftPath);
|
||||
Assert.Equal(right, prefs.SessionTabs[1].RightPath);
|
||||
Assert.True(prefs.SessionTabs[1].IsSplit);
|
||||
Assert.Equal(0.42, prefs.SessionTabs[1].SplitRatio);
|
||||
Assert.True(prefs.SessionTabs[1].ActiveIsRight);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Session_tab_roundtrip_escapes_semicolons_in_paths()
|
||||
{
|
||||
var state = new SessionTabState(@"C:\weird;name", @"\\server\share", true, 0.3, false);
|
||||
var parsed = UiPreferencesStore.TryParseSessionTab(UiPreferencesStore.FormatSessionTab(state));
|
||||
Assert.NotNull(parsed);
|
||||
Assert.Equal(state.LeftPath, parsed.LeftPath);
|
||||
Assert.Equal(state.RightPath, parsed.RightPath);
|
||||
Assert.True(parsed.IsSplit);
|
||||
Assert.Equal(0.3, parsed.SplitRatio);
|
||||
Assert.False(parsed.ActiveIsRight);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -100,7 +147,17 @@ public class UiPreferencesStoreTests
|
||||
try
|
||||
{
|
||||
var store = new UiPreferencesStore(new PrefsEnv(dir));
|
||||
store.Save(new UiPreferences("Light", true, false, true, AutoClearQueueWhenDone: true, WindowWidth: 1100, WindowHeight: 720, TreeWidth: 300));
|
||||
store.Save(new UiPreferences(
|
||||
"Light", true, false, true,
|
||||
AutoClearQueueWhenDone: true,
|
||||
WindowWidth: 1100,
|
||||
WindowHeight: 720,
|
||||
TreeWidth: 300,
|
||||
SessionTabs:
|
||||
[
|
||||
new SessionTabState(@"C:\Temp", @"D:\", true, 0.6, true)
|
||||
],
|
||||
SessionActiveTab: 0));
|
||||
var loaded = store.Load();
|
||||
Assert.Equal("Light", loaded.Theme);
|
||||
Assert.True(loaded.GroupNetworkPlaces);
|
||||
@@ -114,6 +171,13 @@ public class UiPreferencesStoreTests
|
||||
Assert.Equal(1100, loaded.WindowWidth);
|
||||
Assert.Equal(720, loaded.WindowHeight);
|
||||
Assert.Equal(300, loaded.TreeWidth);
|
||||
Assert.NotNull(loaded.SessionTabs);
|
||||
var tab = Assert.Single(loaded.SessionTabs);
|
||||
Assert.Equal(@"C:\Temp", tab.LeftPath);
|
||||
Assert.Equal(@"D:\", tab.RightPath);
|
||||
Assert.True(tab.IsSplit);
|
||||
Assert.Equal(0.6, tab.SplitRatio);
|
||||
Assert.True(tab.ActiveIsRight);
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user