public void TestGameplayTestWhenTrackRunning() { AddStep("start track", () => EditorClock.Start()); AddAssert("sample playback enabled", () => !Editor.SamplePlaybackDisabled.Value); AddStep("click test gameplay button", () => { var button = Editor.ChildrenOfType <TestGameplayButton>().Single(); InputManager.MoveMouseTo(button); InputManager.Click(MouseButton.Left); }); EditorPlayer editorPlayer = null; AddUntilStep("player pushed", () => (editorPlayer = Stack.CurrentScreen as EditorPlayer) != null); AddAssert("editor track stopped", () => !EditorClock.IsRunning); AddAssert("sample playback disabled", () => Editor.SamplePlaybackDisabled.Value); AddStep("exit player", () => editorPlayer.Exit()); AddUntilStep("current screen is editor", () => Stack.CurrentScreen is Editor); AddUntilStep("background has correct params", () => { // the test gameplay player's beatmap may be the "same" beatmap as the one being edited, *but* the `BeatmapInfo` references may differ // due to the beatmap refetch logic ran on editor suspend. // this test cares about checking the background belonging to the editor specifically, so check that using reference equality // (as `.Equals()` cannot discern between the two, as they technically share the same database GUID). var background = this.ChildrenOfType <BackgroundScreenBeatmap>().Single(b => ReferenceEquals(b.Beatmap.BeatmapInfo, EditorBeatmap.BeatmapInfo)); return(background.Colour == Color4.DarkGray && background.BlurAmount.Value == 0); }); AddStep("start track", () => EditorClock.Start()); AddAssert("sample playback re-enabled", () => !Editor.SamplePlaybackDisabled.Value); }
public void TestSharedClockState() { AddStep("seek to 00:01:00", () => EditorClock.Seek(60_000)); AddStep("click test gameplay button", () => { var button = Editor.ChildrenOfType <TestGameplayButton>().Single(); InputManager.MoveMouseTo(button); InputManager.Click(MouseButton.Left); }); EditorPlayer editorPlayer = null; AddUntilStep("player pushed", () => (editorPlayer = Stack.CurrentScreen as EditorPlayer) != null); GameplayClockContainer gameplayClockContainer = null; AddStep("fetch gameplay clock", () => gameplayClockContainer = editorPlayer.ChildrenOfType <GameplayClockContainer>().First()); AddUntilStep("gameplay clock running", () => gameplayClockContainer.IsRunning); AddAssert("gameplay time past 00:01:00", () => gameplayClockContainer.CurrentTime >= 60_000); double timeAtPlayerExit = 0; AddWaitStep("wait some", 5); AddStep("store time before exit", () => timeAtPlayerExit = gameplayClockContainer.CurrentTime); AddStep("exit player", () => editorPlayer.Exit()); AddUntilStep("current screen is editor", () => Stack.CurrentScreen is Editor); AddAssert("time is past player exit", () => EditorClock.CurrentTime >= timeAtPlayerExit); }
public void TestGameplayTestWhenTrackRunning() { AddStep("start track", () => EditorClock.Start()); AddAssert("sample playback enabled", () => !Editor.SamplePlaybackDisabled.Value); AddStep("click test gameplay button", () => { var button = Editor.ChildrenOfType <TestGameplayButton>().Single(); InputManager.MoveMouseTo(button); InputManager.Click(MouseButton.Left); }); EditorPlayer editorPlayer = null; AddUntilStep("player pushed", () => (editorPlayer = Stack.CurrentScreen as EditorPlayer) != null); AddAssert("editor track stopped", () => !EditorClock.IsRunning); AddAssert("sample playback disabled", () => Editor.SamplePlaybackDisabled.Value); AddStep("exit player", () => editorPlayer.Exit()); AddUntilStep("current screen is editor", () => Stack.CurrentScreen is Editor); AddUntilStep("background has correct params", () => { var background = this.ChildrenOfType <BackgroundScreenBeatmap>().Single(); return(background.Colour == Color4.DarkGray && background.BlurAmount.Value == 0); }); AddStep("start track", () => EditorClock.Start()); AddAssert("sample playback re-enabled", () => !Editor.SamplePlaybackDisabled.Value); }
public void TestBasicGameplayTest() { AddStep("click test gameplay button", () => { var button = Editor.ChildrenOfType <TestGameplayButton>().Single(); InputManager.MoveMouseTo(button); InputManager.Click(MouseButton.Left); }); EditorPlayer editorPlayer = null; AddUntilStep("player pushed", () => (editorPlayer = Stack.CurrentScreen as EditorPlayer) != null); AddStep("exit player", () => editorPlayer.Exit()); AddUntilStep("current screen is editor", () => Stack.CurrentScreen is Editor); }
public void TestBasicGameplayTest() { AddStep("click test gameplay button", () => { var button = Editor.ChildrenOfType <TestGameplayButton>().Single(); InputManager.MoveMouseTo(button); InputManager.Click(MouseButton.Left); }); EditorPlayer editorPlayer = null; AddUntilStep("player pushed", () => (editorPlayer = Stack.CurrentScreen as EditorPlayer) != null); AddStep("exit player", () => editorPlayer.Exit()); AddUntilStep("current screen is editor", () => Stack.CurrentScreen is Editor); AddUntilStep("background has correct params", () => { var background = this.ChildrenOfType <BackgroundScreenBeatmap>().Single(); return(background.Colour == Color4.DarkGray && background.BlurAmount.Value == 0); }); }