82 lines
3.2 KiB
C#
82 lines
3.2 KiB
C#
using System;
|
|
using System.IO;
|
|
using Paca.App;
|
|
using Paca.Tests.Infrastructure;
|
|
using Xunit;
|
|
|
|
namespace Paca.Tests.App;
|
|
|
|
/// <summary>
|
|
/// Gate 153 ~ 155: 데스크톱 백그라운드 게이트웨이 서비스 인스톨러 연동 및 시작프로그램 CLI 모드 기계적 검증
|
|
/// </summary>
|
|
public class DesktopGatewayDaemonCommandLineGateTests
|
|
{
|
|
[Fact]
|
|
public void Gate153_CommandLineArgs_GatewayDaemonMode_Detected()
|
|
{
|
|
// 1. --gateway-daemon 인자 전달 시 백그라운드 무음 데몬 모드
|
|
var mode1 = DesktopStartupModeParser.Parse(new[] { "--gateway-daemon" });
|
|
Assert.Equal(DesktopStartupMode.GatewayDaemonSilent, mode1);
|
|
|
|
// 2. 대소문자 무관 감지
|
|
var mode2 = DesktopStartupModeParser.Parse(new[] { "--GATEWAY-DAEMON" });
|
|
Assert.Equal(DesktopStartupMode.GatewayDaemonSilent, mode2);
|
|
|
|
// 3. 인자 없음 -> 일반 GUI 모드
|
|
var mode3 = DesktopStartupModeParser.Parse(Array.Empty<string>());
|
|
Assert.Equal(DesktopStartupMode.NormalGui, mode3);
|
|
|
|
// 4. 기타 인자 -> 일반 GUI 모드
|
|
var mode4 = DesktopStartupModeParser.Parse(new[] { "--minimize" });
|
|
Assert.Equal(DesktopStartupMode.NormalGui, mode4);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate154_GatewayDaemon_StartupRegistryEntry_Configurator()
|
|
{
|
|
var exePath = @"C:\Users\Username\AppData\Local\Programs\Paca\Paca.exe";
|
|
var runValue = WindowsStartupRegistryHelper.FormatRunCommand(exePath);
|
|
|
|
Assert.Equal("\"C:\\Users\\Username\\AppData\\Local\\Programs\\Paca\\Paca.exe\" --gateway-daemon", runValue);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate155_InstallerScript_Includes_GatewayService_Task_And_Registry()
|
|
{
|
|
var installerPath = Path.Combine(SourceTree.Root, "build", "installer.iss");
|
|
Assert.True(File.Exists(installerPath), "installer.iss must exist");
|
|
|
|
var content = File.ReadAllText(installerPath);
|
|
|
|
// 게이트웨이 서비스 설치 태스크 확인
|
|
Assert.Contains("gatewayservice", content);
|
|
Assert.Contains("PacaGatewayDaemon", content);
|
|
Assert.Contains("--gateway-daemon", content);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate156_AppStartup_DaemonConfig_Defaults()
|
|
{
|
|
var config = new Paca.Server.Gateway.GatewayStartupConfig();
|
|
Assert.Equal(52100, config.HttpPort);
|
|
Assert.Equal(52101, config.BeaconUdpPort);
|
|
Assert.True(config.AutoStartUdpBeacon);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate157_InstallerScript_MustUseAutoDesktop_And_MustNotContainCommonDesktop_ForPerUserSafety()
|
|
{
|
|
var installerPath = Path.Combine(SourceTree.Root, "build", "installer.iss");
|
|
Assert.True(File.Exists(installerPath), "installer.iss must exist");
|
|
|
|
var content = File.ReadAllText(installerPath);
|
|
|
|
// Standard user (PrivilegesRequired=lowest) has no write permission to {commondesktop} (C:\Users\Public\Desktop).
|
|
// Saving a shortcut to {commondesktop} throws IPersistFile::Save 0x80070005 (Access is Denied).
|
|
// It must use {autodesktop} which resolves to {userdesktop} for standard users.
|
|
Assert.DoesNotContain("{commondesktop}", content);
|
|
Assert.Contains("{autodesktop}\\{#APP_NAME}", content);
|
|
Assert.DoesNotContain("{commonprograms}", content);
|
|
}
|
|
}
|
|
|