55 instantiations of TrayPanel
Aspire.Tray.Tests (55)
TrayPanelTests.cs (55)
36
var panel = new
TrayPanel
(state, palette) { MaxHeight = maxHeight, OpenInApplications = s_applications };
131
var scene = new
TrayPanel
(TrayPanelSamples.Typical(), TrayPanelPalette.Light).Scene;
143
var panel = new
TrayPanel
(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
157
var panel = new
TrayPanel
(TrayPanelSamples.Empty(), TrayPanelPalette.Light);
168
var panel = new
TrayPanel
(state, TrayPanelPalette.Light);
186
var panel = new
TrayPanel
(state, TrayPanelPalette.Light) { OpenInApplications = s_applications };
214
var panel = new
TrayPanel
(state, TrayPanelPalette.Light) { OpenInApplications = s_applications, FileManagerName = "File Explorer" };
245
var panel = new
TrayPanel
(state, TrayPanelPalette.Light);
265
var panel = new
TrayPanel
(state, TrayPanelPalette.Light);
285
var panel = new
TrayPanel
(state, TrayPanelPalette.Light) { OpenInApplications = s_applications };
315
var panel = new
TrayPanel
(state, TrayPanelPalette.Light) { OpenInApplications = s_applications };
342
var panel = new
TrayPanel
(state, TrayPanelPalette.Light);
352
var panel = new
TrayPanel
(state, TrayPanelPalette.Light);
365
var panel = new
TrayPanel
(state, TrayPanelPalette.Light) { MaxHeight = 400 };
379
var panel = new
TrayPanel
(state, TrayPanelPalette.Light);
391
var panel = new
TrayPanel
(state, TrayPanelPalette.Light);
407
var panel = new
TrayPanel
(state, TrayPanelPalette.Light);
418
var panel = new
TrayPanel
(state, TrayPanelPalette.Light);
432
var panel = new
TrayPanel
(state, TrayPanelPalette.Light);
449
var panel = new
TrayPanel
(state, TrayPanelPalette.Light);
466
var panel = new
TrayPanel
(TrayPanelSamples.Many(), TrayPanelPalette.Light) { MaxHeight = 480 };
489
var panel = new
TrayPanel
(state, TrayPanelPalette.Light) { MaxHeight = 400 };
502
var panel = new
TrayPanel
(state, TrayPanelPalette.Light) { MaxHeight = 400 };
523
var panel = new
TrayPanel
(state, TrayPanelPalette.Light);
543
var panel = new
TrayPanel
(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
553
var panel = new
TrayPanel
(state, TrayPanelPalette.Light);
566
var panel = new
TrayPanel
(state, TrayPanelPalette.Light);
578
var panel = new
TrayPanel
(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
592
var panel = new
TrayPanel
(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
605
var panel = new
TrayPanel
(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
618
var panel = new
TrayPanel
(state, TrayPanelPalette.Light);
630
var panel = new
TrayPanel
(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
650
var panel = new
TrayPanel
(state, TrayPanelPalette.Light);
667
var panel = new
TrayPanel
(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
694
var panel = new
TrayPanel
(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
707
var panel = new
TrayPanel
(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
720
var panel = new
TrayPanel
(TrayPanelSamples.Many(), TrayPanelPalette.Light) { MaxHeight = 400 };
742
var panel = new
TrayPanel
(state, TrayPanelPalette.Light);
772
var panel = new
TrayPanel
(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
785
var panel = new
TrayPanel
(TrayPanelSamples.Many(), TrayPanelPalette.Light) { MaxHeight = 400 };
828
var scene = new
TrayPanel
(TrayPanelSamples.Errors(), TrayPanelPalette.Light).Scene;
894
var scene = new
TrayPanel
(state, TrayPanelPalette.Light).Scene;
907
var withNotice = new
TrayPanel
(TrayPanelSamples.Errors(), TrayPanelPalette.Light);
908
var without = new
TrayPanel
(TrayPanelSamples.Errors() with { Notice = null }, TrayPanelPalette.Light);
1023
var panel = new
TrayPanel
(state, palette);
1130
var scene = new
TrayPanel
(TrayPanelSamples.Errors(), palette).Scene;
1205
var scene = new
TrayPanel
(state, TrayPanelPalette.Light).Scene;
1222
var panel = new
TrayPanel
(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
1240
var panel = new
TrayPanel
(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
1256
var panel = new
TrayPanel
(state, TrayPanelPalette.Light);
1268
var panel = new
TrayPanel
(TrayPanelSamples.Many(), TrayPanelPalette.Light) { MaxHeight = 400 };
1287
var panel = new
TrayPanel
(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
1304
var panel = new
TrayPanel
(state, TrayPanelPalette.Light);
1329
var panel = new
TrayPanel
(TrayPanelSamples.Typical(), TrayPanelPalette.Light) { QuitVerb = verb };
1341
var scene = new
TrayPanel
(TrayPanelSamples.Typical(), TrayPanelPalette.Light).Scene;
97 references to TrayPanel
Aspire.Tray.Tests (97)
Helpers\TrayPanelSvgRenderer.cs (1)
42
new XAttribute("rx", F(
TrayPanel
.CornerRadius)), new XAttribute("fill", "#000"), new XAttribute("filter", "url(#shadow)")));
src\Aspire.Tray\Common\TrayPanelScene.cs (5)
76
/// Draws the icon of an installed application, one of <see cref="
TrayPanel
.OpenInApplications"/>,
113
/// <see cref="
TrayPanel
.OpenInApplications"/>.
233
/// <see cref="
TrayPanel
.ConfirmRemoveMissing"/> instead of showing a dialog.
238
/// <see cref="
TrayPanel
.OpenInApplications"/>.
258
/// <see cref="
TrayPanel
.ShowSettings"/> to switch the panel to its Settings view.
TrayPanelTests.cs (91)
33
private static
TrayPanel
CreatePanel(string name, TrayPanelPalette palette, double maxHeight =
TrayPanel
.DefaultMaxHeight)
36
var
panel = new TrayPanel(state, palette) { MaxHeight = maxHeight, OpenInApplications = s_applications };
70
var
panel = CreatePanel(name, TrayPanelPalette.Light, maxHeight: 600);
74
Assert.Equal(
TrayPanel
.Width, scene.Width);
75
Assert.InRange(scene.Height,
TrayPanel
.HeaderHeight +
TrayPanel
.FooterHeight, 600);
83
Assert.All(footer, target => Assert.InRange(target.Bounds.Y, scene.Height -
TrayPanel
.FooterHeight, scene.Height - target.Bounds.Height));
143
var
panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
157
var
panel = new TrayPanel(TrayPanelSamples.Empty(), TrayPanelPalette.Light);
168
var
panel = new TrayPanel(state, TrayPanelPalette.Light);
186
var
panel = new TrayPanel(state, TrayPanelPalette.Light) { OpenInApplications = s_applications };
214
var
panel = new TrayPanel(state, TrayPanelPalette.Light) { OpenInApplications = s_applications, FileManagerName = "File Explorer" };
245
var
panel = new TrayPanel(state, TrayPanelPalette.Light);
265
var
panel = new TrayPanel(state, TrayPanelPalette.Light);
285
var
panel = new TrayPanel(state, TrayPanelPalette.Light) { OpenInApplications = s_applications };
315
var
panel = new TrayPanel(state, TrayPanelPalette.Light) { OpenInApplications = s_applications };
342
var
panel = new TrayPanel(state, TrayPanelPalette.Light);
352
var
panel = new TrayPanel(state, TrayPanelPalette.Light);
365
var
panel = new TrayPanel(state, TrayPanelPalette.Light) { MaxHeight = 400 };
379
var
panel = new TrayPanel(state, TrayPanelPalette.Light);
391
var
panel = new TrayPanel(state, TrayPanelPalette.Light);
407
var
panel = new TrayPanel(state, TrayPanelPalette.Light);
418
var
panel = new TrayPanel(state, TrayPanelPalette.Light);
432
var
panel = new TrayPanel(state, TrayPanelPalette.Light);
449
var
panel = new TrayPanel(state, TrayPanelPalette.Light);
466
var
panel = new TrayPanel(TrayPanelSamples.Many(), TrayPanelPalette.Light) { MaxHeight = 480 };
489
var
panel = new TrayPanel(state, TrayPanelPalette.Light) { MaxHeight = 400 };
495
Assert.Null(panel.HitTest(100,
TrayPanel
.HeaderHeight - 1));
502
var
panel = new TrayPanel(state, TrayPanelPalette.Light) { MaxHeight = 400 };
523
var
panel = new TrayPanel(state, TrayPanelPalette.Light);
543
var
panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
553
var
panel = new TrayPanel(state, TrayPanelPalette.Light);
566
var
panel = new TrayPanel(state, TrayPanelPalette.Light);
578
var
panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
592
var
panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
605
var
panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
618
var
panel = new TrayPanel(state, TrayPanelPalette.Light);
630
var
panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
650
var
panel = new TrayPanel(state, TrayPanelPalette.Light);
667
var
panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
694
var
panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
707
var
panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
720
var
panel = new TrayPanel(TrayPanelSamples.Many(), TrayPanelPalette.Light) { MaxHeight = 400 };
742
var
panel = new TrayPanel(state, TrayPanelPalette.Light);
772
var
panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
785
var
panel = new TrayPanel(TrayPanelSamples.Many(), TrayPanelPalette.Light) { MaxHeight = 400 };
802
var (text, _) =
TrayPanel
.GetHeaderStatus(new((DiscoveryState)discovery, [], ""), TrayPanelPalette.Light);
810
Assert.Equal("3 running · 1 needs attention",
TrayPanel
.GetHeaderStatus(TrayPanelSamples.Typical(), TrayPanelPalette.Light).Text);
811
Assert.Equal("No AppHosts running",
TrayPanel
.GetHeaderStatus(TrayPanelSamples.Empty(), TrayPanelPalette.Light).Text);
813
TrayPanel
.GetHeaderStatus(TrayPanelSamples.Errors(), TrayPanelPalette.Light).Text);
823
Assert.Equal(($"Needs attention · {location}", false),
TrayPanel
.GetRowDetail(host, live: true, showPid: false));
824
Assert.Equal(($"Needs attention · {location} · PID 48213", false),
TrayPanel
.GetRowDetail(host, live: true, showPid: true));
825
Assert.Equal(($"Status unavailable · {location}", false),
TrayPanel
.GetRowDetail(host, live: false, showPid: false));
826
Assert.Equal(("Boom.", true),
TrayPanel
.GetRowDetail(host with { Error = "Boom." }, live: true, showPid: false));
844
Assert.Equal((PanelStatusGlyph)expected,
TrayPanel
.GetStatusGlyph(host, live));
850
Assert.Equal(PanelStatusGlyph.Stopped,
TrayPanel
.GetStatusGlyph(TrayPanelSamples.Offline("/src/A/A.cs"), live: true));
851
Assert.Equal(PanelStatusGlyph.Busy,
TrayPanel
.GetStatusGlyph(TrayPanelSamples.Offline("/src/A/A.cs", starting: true), live: true));
852
Assert.Equal(PanelStatusGlyph.Warning,
TrayPanel
.GetStatusGlyph(TrayPanelSamples.Offline("/src/A/A.cs", error: "No."), live: true));
862
var
panel = CreatePanel(name, palette);
867
Assert.Equal(
TrayPanel
.FooterHeight,
TrayPanel
.HeaderHeight);
871
Assert.Contains(gutters, bounds => Near(bounds, new(0, 0,
TrayPanel
.Width,
TrayPanel
.HeaderHeight)));
872
Assert.Contains(gutters, bounds => Near(bounds, new(0, scene.Height -
TrayPanel
.FooterHeight,
TrayPanel
.Width,
TrayPanel
.FooterHeight)));
875
Assert.Contains(new PanelRect(0,
TrayPanel
.HeaderHeight - 1,
TrayPanel
.Width, 1), separators);
876
Assert.Contains(new PanelRect(0, scene.Height -
TrayPanel
.FooterHeight,
TrayPanel
.Width, 1), separators);
879
var middle =
TrayPanel
.HeaderHeight / 2;
880
var header = scene.Commands.OfType<TextCommand>().Where(text => text.Bounds.Bottom <=
TrayPanel
.HeaderHeight).ToList();
886
Assert.All(scene.Targets.TakeLast(3), button => Assert.Equal(scene.Height -
TrayPanel
.FooterHeight / 2, button.Bounds.CenterY));
899
Assert.Equal(
TrayPanel
.GetHeaderStatus(state, TrayPanelPalette.Light).Text, status.Name);
907
var
withNotice = new TrayPanel(TrayPanelSamples.Errors(), TrayPanelPalette.Light);
908
var
without = new TrayPanel(TrayPanelSamples.Errors() with { Notice = null }, TrayPanelPalette.Light);
912
Assert.Equal(
TrayPanel
.HeaderHeight, without.Viewport.Y);
1023
var
panel = new TrayPanel(state, palette);
1166
var
panel = CreatePanel(name, palette, maxHeight: 520);
1206
var (status, _) =
TrayPanel
.GetHeaderStatus(state, TrayPanelPalette.Light);
1222
var
panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
1240
var
panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
1256
var
panel = new TrayPanel(state, TrayPanelPalette.Light);
1268
var
panel = new TrayPanel(TrayPanelSamples.Many(), TrayPanelPalette.Light) { MaxHeight = 400 };
1287
var
panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light);
1304
var
panel = new TrayPanel(state, TrayPanelPalette.Light);
1329
var
panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light) { QuitVerb = verb };
1345
Assert.All(footer, target => Assert.Equal(
TrayPanel
.ButtonSize, target.Bounds.Width));
1350
private static PanelHitTarget Target(
TrayPanel
panel, PanelTargetKind kind, AppHostMenuItem host)
1353
private static PanelResponse Click(
TrayPanel
panel, PanelRect bounds, double? offsetX = null)