mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 23:54:26 +08:00
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
41 lines
1.7 KiB
C#
41 lines
1.7 KiB
C#
using LanMountainDesktop.Services;
|
|
using Xunit;
|
|
|
|
namespace LanMountainDesktop.Tests;
|
|
|
|
public sealed class ThemeAppearanceValuesTests
|
|
{
|
|
[Theory]
|
|
[InlineData("auto", ThemeAppearanceValues.MaterialAuto)]
|
|
[InlineData("AUTO", ThemeAppearanceValues.MaterialAuto)]
|
|
[InlineData("mica", ThemeAppearanceValues.MaterialMica)]
|
|
[InlineData("acrylic", ThemeAppearanceValues.MaterialAcrylic)]
|
|
[InlineData("unknown", ThemeAppearanceValues.MaterialNone)]
|
|
[InlineData(null, ThemeAppearanceValues.MaterialNone)]
|
|
public void NormalizeSystemMaterialMode_ReturnsKnownValue(string? input, string expected)
|
|
{
|
|
Assert.Equal(expected, ThemeAppearanceValues.NormalizeSystemMaterialMode(input));
|
|
}
|
|
|
|
[Fact]
|
|
public void NormalizeAvailableMaterialModes_AddsAutoAndNone()
|
|
{
|
|
var result = ThemeAppearanceValues.NormalizeAvailableMaterialModes([ThemeAppearanceValues.MaterialMica]);
|
|
|
|
Assert.Equal(ThemeAppearanceValues.MaterialAuto, result[0]);
|
|
Assert.Equal(ThemeAppearanceValues.MaterialNone, result[1]);
|
|
Assert.Contains(ThemeAppearanceValues.MaterialMica, result);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("auto", ThemeAppearanceValues.WallpaperColorSourceAuto)]
|
|
[InlineData("APP", ThemeAppearanceValues.WallpaperColorSourceApp)]
|
|
[InlineData("system", ThemeAppearanceValues.WallpaperColorSourceSystem)]
|
|
[InlineData("unknown", ThemeAppearanceValues.WallpaperColorSourceAuto)]
|
|
[InlineData(null, ThemeAppearanceValues.WallpaperColorSourceAuto)]
|
|
public void NormalizeWallpaperColorSource_ReturnsKnownValue(string? input, string expected)
|
|
{
|
|
Assert.Equal(expected, ThemeAppearanceValues.NormalizeWallpaperColorSource(input));
|
|
}
|
|
}
|