121 references to Scene
Aspire.Tray.Tests (121)
src\Aspire.Tray\Common\TrayPanel.cs (12)
138_ = Scene; 147_ = Scene; 218=> FocusAt(Scene.Targets.Where(target => target.Enabled && IsPrimary(target.Kind)).ToList(), 0); 309var target = Scene.Targets.FirstOrDefault(target => target.Key == key); 331var targets = Scene.Targets.Where(target => target.Enabled).ToList(); 338var targets = Scene.Targets; 444var focused = Scene.Targets.FirstOrDefault(target => target.Key == _focus); 453return MoveFocus(Scene.Targets.Where(target => target.Enabled).ToList(), key == PanelKey.Tab ? 1 : -1, wrap: true); 455var primary = Scene.Targets.Where(target => target.Enabled && IsPrimary(target.Kind)).ToList(); 504var items = Scene.Targets.Where(target => IsActionItem(target.Kind)).ToList(); 508var top = Scene.Targets.FirstOrDefault(target => target.Key == row with { Kind = PanelTargetKind.Row, Item = 0 })?.Bounds.Y ?? bottom; 543var buttons = Scene.Targets.Where(target => IsConfirmTarget(target.Kind)).ToList();
src\Aspire.Tray\Linux\LinuxTrayPanel.cs (7)
485var height = (int)Math.Ceiling(_panel.Scene.Height); 488_accessibility!.Update(_panel.Scene, _bounds.X - surface.Geometry.X, _bounds.Y - surface.Geometry.Y, 552&& (!surface.Main || !new PanelRect(0, 0, _panel.Scene.Width, _panel.Scene.Height).Contains(x, y))) 565if (!surface.Main || !new PanelRect(0, 0, _panel.Scene.Width, _panel.Scene.Height).Contains(x, y)) 622foreach (var command in _panel.Scene.Commands)
TrayPanelTests.cs (102)
47Click(panel, panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.ToggleRecent).HitBounds); 51Click(panel, panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.ClearRecent).HitBounds); 71var scene = panel.Scene; 93var scene = CreatePanel(name, TrayPanelPalette.Dark).Scene; 111var scene = CreatePanel(name, TrayPanelPalette.Light).Scene; 123var commands = CreatePanel(name, TrayPanelPalette.Light).Scene.Commands; 131var scene = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light).Scene; 145var toggle = Assert.Single(panel.Scene.Targets, target => target.Kind == PanelTargetKind.ToggleRecent); 151Assert.Equal(2, panel.Scene.Targets.Count(target => target.Kind == PanelTargetKind.Row && target.Key.Section == PanelSection.Recent)); 160Assert.Contains(panel.Scene.Commands.OfType<TextCommand>(), text => text.Text == "No AppHosts running"); 161Assert.Equal(2, panel.Scene.Targets.Count(target => target.Kind == PanelTargetKind.Row)); 194var items = panel.Scene.Targets.Where(target => target.Host == host && target.Bounds.Y > row.Bounds.Bottom).ToList(); 206panel.Scene.Commands.OfType<TextCommand>().Where(text => text.Bounds.Y >= items[0].Bounds.Y && text.Bounds.Bottom <= items[^1].Bounds.Bottom) 224var target = panel.Scene.Targets.Single(target => target.Key == new PanelTargetKey(kind, PanelSection.Running, host.Id, item)); 238Assert.Contains(panel.Scene.Commands.OfType<TextCommand>(), text => text.Text == "Show in File Explorer"); 248Assert.Equal("Unpin Weather", panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.TogglePin).AccessibleName); 249Assert.DoesNotContain(panel.Scene.Targets, target => target.Kind == PanelTargetKind.RemoveRecent); 251Click(panel, panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.ToggleRecent).HitBounds); 254var remove = panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.RemoveRecent); 302Assert.DoesNotContain(panel.Scene.Targets, target => target.Kind == PanelTargetKind.OpenIn); 318Assert.Empty(panel.Scene.Commands.OfType<AppIconCommand>()); 325var applications = panel.Scene.Targets.Where(target => target.Kind == PanelTargetKind.OpenIn).ToList(); 327var icons = panel.Scene.Commands.OfType<AppIconCommand>().ToList(); 335Assert.DoesNotContain(panel.Scene.Targets, target => target.Kind == PanelTargetKind.OpenIn); 345Assert.DoesNotContain(panel.Scene.Targets, target => target.Kind is PanelTargetKind.OpenInMenu or PanelTargetKind.OpenIn); 357Assert.DoesNotContain(panel.Scene.Targets, target => target.Kind == PanelTargetKind.CopyPath); 371Assert.All(panel.Scene.Targets.Where(target => target.Kind is PanelTargetKind.CopyPath or PanelTargetKind.TogglePin), 384Assert.Contains(panel.Scene.Commands.OfType<StrokePathCommand>(), stroke => stroke.Color == TrayPanelPalette.Light.Focus); 398Assert.Equal(PanelActionKind.Settings, Click(panel, panel.Scene.Targets.Single(t => t.Kind == PanelTargetKind.Settings).HitBounds).Action?.Kind); 399Assert.Equal(PanelActionKind.Quit, Click(panel, panel.Scene.Targets.Single(t => t.Kind == PanelTargetKind.Quit).HitBounds).Action?.Kind); 400Assert.Equal(PanelActionKind.Documentation, Click(panel, panel.Scene.Targets.Single(t => t.Kind == PanelTargetKind.Documentation).HitBounds).Action?.Kind); 450var before = panel.Scene.Commands.Count; 454var hovered = panel.Scene.Commands.Count; 460Assert.Equal(before, panel.Scene.Commands.Count); 467var scene = panel.Scene; 474Assert.Equal(footer, panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.Quit).Bounds); 479var last = panel.Scene.Targets.Last(target => target.Kind == PanelTargetKind.ToggleRecent); 491var first = panel.Scene.Targets.FirstOrDefault(target => target.Kind == PanelTargetKind.Row && target.Host == state.AppHosts[0]); 512var focused = panel.Scene.Targets.Single(target => target.Key == panel.FocusedTarget); 515Assert.Contains(panel.Scene.Commands.OfType<StrokePathCommand>(), stroke => stroke.Color == TrayPanelPalette.Light.Focus); 525var enabled = panel.Scene.Targets.Count(target => target.Enabled); 532Assert.Equal(panel.Scene.Targets.Where(target => target.Enabled).Select(target => target.Key), visited); 559Assert.Contains(panel.Scene.Targets, target => target.Kind == PanelTargetKind.Row && target.Host == state.AppHosts[1]); 579Click(panel, panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.ClearRecent).HitBounds); 593Click(panel, panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.ClearRecent).HitBounds); 595var response = Click(panel, panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.ConfirmCancel).HitBounds); 599Assert.Contains(panel.Scene.Targets, target => target.Kind == PanelTargetKind.ToggleRecent); 606Click(panel, panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.ClearRecent).HitBounds); 608var action = Click(panel, panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.Documentation).HitBounds).Action; 622_ = panel.Scene; 632var response = Click(panel, panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.ClearRecent).HitBounds); 636var texts = panel.Scene.Commands.OfType<TextCommand>().Select(text => text.Text).ToList(); 639Assert.DoesNotContain(panel.Scene.Targets, target => target.Kind is PanelTargetKind.ToggleRecent); 641var accept = panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.ConfirmAccept); 657Assert.Contains(panel.Scene.Commands.OfType<TextCommand>(), text => text.Text == missing.Id.AppHostPath); 668Assert.Equal(PanelActionKind.Settings, Click(panel, panel.Scene.Targets.Single(t => t.Kind == PanelTargetKind.Settings).HitBounds).Action?.Kind); 674Assert.DoesNotContain(panel.Scene.Targets, target => target.Kind == PanelTargetKind.Row); 676var launch = panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.LaunchAtSignIn); 683var texts = panel.Scene.Commands.OfType<TextCommand>().Select(text => text.Text).ToList(); 688Assert.True(panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.LaunchAtSignIn).Checked); 697var launch = panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.LaunchAtSignIn); 701Assert.Contains(panel.Scene.Commands.OfType<TextCommand>(), text => text.Text == TraySettingsText.StableNativeInstallationRequired); 710var launch = panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.LaunchAtSignIn); 713Assert.Contains(panel.Scene.Commands.OfType<TextCommand>(), 734Assert.Null(Click(panel, panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.Back).HitBounds).Action); 777_ = panel.Scene; 830var scene = new TrayPanel(TrayPanelSamples.Errors(), TrayPanelPalette.Light).Scene; 862var scene = CreatePanel(name, TrayPanelPalette.Light).Scene; 885var scene = CreatePanel(name, TrayPanelPalette.Dark).Scene; 930var scene = CreatePanel("actions-open-in", TrayPanelPalette.Light).Scene; 942var scene = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light).Scene; 968var scene = panel.Scene; 999var scene = new TrayPanel(state, TrayPanelPalette.Light).Scene; 1015Assert.Contains(withNotice.Scene.Commands.OfType<TextCommand>(), text => text.Text.StartsWith("Unable to save", StringComparison.Ordinal)); 1129Click(panel, panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.ClearRecent).HitBounds); 1130var accept = panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.ConfirmAccept); 1131var label = Assert.Single(panel.Scene.Commands.OfType<TextCommand>(), text => text.Bounds == accept.Bounds); 1132var fill = panel.Scene.Commands.OfType<FillPathCommand>().Last(fill => fill.Path.GetControlBounds().Contains(accept.Bounds.CenterX, accept.Bounds.CenterY) 1235var scene = new TrayPanel(TrayPanelSamples.Errors(), palette).Scene; 1247var svg = TrayPanelSvgRenderer.Render(CreatePanel(name, TrayPanelPalette.Dark).Scene); 1276var row = panel.Scene.Targets.Where(target => target.Kind == PanelTargetKind.Row).ElementAt(1); 1285File.WriteAllText(path, TrayPanelSvgRenderer.Render(panel.Scene, logo, margin: 24)); 1289File.WriteAllText(guides, TrayPanelSvgRenderer.Render(panel.Scene, logo, margin: 24, guides: true)); 1301var scene = CreatePanel(name, TrayPanelPalette.Light).Scene; 1314var scene = new TrayPanel(state, TrayPanelPalette.Light).Scene; 1332panel.Invoke(panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.ClearRecent).Key); 1334var strip = panel.Scene.Accessibility.SkipWhile(element => element.Key.Label != "confirm.question").Take(4).ToList(); 1351Assert.Null(panel.Invoke(panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.ClearRecent).Key).Action); 1355var accept = panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.ConfirmAccept).Key; 1378var last = panel.Scene.Accessibility.Last(element => element.Target?.Kind == PanelTargetKind.Row); 1380var status = panel.Scene.Accessibility.Single(element => element.Key.Label == "header.status"); 1387var visible = panel.Scene.Accessibility.Single(element => element.Key == last.Key); 1390Assert.True(panel.Scene.Accessibility.Single(element => element.Key.Label == "section.running").IsOffscreen); 1399var launch = panel.Scene.Accessibility.Single(element => element.Target?.Kind == PanelTargetKind.LaunchAtSignIn); 1406panel.Scene.Accessibility.Take(3).Select(element => element.Name)); 1422panel.Scene.Targets.TakeLast(3).Select(target => target.Tooltip)); 1423Assert.All(panel.Scene.Targets.Where(target => target.Kind is PanelTargetKind.Row or PanelTargetKind.ToggleRecent or PanelTargetKind.ClearRecent), 1429Assert.Equal("Back", panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.Back).Tooltip); 1430Assert.Equal("Close settings", panel.Scene.Targets.Single(target => target.Kind == PanelTargetKind.Settings).Tooltip); 1439var quit = panel.Scene.Accessibility.Single(element => element.Target?.Kind == PanelTargetKind.Quit); 1450var scene = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light).Scene; 1460=> panel.Scene.Targets.Single(target => target.Kind == kind && target.Host == host);