mirror of
https://github.com/osukey/osukey.git
synced 2025-06-05 12:57:39 +09:00
Add test coverage of pausing with a large audio offset
This commit is contained in:
parent
9bacc0d50c
commit
2c071a4d22
@ -3,10 +3,12 @@
|
|||||||
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using osu.Framework.Bindables;
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using osu.Framework.Graphics.Containers;
|
using osu.Framework.Graphics.Containers;
|
||||||
using osu.Framework.Screens;
|
using osu.Framework.Screens;
|
||||||
using osu.Framework.Testing;
|
using osu.Framework.Testing;
|
||||||
|
using osu.Game.Configuration;
|
||||||
using osu.Game.Graphics.Containers;
|
using osu.Game.Graphics.Containers;
|
||||||
using osu.Game.Graphics.Cursor;
|
using osu.Game.Graphics.Cursor;
|
||||||
using osu.Game.Rulesets;
|
using osu.Game.Rulesets;
|
||||||
@ -39,6 +41,45 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
confirmClockRunning(true);
|
confirmClockRunning(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestPauseWithLargeOffset()
|
||||||
|
{
|
||||||
|
double lastTime;
|
||||||
|
bool alwaysGoingForward = true;
|
||||||
|
|
||||||
|
AddStep("force large offset", () =>
|
||||||
|
{
|
||||||
|
var offset = (BindableDouble)LocalConfig.GetBindable<double>(OsuSetting.AudioOffset);
|
||||||
|
|
||||||
|
// use a large negative offset to avoid triggering a fail from forwards seeking.
|
||||||
|
offset.MinValue = -5000;
|
||||||
|
offset.Value = -5000;
|
||||||
|
});
|
||||||
|
|
||||||
|
AddStep("add time forward check hook", () =>
|
||||||
|
{
|
||||||
|
lastTime = double.MinValue;
|
||||||
|
alwaysGoingForward = true;
|
||||||
|
|
||||||
|
Player.OnUpdate += _ =>
|
||||||
|
{
|
||||||
|
double currentTime = Player.GameplayClockContainer.CurrentTime;
|
||||||
|
alwaysGoingForward &= currentTime >= lastTime;
|
||||||
|
lastTime = currentTime;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
AddStep("move cursor outside", () => InputManager.MoveMouseTo(Player.ScreenSpaceDrawQuad.TopLeft - new Vector2(10)));
|
||||||
|
|
||||||
|
pauseAndConfirm();
|
||||||
|
|
||||||
|
resumeAndConfirm();
|
||||||
|
|
||||||
|
AddAssert("time didn't go backwards", () => alwaysGoingForward);
|
||||||
|
|
||||||
|
AddStep("reset offset", () => LocalConfig.SetValue(OsuSetting.AudioOffset, 0));
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestPauseResume()
|
public void TestPauseResume()
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user