// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using System.Linq; using NUnit.Framework; using osu.Framework.Bindables; using osu.Framework.Graphics; using osu.Framework.Testing; using osu.Game.Overlays.Settings; namespace osu.Game.Tests.Visual.Settings { [TestFixture] public class TestSceneSettingsItem : OsuTestScene { [Test] public void TestRestoreDefaultValueButtonVisibility() { TestSettingsTextBox textBox = null; AddStep("create settings item", () => Child = textBox = new TestSettingsTextBox { Current = new Bindable { Default = "test", Value = "test" } }); AddAssert("restore button hidden", () => textBox.RestoreDefaultValueButton.Alpha == 0); AddStep("change value from default", () => textBox.Current.Value = "non-default"); AddUntilStep("restore button shown", () => textBox.RestoreDefaultValueButton.Alpha > 0); AddStep("restore default", () => textBox.Current.SetDefault()); AddUntilStep("restore button hidden", () => textBox.RestoreDefaultValueButton.Alpha == 0); } private class TestSettingsTextBox : SettingsTextBox { public new Drawable RestoreDefaultValueButton => this.ChildrenOfType().Single(); } } }