1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-17 01:03:15 +08:00
Commit Graph

6 Commits

  • Attempt to fix editor navigation test failures again
    First of all, stop relying that `InputManager` will successfully press
    the gameplay test button, because it won't if it's obscured by the
    notification overlay. Closing the overlay in a loop doesn't work because
    there's a chance that a notification is posted, then all overlays are
    closed, then another notification is posted, and so the button still
    isn't clickable. Instead, use the `TestGameplay()` method directly.
    
    Secondly, the notifications will still block `EditorPlayerLoader` from
    transitioning to `EditorPlayer`. Here we have no other choice than to
    aggressively dismiss notifications every spin of the relevant until
    step and hope we eventually progress to `EditorPlayer`.
  • Centralise and harden editor-ready-for-use check
    Not only does this combine the check into one location, but it also adds
    a check on the global `WorkingBeatmap` being updated, which is the only
    way I can see the following failure happening:
    
    ```csharp
    05:19:07     osu.Game.Tests: osu.Game.Tests.Visual.Editing.TestSceneEditorBeatmapCreation.TestAddAudioTrack
    05:19:07       Failed TestAddAudioTrack [161 ms]
    05:19:07       Error Message:
    05:19:07        TearDown : System.NullReferenceException : Object reference not set to an instance of an object.
    05:19:07       Stack Trace:
    05:19:07       --TearDown
    05:19:07        at osu.Game.Database.ModelManager`1.<>c__DisplayClass7_0.<AddFile>b__0(TModel managed) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 36
    05:19:07        at osu.Game.Database.ModelManager`1.<>c__DisplayClass8_0.<performFileOperation>b__0(Realm realm) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 49
    05:19:07        at osu.Game.Database.RealmExtensions.Write(Realm realm, Action`1 function) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\RealmExtensions.cs:line 14
    05:19:07        at osu.Game.Database.ModelManager`1.performFileOperation(TModel item, Action`1 operation) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 46
    05:19:07        at osu.Game.Database.ModelManager`1.AddFile(TModel item, Stream contents, String filename) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 36
    05:19:07        at osu.Game.Screens.Edit.Setup.ResourcesSection.ChangeAudioTrack(FileInfo source) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Screens\Edit\Setup\ResourcesSection.cs:line 115
    05:19:07        at osu.Game.Tests.Visual.Editing.TestSceneEditorBeatmapCreation.<TestAddAudioTrack>b__13_0() in C:\BuildAgent\work\ecd860037212ac52\osu.Game.Tests\Visual\Editing\TestSceneEditorBeatmapCreation.cs:line 101
    05:19:07        at osu.Framework.Testing.Drawables.Steps.AssertButton.checkAssert()
    05:19:07        at osu.Framework.Testing.Drawables.Steps.StepButton.PerformStep(Boolean userTriggered)
    05:19:07        at osu.Framework.Testing.TestScene.runNextStep(Action onCompletion, Action`1 onError, Func`2 stopCondition)
    ```