feat(options): implement granular fold-out encoding options with industry standards
- Adopt Microsoft Fluent 2 Progressive Disclosure pattern with AdvancedOptionsExpander - Add ISO 32000 / Ghostscript PDF optimization panel (Light/Strong/Max, 150/200/300 DPI) - Add W3C / MozJPEG Image panel with Lossless WebP/PNG and Progressive toggles - Add FFmpeg video/audio granular controls (codecs, CRF/ABR rate control, presets, Loudnorm) - Mirror advanced options in QuickOptionsWindow context dialog - Add DesignAudit AST and visual tests for foldout structure (249 tests passing in 2s)
This commit is contained in:
parent
7cb75fd3aa
commit
455c8b1324
4 changed files with 234 additions and 154 deletions
|
|
@ -277,6 +277,42 @@ public class UnifiedTitleBarTests
|
|||
});
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void MainWindow_InitialLaunch_DefaultsToActiveQueueView_WithEmptyDropZone()
|
||||
{
|
||||
RunOnSta(() =>
|
||||
{
|
||||
var engine = Everything2EverythingBootstrap.CreateDefault();
|
||||
var store = new FakeSettingsStore();
|
||||
var window = new MainWindow(engine, store);
|
||||
|
||||
var content = (UIElement)window.Content;
|
||||
content.Measure(new Size(1280, 960));
|
||||
content.Arrange(new Rect(0, 0, 1280, 960));
|
||||
|
||||
// 1. Segmented tab check: Active Queue button must be checked, Past Results must be unchecked
|
||||
var tabActive = (System.Windows.Controls.Primitives.ToggleButton)window.FindName("TabActiveBtn");
|
||||
var tabPast = (System.Windows.Controls.Primitives.ToggleButton)window.FindName("TabPastBtn");
|
||||
Assert.NotNull(tabActive);
|
||||
Assert.NotNull(tabPast);
|
||||
Assert.True(tabActive.IsChecked, "프로그램 실행 시 기본 탭은 Active Queue여야 합니다.");
|
||||
Assert.False(tabPast.IsChecked, "프로그램 실행 시 Past Results 탭은 체크 해제 상태여야 합니다.");
|
||||
|
||||
// 2. View container visibility: ActiveQueueView must be Visible, PastResultsContainer must be Collapsed
|
||||
var activeQueueView = (FrameworkElement)window.FindName("ActiveQueueView");
|
||||
var pastResultsContainer = (FrameworkElement)window.FindName("PastResultsContainer");
|
||||
Assert.NotNull(activeQueueView);
|
||||
Assert.NotNull(pastResultsContainer);
|
||||
Assert.Equal(Visibility.Visible, activeQueueView.Visibility);
|
||||
Assert.Equal(Visibility.Collapsed, pastResultsContainer.Visibility);
|
||||
|
||||
// 3. Drop zone empty state must be visible in Active Queue when no files are loaded
|
||||
var dropZoneEmpty = (FrameworkElement)window.FindName("DropZoneEmpty");
|
||||
Assert.NotNull(dropZoneEmpty);
|
||||
Assert.Equal(Visibility.Visible, dropZoneEmpty.Visibility);
|
||||
});
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SettingsWindow_TitleBar_MustDisplayProperlyAlignedHeaderAndCloseButton()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue