1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-25 12:52:59 +08:00
osu-lazer/osu.Game.Tests/Visual/UserInterface/TestSceneBreadcrumbControl.cs

71 lines
2.0 KiB
C#
Raw Normal View History

// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
2018-04-13 17:19:50 +08:00
2022-06-17 15:37:17 +08:00
#nullable disable
2020-01-27 12:16:36 +08:00
using System.Linq;
2018-04-13 17:19:50 +08:00
using NUnit.Framework;
using osu.Framework.Allocation;
using osu.Framework.Graphics;
2020-01-27 12:16:36 +08:00
using osu.Framework.Graphics.Containers;
2018-04-13 17:19:50 +08:00
using osu.Game.Graphics;
using osu.Game.Graphics.UserInterface;
2019-03-25 00:02:36 +08:00
namespace osu.Game.Tests.Visual.UserInterface
2018-04-13 17:19:50 +08:00
{
[TestFixture]
2020-01-02 13:24:58 +08:00
public class TestSceneBreadcrumbControl : OsuTestScene
2018-04-13 17:19:50 +08:00
{
2020-01-27 12:16:36 +08:00
private readonly TestBreadcrumbControl breadcrumbs;
2018-04-13 17:19:50 +08:00
2020-01-02 13:24:58 +08:00
public TestSceneBreadcrumbControl()
2018-04-13 17:19:50 +08:00
{
2020-01-27 12:16:36 +08:00
Add(breadcrumbs = new TestBreadcrumbControl
2018-04-13 17:19:50 +08:00
{
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
RelativeSizeAxes = Axes.X,
Width = 0.5f,
});
AddStep(@"first", () => breadcrumbs.Current.Value = BreadcrumbTab.Click);
2020-01-27 12:16:36 +08:00
assertVisible(1);
2018-04-13 17:19:50 +08:00
AddStep(@"second", () => breadcrumbs.Current.Value = BreadcrumbTab.The);
2020-01-27 12:16:36 +08:00
assertVisible(2);
2018-04-13 17:19:50 +08:00
AddStep(@"third", () => breadcrumbs.Current.Value = BreadcrumbTab.Circles);
2020-01-27 12:16:36 +08:00
assertVisible(3);
2018-04-13 17:19:50 +08:00
}
[BackgroundDependencyLoader]
private void load(OsuColour colours)
{
breadcrumbs.StripColour = colours.Blue;
}
2020-01-27 12:16:36 +08:00
private void assertVisible(int count) => AddAssert($"first {count} item(s) visible", () =>
{
for (int i = 0; i < count; i++)
{
if (breadcrumbs.GetDrawable((BreadcrumbTab)i).State != Visibility.Visible)
return false;
}
return true;
});
2018-04-13 17:19:50 +08:00
private enum BreadcrumbTab
{
Click,
The,
Circles,
}
2020-01-27 12:16:36 +08:00
private class TestBreadcrumbControl : BreadcrumbControl<BreadcrumbTab>
{
public BreadcrumbTabItem GetDrawable(BreadcrumbTab tab) => (BreadcrumbTabItem)TabContainer.First(t => t.Value == tab);
}
2018-04-13 17:19:50 +08:00
}
}