Add tray rules and identities editor
PR and Push Build/Test / build-and-test (push) Successful in 7m0s

This commit is contained in:
2026-05-28 01:28:16 +02:00
parent 71f1e6a0b8
commit 693f52afee
31 changed files with 3136 additions and 327 deletions
+22 -9
View File
@@ -11,15 +11,20 @@ public sealed class TaskbarIconTests
{
var menu = MeetingTaskbarMenuBuilder.Build(
Status(),
[Profile("default"), Profile("english")]);
[Profile("default", "Ctrl+Alt+M"), Profile("english", "Ctrl+Alt+E")]);
Assert.Equal(RecordingProcessState.Idle, menu.State);
Assert.Contains(menu.Items, item =>
item.Action == MeetingTaskbarAction.StartRecording &&
item.ProfileName == "default");
item.Action == MeetingTaskbarAction.EditRules &&
item.Text == "Edit rules and identities");
Assert.Contains(menu.Items, item =>
item.Action == MeetingTaskbarAction.StartRecording &&
item.ProfileName == "english");
item.ProfileName == "default" &&
item.Text == "Start meeting recording (default)\tCtrl+Alt+M");
Assert.Contains(menu.Items, item =>
item.Action == MeetingTaskbarAction.StartRecording &&
item.ProfileName == "english" &&
item.Text == "Start meeting recording (english)\tCtrl+Alt+E");
Assert.DoesNotContain(menu.Items, item => item.Action == MeetingTaskbarAction.StopRecording);
Assert.DoesNotContain(menu.Items, item => item.Action == MeetingTaskbarAction.AbortRecording);
}
@@ -29,17 +34,19 @@ public sealed class TaskbarIconTests
{
var menu = MeetingTaskbarMenuBuilder.Build(
Status(isRecording: true, state: RecordingProcessState.Recording, profile: "default"),
[Profile("default"), Profile("english"), Profile("french")]);
[Profile("default", "Ctrl+Alt+M"), Profile("english", "Ctrl+Alt+E"), Profile("french", "Ctrl+Alt+F")]);
Assert.Equal(RecordingProcessState.Recording, menu.State);
Assert.Contains(menu.Items, item => item.Action == MeetingTaskbarAction.StopRecording);
Assert.Contains(menu.Items, item => item.Action == MeetingTaskbarAction.AbortRecording);
Assert.Contains(menu.Items, item =>
item.Action == MeetingTaskbarAction.SwitchProfile &&
item.ProfileName == "english");
item.ProfileName == "english" &&
item.Text == "Switch to english\tCtrl+Alt+E");
Assert.Contains(menu.Items, item =>
item.Action == MeetingTaskbarAction.SwitchProfile &&
item.ProfileName == "french");
item.ProfileName == "french" &&
item.Text == "Switch to french\tCtrl+Alt+F");
Assert.DoesNotContain(menu.Items, item =>
item.Action == MeetingTaskbarAction.SwitchProfile &&
item.ProfileName == "default");
@@ -74,9 +81,15 @@ public sealed class TaskbarIconTests
Assert.Equal(RecordingProcessState.Recording, menu.State);
}
private static LaunchProfile Profile(string name)
private static LaunchProfile Profile(string name, string hotkey = "")
{
return new LaunchProfile(name, new MeetingAssistantOptions());
return new LaunchProfile(name, new MeetingAssistantOptions
{
Hotkey =
{
Toggle = hotkey
}
});
}
private static RecordingStatus Status(