using System; using Paca.Core.Config; using Paca.Tests.Infrastructure; using Xunit; namespace Paca.Tests.E2E; public class GpuAndBatterySettingsGateTests { [Fact] public void Gate253_AppConfig_GpuAndBatterySettings_PropertiesExist() { var config = new AppConfig(); Assert.True(config.EnableGpuHardwareAcceleration); Assert.Equal("Auto", config.PreferredGpuBackend); Assert.Equal("Auto", config.PreferredVideoCodec); Assert.True(config.EnableBatterySaver); Assert.Equal(20, config.BatterySaverThresholdPercent); Assert.True(config.BatterySaverThrottleBandwidth); } [Fact] public void Gate254_SettingsWindow_GpuAndBatteryControls_ExistInXaml() { var xaml = SourceTree.SettingsWindowXaml; // GPU 하드웨어 가속 컨트롤 존재 확인 Assert.Contains("x:Name=\"EnableGpuAccelerationBox\"", xaml); Assert.Contains("x:Name=\"PreferredGpuBackendBox\"", xaml); Assert.Contains("x:Name=\"PreferredVideoCodecBox\"", xaml); // 배터리 세이버 전력 관리 컨트롤 존재 확인 Assert.Contains("x:Name=\"EnableBatterySaverBox\"", xaml); Assert.Contains("x:Name=\"BatterySaverThresholdBox\"", xaml); Assert.Contains("x:Name=\"BatterySaverThrottleBox\"", xaml); // 접근성 및 스크린 리더 계약 검증 Assert.Contains("AutomationProperties.Name=\"GPU 하드웨어 가속 활성화\"", xaml); Assert.Contains("AutomationProperties.Name=\"선호 GPU 인코더 백엔드\"", xaml); Assert.Contains("AutomationProperties.Name=\"선호 대상 비디오 코덱\"", xaml); Assert.Contains("AutomationProperties.Name=\"배터리 세이버 전력 관리 활성화\"", xaml); Assert.Contains("AutomationProperties.Name=\"배터리 절전 임계치\"", xaml); Assert.Contains("AutomationProperties.Name=\"절전 시 다운로드 대역폭 제한\"", xaml); } [Fact] public void Gate255_SettingsWindow_Cs_GpuAndBatterySettings_LoadAndSaveBinding() { var cs = SourceTree.SettingsWindowCs; Assert.Contains("EnableGpuAccelerationBox.IsChecked", cs); Assert.Contains("PreferredGpuBackendBox.SelectedValue", cs); Assert.Contains("PreferredVideoCodecBox.SelectedValue", cs); Assert.Contains("EnableBatterySaverBox.IsChecked", cs); Assert.Contains("BatterySaverThresholdBox.Text", cs); Assert.Contains("BatterySaverThrottleBox.IsChecked", cs); } }