mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 23:54:26 +08:00
feat.airapp与融合桌面
This commit is contained in:
88
LanMountainDesktop.Tests/WindowLayerIsolationTests.cs
Normal file
88
LanMountainDesktop.Tests/WindowLayerIsolationTests.cs
Normal file
@@ -0,0 +1,88 @@
|
||||
using Xunit;
|
||||
|
||||
namespace LanMountainDesktop.Tests;
|
||||
|
||||
public sealed class WindowLayerIsolationTests
|
||||
{
|
||||
[Fact]
|
||||
public void AirAppWindow_DoesNotUseDesktopBottomMostOrTopmostPromotion()
|
||||
{
|
||||
var source = ReadRepositoryFile("LanMountainDesktop.AirAppHost", "AirAppWindow.axaml.cs");
|
||||
|
||||
Assert.DoesNotContain("WindowBottomMostServiceFactory", source);
|
||||
Assert.DoesNotContain("IWindowBottomMostService", source);
|
||||
Assert.DoesNotContain("SendToBottom", source);
|
||||
Assert.DoesNotContain("Topmost = true", source);
|
||||
Assert.DoesNotContain("Topmost=true", source);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AirAppWindowDescriptor_DefinesSupportedChromeModes()
|
||||
{
|
||||
var source = ReadRepositoryFile("LanMountainDesktop.AirAppHost", "AirAppWindowDescriptor.cs");
|
||||
|
||||
Assert.Contains("AirAppWindowChromeMode", source);
|
||||
Assert.Contains("Standard", source);
|
||||
Assert.Contains("Borderless", source);
|
||||
Assert.Contains("FullScreen", source);
|
||||
Assert.Contains("Tool", source);
|
||||
Assert.Contains("BackgroundOnly", source);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AirAppWindowDescriptor_MapsBuiltInAppsToExpectedChromeModes()
|
||||
{
|
||||
var source = ReadRepositoryFile("LanMountainDesktop.AirAppHost", "AirAppWindowDescriptor.cs");
|
||||
|
||||
Assert.Contains("AirAppLaunchOptions.WorldClockAppId", source);
|
||||
Assert.Contains("AirAppWindowChromeMode.Standard", source);
|
||||
Assert.Contains("AirAppLaunchOptions.WhiteboardAppId", source);
|
||||
Assert.Contains("AirAppWindowChromeMode.FullScreen", source);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void FusedDesktopWindows_KeepDesktopBottomMostBoundary()
|
||||
{
|
||||
var desktopWidgetWindow = ReadRepositoryFile("LanMountainDesktop", "Views", "DesktopWidgetWindow.axaml.cs");
|
||||
var transparentOverlayWindow = ReadRepositoryFile("LanMountainDesktop", "Views", "TransparentOverlayWindow.axaml.cs");
|
||||
|
||||
Assert.Contains("WindowBottomMostServiceFactory.GetOrCreate()", desktopWidgetWindow);
|
||||
Assert.Contains("RefreshDesktopLayer", desktopWidgetWindow);
|
||||
Assert.Contains("SendToBottom", desktopWidgetWindow);
|
||||
|
||||
Assert.Contains("WindowBottomMostServiceFactory.GetOrCreate()", transparentOverlayWindow);
|
||||
Assert.Contains("RefreshDesktopLayer", transparentOverlayWindow);
|
||||
Assert.Contains("SendToBottom", transparentOverlayWindow);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void FusedDesktopManager_RefreshesDesktopLayerAfterShowingWidgets()
|
||||
{
|
||||
var source = ReadRepositoryFile("LanMountainDesktop", "Services", "FusedDesktopManagerService.cs");
|
||||
|
||||
Assert.Contains("existingWindow.RefreshDesktopLayer()", source);
|
||||
Assert.Contains("window.RefreshDesktopLayer()", source);
|
||||
}
|
||||
|
||||
private static string ReadRepositoryFile(params string[] segments)
|
||||
{
|
||||
var directory = new DirectoryInfo(AppContext.BaseDirectory);
|
||||
while (directory is not null)
|
||||
{
|
||||
var candidate = Path.Combine(new[] { directory.FullName }.Concat(segments).ToArray());
|
||||
if (File.Exists(candidate))
|
||||
{
|
||||
return File.ReadAllText(candidate);
|
||||
}
|
||||
|
||||
if (File.Exists(Path.Combine(directory.FullName, "LanMountainDesktop.slnx")))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
directory = directory.Parent;
|
||||
}
|
||||
|
||||
throw new FileNotFoundException($"Could not locate repository file '{Path.Combine(segments)}'.");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user