1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-18 01:43:21 +08:00
Commit Graph

8650 Commits

Author SHA1 Message Date
Dean Herbert
21d31ee218 Ensure joined channels are actually joined to avoid unexpected tab order 2022-06-28 18:11:37 +09:00
Dean Herbert
d64959ad0c Add test coverage of async writes during a blocking operation 2022-06-28 17:07:49 +09:00
Dan Balasescu
d630b62cfc
Merge pull request #18915 from peppy/slider-snaking-test-refactoring
Apply various refactorings to `TestSceneSliderSnaking`
2022-06-28 16:16:35 +09:00
Dan Balasescu
8e4a6c43b5
Merge pull request #18914 from peppy/spectator-playback-test-leniences
Increase leniences on `TestSceneSpectatorPlayback.TestWithSendFailure`
2022-06-28 16:15:51 +09:00
Dean Herbert
35745c83b7 Replace dodgy SetUpSteps overriding with usage of HasCustomSteps 2022-06-28 15:19:02 +09:00
Dean Herbert
a2701a3205 Increase leaniences on TestSceneSpectatorPlayback.TestWithSendFailure
Not really sure how to improve this further, but should help with cases
like this:

```csharp
[runtime] 2022-06-28 05:32:06 [verbose]: 💨 Class: TestSceneSpectatorPlayback
[runtime] 2022-06-28 05:32:06 [verbose]: 🔶 Test:  TestWithSendFailure
[runtime] 2022-06-28 05:32:06 [verbose]: 🔸 Step #1 Setup containers
[runtime] 2022-06-28 05:32:06 [verbose]: Received 1 new frames (total 1 of 2)
[runtime] 2022-06-28 05:32:06 [verbose]: 🔸 Step #2 received frames
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 7 of 8)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 13 of 19)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 19 of 29)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 25 of 44)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 31 of 45)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 37 of 59)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 43 of 67)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 49 of 125)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 55 of 126)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 61 of 127)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 67 of 128)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 73 of 129)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 79 of 130)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 85 of 131)
[runtime] 2022-06-28 05:32:06 [verbose]: ✔️ 22 repetitions
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 91 of 132)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 97 of 133)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 103 of 134)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 109 of 135)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 115 of 136)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 121 of 137)
[runtime] 2022-06-28 05:32:06 [verbose]: 🔸 Step #3 start failing sends
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 127 of 138)
[runtime] 2022-06-28 05:32:06 [verbose]: 🔸 Step #4 wait for send attempts
[runtime] 2022-06-28 05:32:06 [verbose]: 🔸 Step #5 frames did not increase
[runtime] 2022-06-28 05:32:06 [verbose]: 💥 Failed
[runtime] 2022-06-28 05:32:06 [verbose]:  Currently loading components (0)
[runtime] 2022-06-28 05:32:06 [verbose]: 🧵 Task schedulers
[runtime] 2022-06-28 05:32:06 [verbose]: LoadComponentsAsync (standard) concurrency:4 running:0 pending:0
[runtime] 2022-06-28 05:32:06 [verbose]: LoadComponentsAsync (long load) concurrency:4 running:0 pending:0
[runtime] 2022-06-28 05:32:06 [verbose]: 🎱 Thread pool
[runtime] 2022-06-28 05:32:06 [verbose]: worker:          min 1      max 32,767 available 32,766
[runtime] 2022-06-28 05:32:06 [verbose]: completion:      min 1      max 1,000  available 1,000
[runtime] 2022-06-28 05:32:06 [verbose]: Host execution state changed to Stopping
```

https://teamcity.ppy.sh/buildConfiguration/Osu_Build/811?hideProblemsFromDependencies=false&hideTestsFromDependencies=false&expandBuildTestsSection=true
2022-06-28 14:58:34 +09:00
Dean Herbert
c1075d113f Add logging around current channel changes and join requests
Tracking down a flaky test
(https://teamcity.ppy.sh/buildConfiguration/Osu_Build/553?hideProblemsFromDependencies=false&expandBuildTestsSection=true&hideTestsFromDependencies=false):

```csharp
TearDown : System.TimeoutException : "PM Channel 1 displayed" timed out
--TearDown
   at osu.Framework.Testing.Drawables.Steps.UntilStepButton.<>c__DisplayClass11_0.<.ctor>b__0()
   at osu.Framework.Testing.Drawables.Steps.StepButton.PerformStep(Boolean userTriggered)
   at osu.Framework.Testing.TestScene.runNextStep(Action onCompletion, Action`1 onError, Func`2 stopCondition)
--- End of stack trace from previous location ---
   at osu.Framework.Testing.TestSceneTestRunner.TestRunner.RunTestBlocking(TestScene test)
   at osu.Game.Tests.Visual.OsuTestScene.OsuTestSceneTestRunner.RunTestBlocking(TestScene test) in /opt/buildagent/work/ecd860037212ac52/osu.Game/Tests/Visual/OsuTestScene.cs:line 503
   at osu.Framework.Testing.TestScene.RunTestsFromNUnit()
------- Stdout: -------
[runtime] 2022-06-27 23:18:55 [verbose]: 💨 Class: TestSceneChatOverlay
[runtime] 2022-06-27 23:18:55 [verbose]: 🔶 Test:  TestKeyboardNextChannel
[runtime] 2022-06-27 23:18:55 [verbose]: Chat is now polling every 60000 ms
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #1 Setup request handler
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #2 Add test channels
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #3 Show overlay with channels
[runtime] 2022-06-27 23:18:55 [verbose]: Unhandled Request Type: osu.Game.Online.API.Requests.CreateChannelRequest
[network] 2022-06-27 23:18:55 [verbose]: Failing request osu.Game.Online.API.Requests.CreateChannelRequest (System.InvalidOperationException: DummyAPIAccess cannot process this request.)
[runtime] 2022-06-27 23:18:55 [verbose]: Unhandled Request Type: osu.Game.Online.API.Requests.CreateChannelRequest
[network] 2022-06-27 23:18:55 [verbose]: Failing request osu.Game.Online.API.Requests.CreateChannelRequest (System.InvalidOperationException: DummyAPIAccess cannot process this request.)
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #4 Select channel 1
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #5 Channel 1 is visible
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #6 Press document next keys
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #7 Channel 2 is visible
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #8 Press document next keys
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #9 PM Channel 1 displayed
[network] 2022-06-27 23:18:55 [verbose]: Request to https://a.ppy.sh/587 failed with System.Net.WebException: NotFound.
[network] 2022-06-27 23:18:55 [verbose]: Request to https://a.ppy.sh/503 failed with System.Net.WebException: NotFound.
[runtime] 2022-06-27 23:19:05 [verbose]: 💥 Failed (on attempt 5,550)
[runtime] 2022-06-27 23:19:05 [verbose]:  Currently loading components (0)
[runtime] 2022-06-27 23:19:05 [verbose]: 🧵 Task schedulers
[runtime] 2022-06-27 23:19:05 [verbose]: LoadComponentsAsync (standard) concurrency:4 running:0 pending:0
[runtime] 2022-06-27 23:19:05 [verbose]: LoadComponentsAsync (long load) concurrency:4 running:0 pending:0
[runtime] 2022-06-27 23:19:05 [verbose]: 🎱 Thread pool
[runtime] 2022-06-27 23:19:05 [verbose]: worker:          min 1      max 32,767 available 32,766
[runtime] 2022-06-27 23:19:05 [verbose]: completion:      min 1      max 1,000  available 1,000
[runtime] 2022-06-27 23:19:05 [debug]: Focus on "ChatTextBox" no longer valid as a result of unfocusIfNoLongerValid.
[runtime] 2022-06-27 23:19:05 [debug]: Focus changed from ChatTextBox to nothing.
```

This kind of logging should be helpful:

```csharp
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #5 Channel 1 is visible
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #6 Press document next keys
[runtime] 2022-06-28 04:59:57 [verbose]: Current channel changed to #channel-2
[runtime] 2022-06-28 04:59:57 [debug]: Pressed (DocumentNext) handled by TestSceneChatOverlay+TestChatOverlay.
[runtime] 2022-06-28 04:59:57 [debug]: KeyDownEvent(PageDown, False) handled by ManualInputManager+LocalPlatformActionContainer.
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #7 Channel 2 is visible
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #8 Press document next keys
[runtime] 2022-06-28 04:59:57 [verbose]: Current channel changed to test user 685
[runtime] 2022-06-28 04:59:57 [debug]: Pressed (DocumentNext) handled by TestSceneChatOverlay+TestChatOverlay.
[runtime] 2022-06-28 04:59:57 [debug]: KeyDownEvent(PageDown, False) handled by ManualInputManager+LocalPlatformActionContainer.
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #9 PM Channel 1 displayed
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #10 Press document next keys
[runtime] 2022-06-28 04:59:57 [verbose]: Current channel changed to test user 218
```
2022-06-28 14:00:30 +09:00
Bartłomiej Dach
1a0228415d
Wait for and dismiss notification in editor navigation test 2022-06-27 22:29:47 +02:00
Dean Herbert
569fde4b47 Add messages to all InvalidOperationExceptions
Without this, they can be very non-descript and hard to track down
2022-06-28 01:34:25 +09:00
Dan Balasescu
396e7fc166
Merge pull request #18862 from peppy/empty-beatmap-file-fix-2
Fix second case of empty beatmaps being reported to sentry as errors
2022-06-27 20:37:57 +09:00
Dean Herbert
f355c3a3c9
Merge pull request #18864 from peppy/fix-realm-audio-track-test-fail
Centralise and harden editor-ready-for-use check
2022-06-27 19:42:49 +09:00
Dean Herbert
6203885040 Add test coverage of realm async writes 2022-06-27 19:38:14 +09:00
Dean Herbert
1fc4fa6820 Remove unnecessary Task.Run workaround in tests 2022-06-27 19:21:05 +09:00
Dan Balasescu
e131101708
Merge pull request #18866 from peppy/fix-storyboard-outro-skip-test-flaky
Fix `TestStoryboardSkipOutro` occasionally failing due to strict timings
2022-06-27 18:33:02 +09:00
Dean Herbert
5af1106fa5 Remove unused using statement 2022-06-27 18:04:52 +09:00
Dean Herbert
401d9c1bae Fix TestStoryboardSkipOutro occasionally failing due to strict timings 2022-06-27 17:13:46 +09:00
Dean Herbert
8c3c1f095e Update rollback test expectations
I can't find a better way to do this. It's very hard to trigger an
actual failure in the import process these days. For now I've just made
this work with the new assumptions. May be worth removing the test in
the future if this ever backfires.
2022-06-27 17:04:35 +09:00
Dean Herbert
13dcaf82ad Fix chat tests failing 1/10000 runs
31a447fda0/osu.Game/Online/Chat/ChannelManager.cs (L412-L414)

Sigh.
2022-06-27 16:50:10 +09:00
Dean Herbert
5a7d339cc8 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)
```
2022-06-27 16:22:01 +09:00
Dean Herbert
b70b365411 Ensure files are cleaned up even on test step failure in TestAddAudioTrack 2022-06-27 15:53:05 +09:00
Dan Balasescu
05148d2b98
Merge pull request #18854 from peppy/fix-flaky-editor-navigation-test
Attempt to fix flaky `EditorNavigation` test
2022-06-27 13:58:28 +09:00
Dean Herbert
b5a8889fb8 Attempt to fix flaky EditorNavigation test
Conditionals taken from
f8830c6850/osu.Game/Tests/Visual/EditorTestScene.cs (L61-L62)
where it seemed to resolve other similar cases.
2022-06-27 03:04:50 +09:00
Dean Herbert
cd9eaf215b Attempt to fix flaky PlaylistOverlay test 2022-06-27 02:58:01 +09:00
Dean Herbert
31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
Dean Herbert
30eebf3511 Merge branch 'master' into c-sharp-10 2022-06-24 21:22:33 +09:00
Dean Herbert
2c5e5fed6f Add test coverage of star rating and difficulty updating on editor save 2022-06-24 21:02:38 +09:00
Dean Herbert
06d59b717c Move beatmap processing tasks to new BeatmapUpdater class 2022-06-24 21:02:37 +09:00
Bartłomiej Dach
26c5b59f6d
Replace usages of string.To{Lower,Upper}() 2022-06-24 11:57:45 +02:00
Dan Balasescu
c7e92f46f4
Merge pull request #18819 from peppy/difficulty-icon-refactor-pass
Refactor difficulty icons to not suck
2022-06-24 17:50:50 +09:00
Dean Herbert
8912f07745 Merge branch 'master' into difficulty-icon-refactor-pass 2022-06-24 16:34:35 +09:00
Dean Herbert
545c04aaf5 Fix dangerous File.Copy causing intermittent realm migration test failures
Resolves an issue I've been able to locally reproduce on windows.
Basically, the `File.Copy` would begin while realm was blocking. The
"restore" operation is posted to the `SynchronizationContext` to run on
next update call, but in the mean time the copy would begin, causing a
conflict of interest.

Very dangerous. Only really noticeable on windows.
2022-06-24 16:18:56 +09:00
Dean Herbert
f71f6302fd Remove unnecessary null casts 2022-06-24 14:50:11 +09:00
Bartłomiej Dach
489ed5d34d
Rename test method 2022-06-23 18:04:38 +02:00
Gabe Livengood
454eff43c5
publicity -> accesstype 2022-06-23 11:40:25 -04:00
Gabe Livengood
9a15adbfff
add an all option to publicity filter 2022-06-23 11:24:28 -04:00
Gabe Livengood
2def6d809b
refactor to use enum dropdown 2022-06-23 11:02:27 -04:00
Dean Herbert
ef258122d2 Move GetDifficultyRating helper method to StarDifficulty 2022-06-23 19:51:58 +09:00
Dean Herbert
01da6f20b3 Tidy up all remaining usages 2022-06-23 19:27:35 +09:00
Dean Herbert
7ef8b7df5f Add timeout for all ManualResetEventSlim.Wait invocations
Timeout values were taken as best-guesses of upper values we'd expect
from sane execution.
2022-06-23 14:46:00 +09:00
Gabe Livengood
a03cfbc2d4
add test coverage 2022-06-22 17:01:42 -04:00
Dean Herbert
97fcf8cec9
Merge pull request #18668 from smoogipoo/editor-controlpoint-undo-redo 2022-06-23 04:02:24 +09:00
Bartłomiej Dach
a9f6eb0293
Add test coverage for new intended behaviour of sequential hotkey style 2022-06-21 15:18:37 +02:00
Bartłomiej Dach
a996325e19
Add test coverage for filter handling in classic style 2022-06-21 15:00:39 +02:00
Bartłomiej Dach
da1814e7c3
Restructure everything to fix free mod overlay issue 2022-06-21 14:48:41 +02:00
Bartłomiej Dach
143c8e8da6
Add test scene for desired classic selection behaviour 2022-06-21 13:35:00 +02:00
Bartłomiej Dach
658f5341c7
Set up flow for switching between hotkey styles 2022-06-21 13:34:58 +02:00
Bartłomiej Dach
73124d2b1f
Encapsulate mod hotkey selection logic in strategy pattern 2022-06-21 12:49:01 +02:00
Dean Herbert
10efb4bc6c Fix incorrect disposal in teardown steps 2022-06-21 14:08:30 +09:00
Bartłomiej Dach
21d60231b6
Add limited test coverage of osu:// scheme link IPC flow 2022-06-20 22:22:25 +02:00
Bartłomiej Dach
b0b3ea42cc
Remove null default value in ImportSkinTest helper method 2022-06-20 10:44:14 +02:00
Dan Balasescu
c402e90598
Merge pull request #18777 from peppy/output-directory-on-import-failure
Silence exception and provide more log output when import fails due to empty `.osu` files
2022-06-20 17:36:21 +09:00
Dan Balasescu
e0c82d11ab Convert == usages to ReferenceEquals 2022-06-20 16:56:19 +09:00
Dean Herbert
e82d948acc Add test coverage of import throwing when no valid .osu files are found 2022-06-20 16:06:22 +09:00
Dean Herbert
92f1a2958c Rename Import(TModel) to ImportModel to differentiate from other import methods 2022-06-20 15:18:07 +09:00
Dean Herbert
a6c8a832aa Remove Import(ArchiveReader) and redirect existing usages to Import(ImportTask) 2022-06-20 15:14:57 +09:00
Dean Herbert
7daab2d45b Merge branch 'master' into skin-editor-transform-fix 2022-06-20 14:10:01 +09:00
Dean Herbert
e4d0c7a0fb Move beatmap import step to only be required when entering gameplay 2022-06-20 14:08:05 +09:00
Dean Herbert
329f1a0822 Add test coverage of original fail case and improve test reliability and code quality 2022-06-20 14:08:05 +09:00
Dean Herbert
243806e810 Move common step of toggling skin editor to own method 2022-06-20 13:32:44 +09:00
Gabe Livengood
2b0e82be40
add test coverage 2022-06-19 14:35:05 -04:00
Bartłomiej Dach
def87ed782
Add failing test for editor gameplay test using wrong ruleset 2022-06-19 19:28:35 +02:00
Salman Ahmed
47ce087694 Actually click the gameplay scene button than TriggerClick 2022-06-18 18:32:02 +03:00
Bartłomiej Dach
f6a3047596
Merge branch 'master' into editor-metadata-name-unification 2022-06-18 10:22:52 +02:00
Dan Balasescu
fd9902e816 Manual #nullable processing 2022-06-17 16:38:35 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Salman Ahmed
42378dbb88 Improve test coverage to ensure volume is unaffected when mouse is away 2022-06-16 20:22:57 +03:00
Salman Ahmed
47d0ecf5e8 Merge branch 'master' into editor-metadata-name-unification 2022-06-16 18:53:23 +03:00
Bartłomiej Dach
9c4f6d2ce0
Merge branch 'master' into first-run-setup-notification-interruption 2022-06-16 15:14:40 +02:00
Dean Herbert
f3984d98e6 Remove RealmArchiveModelManager from hierarchy 2022-06-16 18:53:13 +09:00
Dean Herbert
1f3e1b2d97 Combine BeatmapManager and BeatmapModelManager into one class 2022-06-16 18:07:04 +09:00
Dean Herbert
84dba36cf5 Update usages of BeatmapModelManager which only require importing to use BeatmapImporter 2022-06-16 17:59:24 +09:00
Salman Ahmed
2c35b1404b Use FileInfo as current bindable type 2022-06-15 19:29:09 +03:00
Bartłomiej Dach
665ef5fdcc
Add test coverage for API-incompatible rulesets wrt mods 2022-06-15 17:31:46 +02:00
Bartłomiej Dach
0418d70056
Add test coverage for ignoring null mods returned by rulesets 2022-06-15 17:31:46 +02:00
Salman Ahmed
387c54c252 Ensure notification is displayed after first-run setup is hidden 2022-06-15 18:13:24 +03:00
Dean Herbert
f23ddfe6cc Move remaining realm classes out of Stores namespace 2022-06-15 21:56:00 +09:00
Dean Herbert
584345a97e
Merge pull request #18693 from frenzibyte/toolbar-volume-control
Add basic volume control support in toolbar music button
2022-06-15 17:50:10 +09:00
Dean Herbert
87bf53485a
Merge pull request #18649 from frenzibyte/selection-context-outside-bounds
Fix context menus not appearing when clicking outside of editor playfield's bounds
2022-06-15 17:08:09 +09:00
Dean Herbert
080f2859ef
Merge pull request #18689 from peppy/quick-import-only-on-batch
Always perform full consistency checks for single imports
2022-06-15 17:06:06 +09:00
Salman Ahmed
dfab8b71f6
Merge branch 'master' into stable-beatmap-recursive-import 2022-06-15 10:06:46 +03:00
Dean Herbert
873806c2ea Add keyboard adjustment support 2022-06-15 15:58:22 +09:00
Dean Herbert
19543685ff Merge branch 'master' into quick-import-only-on-batch 2022-06-15 15:27:06 +09:00
Salman Ahmed
f3f0960335 Use unified filename for background and track during editor import 2022-06-15 09:02:48 +03:00
Salman Ahmed
3d638abc52 Fix test files stream not disposed after creation 2022-06-15 08:24:20 +03:00
Salman Ahmed
ee8045d507 Add failing test case 2022-06-15 07:33:21 +03:00
Salman Ahmed
850afcb1c3 Add failing test case 2022-06-15 05:43:39 +03:00
Salman Ahmed
1171d44ad9 Add failing test case 2022-06-15 03:37:04 +03:00
Salman Ahmed
36599d1174
Merge branch 'master' into fix-hit-error-when-not-visible 2022-06-14 22:47:11 +03:00
Salman Ahmed
7f23677972 Add volume control support via toolbar music button 2022-06-14 22:15:12 +03:00
Salman Ahmed
6fe5cacd3c Fix hot reload crashing toolbar test scene 2022-06-14 22:15:12 +03:00
Salman Ahmed
cd74f22e12 Add failing test case 2022-06-14 19:10:13 +03:00
Dean Herbert
cac724f436 Re-enable ignored tests that will work again now 2022-06-15 00:51:08 +09:00
Dean Herbert
88d5e074a8 Rename lowPriority to batchImport 2022-06-15 00:46:00 +09:00
Dean Herbert
f11fe54385 Remove custom hash function flow 2022-06-15 00:42:30 +09:00
Dean Herbert
2f8290831a Skip quick import clause when importing a single item
Closes https://github.com/ppy/osu/issues/18600.
2022-06-15 00:26:34 +09:00
Dean Herbert
9f599a5ab4 Remove unused lowPriority flag from one Import method 2022-06-14 19:52:30 +09:00
Dean Herbert
0147a8ecee Add test coverage of HUD components still getting updated when hidden 2022-06-14 18:35:49 +09:00
Dean Herbert
f997886142 Add scrolling gameplay visualisation mode to latency certifier 2022-06-13 17:18:32 +09:00
Dean Herbert
17eaf7bb5c Add failing test coverage showing hit meters don't update when not visible 2022-06-13 16:36:22 +09:00
Salman Ahmed
20e7f32fd9 Improve test case to work in headless 2022-06-12 17:53:10 +03:00
Salman Ahmed
038021f682 Add failing test case 2022-06-11 20:52:25 +03:00
Salman Ahmed
5b3b9a2cd3 Add test coverage for "simple" mode 2022-06-11 16:21:22 +03:00
Dean Herbert
8d53ed64a3 Fix mode cycling and add test coverage 2022-06-11 21:36:43 +09:00
Dean Herbert
096d6df868 Fix regression in testing and setting logic 2022-06-10 20:33:21 +09:00
Dean Herbert
d46739ff0b Add circle gameplay test coverage 2022-06-10 19:42:25 +09:00
Dan Balasescu
e5d6dc1ba5
Merge pull request #18606 from peppy/latency-comparer
Add latency certifier system
2022-06-10 19:41:44 +09:00
Dean Herbert
936b38e0c5 Reduce test coverage to a point where headless tests will run correctly 2022-06-10 16:13:53 +09:00
Dean Herbert
e0644f2726 Simplify flow of progression to be linear 2022-06-10 15:19:10 +09:00
Dan Balasescu
c9dfffbc0e
Merge pull request #18619 from peppy/fix-collection-performance
Fix performance overhead of large collections
2022-06-10 15:01:31 +09:00
Dean Herbert
7d86010903 Fix test regression 2022-06-10 14:41:22 +09:00
Dean Herbert
4a5e86e451 Rename Beatmaps to BeatmapHashes for clarity 2022-06-10 14:03:51 +09:00
Dan Balasescu
bc7262a3dd
Merge pull request #18627 from Joehuu/always-show-mod-selector-beatmap-info
Always show mod selector on beatmap info leaderboards regardless of supporter
2022-06-09 18:18:12 +09:00
Dean Herbert
8879c59b36
Merge pull request #18623 from LittleEndu/new-me-recommender
Use new own profile statistics in difficulty recommender
2022-06-09 11:11:21 +09:00
Joseph Madamba
5c138de446 Add failing mod selector visibility test 2022-06-08 13:22:49 -07:00
Joseph Madamba
c6264d5b3d Split beatmap set overlay tests to online and offline 2022-06-08 13:21:23 -07:00
Endrik Tombak
bf67b35ade Use new own profile statistics in difficulty recommender 2022-06-08 17:44:57 +03:00
Dean Herbert
6aa84425a2 Add comment explaining test expectations 2022-06-08 19:26:34 +09:00
Dean Herbert
c661f2b059 Ensure ChannelManager has access to API from point of construction
Closes https://github.com/ppy/osu/issues/18451.
2022-06-08 19:15:23 +09:00
Dean Herbert
3d4d87bcb2 Update test expectations 2022-06-08 18:34:28 +09:00
Dean Herbert
42cd7d9e6e Change CollectionManager to only store MD5 hashes instead of full BeatmapInfo 2022-06-08 18:23:09 +09:00
Dan Balasescu
c43670fcd9
Merge pull request #18603 from peppy/fix-import-dialog
Add placeholder when no results are visible at song select
2022-06-08 15:22:31 +09:00
Dean Herbert
3b46787e06
Merge pull request #18496 from smoogipoo/multiplayer-leaderboard-user-mods-2
Support mod/ruleset combinations in multiplayer gameplay leaderboard
2022-06-08 14:58:13 +09:00
Dean Herbert
eee79c9531
Merge pull request #18610 from jai-x/refactor-chat-line
Refactor `ChatLine` and fix `DrawableChannel` flow padding
2022-06-08 13:54:53 +09:00
Dean Herbert
cd649f7d97
Merge branch 'master' into multiplayer-leaderboard-user-mods-2 2022-06-08 13:39:42 +09:00
Salman Ahmed
c69d53df00 Add failing test case 2022-06-08 04:29:50 +03:00
Jai Sharma
2f635fa854 Refactor ChatLine and fix DrawableChannel flow padding
Refactors `ChatLine` component to use more sensible override properties
and layout using grid container. Moves creation of username component
into its own method to simplify BDL.

Updates padding of base `DrawableChannel` flow padding.

Removes usage of `ChatOverlayDrawableChannel` since it's overrides are
no longer needed.

Updates usage of `StandAloneChatDisplay` to use new override properties
of `DrawableChannel`.
2022-06-07 22:35:45 +01:00
Dean Herbert
b924aa3296 Fix tests failing when run headless 2022-06-08 00:36:19 +09:00
Dean Herbert
9da99a0ddf Rename to latency certifier 2022-06-07 23:34:55 +09:00
Dean Herbert
95dea00725 Tidy up code and namespaces 2022-06-07 23:10:08 +09:00
Dean Herbert
058760253a Add test coverage of certification flow 2022-06-07 23:02:15 +09:00
Dean Herbert
0adeccbf03 Add full latency testing flow 2022-06-07 17:28:31 +09:00
Dean Herbert
430bacf917 Add initial layout of comparison screens 2022-06-07 17:28:31 +09:00
Dean Herbert
0d32c94104 Add initial implementation of beatmap carousel no-results-placeholder 2022-06-07 17:25:06 +09:00
Dean Herbert
df9174ec00 Remove import popup dialog from song select
This has been replaced in spirit by the first run overlay.
2022-06-07 16:45:27 +09:00
Henry Lin
ef5d601f67 Fix difficulty name overflow in score panel 2022-06-07 12:05:03 +08:00
Dan Balasescu
86b685f7e4
Merge pull request #18589 from peppy/skin-bool-parsin
Change `skin.ini` boolean parsing to match osu!stable
2022-06-07 10:11:07 +09:00
Bartłomiej Dach
211f0d1e04
Expand test coverage for parsing bool skin config values 2022-06-06 19:57:08 +02:00
Dean Herbert
44400142e2
Merge pull request #18584 from smoogipoo/fix-spectating-combo
Fix combo starting at 0 when spectating
2022-06-06 19:16:47 +09:00
Dean Herbert
734636299e
Merge pull request #18567 from jai-x/update-dayseparator
Update `DaySeparator` to use new design throughout
2022-06-06 19:15:43 +09:00
Dan Balasescu
4e35ac8d4c Add test 2022-06-06 18:01:52 +09:00
Dan Balasescu
b897e1464f
Merge pull request #18462 from frenzibyte/fix-timeline-zooming
Fix timeline objects disappearing prematurely on wide-screens
2022-06-05 11:49:44 +09:00
Jai Sharma
c0aaeff2b3 Update DaySeparator to use new design throughout
Moves `DaySeparator` chat component to it's own file and update it to
match new chat design. Makes use of several virtual attributes that can
be overridden to update spacing and layout in other usage contexts.

Remove redundant usage of `ChatOverlayDaySeparator`, since the new
design is now part of the base class.

Create `StandAloneDaySeparator` to use in `StandAloneChatDisplay` which
overrides attributes to match correct spacing and layout for its design.

Ensure that `DrawableChannel.CreateDaySeparator` returns type of
`DaySeparator` instead of `Drawable`.
2022-06-04 18:02:14 +01:00
Dan Balasescu
1c738e22ae
Merge pull request #18523 from peppy/tap-button
Add tap for BPM button
2022-06-03 18:11:10 +09:00
Dean Herbert
1b4c89c418 Update realm to latest version
Contains minor changes to async usage in line with upstream API changes.

I believe a feedback issue we were seeing with offset changes (the only
component using async write flow) may have been resolved by these
upstream changes (see [release
notes](https://github.com/realm/realm-dotnet/releases/tag/10.14.0)) but
am not investigating further just yet.
2022-06-03 14:16:10 +09:00
Salman Ahmed
588151f48b Add new failing test coverage 2022-06-03 02:34:10 +03:00
Salman Ahmed
ca68751fdc Update test to match expectation 2022-06-03 02:22:16 +03:00
Salman Ahmed
8471b24659 Merge branch 'master' into fix-timeline-zooming 2022-06-03 02:00:09 +03:00
Bartłomiej Dach
6f1437e73d
Fix compilation failure due not applying rename fully 2022-06-02 21:18:09 +02:00
Bartłomiej Dach
59ffc8b08e
Merge branch 'master' into multiplayer-leaderboard-user-mods-2 2022-06-02 20:45:10 +02:00
Bartłomiej Dach
d3f217cbdf
Merge branch 'master' into scoreprocessor-cleanup 2022-06-02 18:23:35 +02:00
Dean Herbert
c42485cea9 Fix test button references 2022-06-02 17:29:45 +09:00
Dean Herbert
5adbf85654
Merge pull request #18422 from smoogipoo/detect-exclusive-fullscreen
Detect exclusive fullscreen on Windows
2022-06-02 15:13:02 +09:00
Dan Balasescu
793dfe2bc8 Mark players as playing 2022-06-02 14:22:45 +09:00
Dan Balasescu
600da89f72 Fix disposing previous leaderboard too late 2022-06-02 14:22:15 +09:00
Dean Herbert
d12f6ea221 Add basics of tap button 2022-06-02 11:57:06 +09:00
Dean Herbert
24ce10ed6f
Merge branch 'master' into fix-dummmy-api-request-firing-2 2022-06-02 07:47:21 +09:00
Dean Herbert
6b297bc6ed
Merge pull request #18502 from peppy/editor-timing-follow-current-time
Add automatic control point tracking to the timing screen
2022-06-02 07:37:03 +09:00
Dean Herbert
42598ce22a Refactor warning to notice in method names and usages 2022-06-01 16:51:58 +09:00
Dean Herbert
a940676fc2 Add adjustment buttons 2022-05-31 21:31:20 +09:00
Dan Balasescu
13d85b8cc7 Merge branch 'scoreprocessor-cleanup' into multiplayer-leaderboard-user-mods-2 2022-05-31 19:53:37 +09:00
Dan Balasescu
132c94c1b5 Remove Ruleset parameter from ResetFromReplayFrame() 2022-05-31 17:16:23 +09:00
Dean Herbert
9746cbb161 Ensure rows have loaded before attempting to click them 2022-05-31 15:54:07 +09:00
Dean Herbert
cf5da44492 Add automatic control point tracking to the timing screen 2022-05-31 15:00:30 +09:00
Dean Herbert
53844d3df1 Refactor settings item "warning" text to allow non-warning state 2022-05-31 14:01:42 +09:00
Dean Herbert
c892aed797 Merge branch 'master' into fix-dummmy-api-request-firing-2 2022-05-31 12:23:26 +09:00
Dean Herbert
1d5a156c15
Merge pull request #18427 from sw1tchbl4d3r/currently_playing_search
Add search bar for the `CurrentlyPlayingDisplay`
2022-05-30 23:03:00 +09:00
Dean Herbert
17174a7b09 Ensure some results have been loaded in playlist results screen tests
Basically, the failing delayed test would fire two web requests during
the proceedings. In unfortunate timing, the first would succeed and the
test would think "everything is okay", but the actual request loading
results has not yet run.

This check ensures *something* is loaded, which seems to be enough to
make things reliable.
2022-05-30 19:29:16 +09:00
Dan Balasescu
22d998dc2a Use new score processor in MultiplayerGameplayLeaderboard 2022-05-30 19:26:26 +09:00
Dean Herbert
0981d415a1 Select correct channel regardless of load order 2022-05-30 17:57:48 +09:00
Dean Herbert
f65d2db77f Remove "V2" suffix from ChatOverlay components 2022-05-30 17:54:09 +09:00
Dean Herbert
9e678101cf
Merge pull request #18442 from jai-x/new-chat-announce-channel
Display Announce type channels separately in new chat overlay
2022-05-30 16:53:15 +09:00
Dean Herbert
5478ac21ea
Merge branch 'master' into currently_playing_search 2022-05-30 16:48:53 +09:00
Dan Balasescu
be998cdb0a
Merge pull request #18477 from frenzibyte/fix-timeline-context-menu
Fix context menu no longer opening for hitobjects in timeline
2022-05-30 11:49:06 +09:00
Dan Balasescu
779ec7d9db
Merge pull request #18487 from jai-x/remove-old-chat
Remove old chat overlay components
2022-05-30 11:04:05 +09:00
Dean Herbert
03deb336b2 Fix some more chat tests failing intermittently
```
TearDown : osu.Framework.Testing.Drawables.Steps.AssertButton+TracedException : Channel 1 ready
--TearDown
   at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
   at osu.Framework.Threading.Scheduler.Update()
   at osu.Framework.Graphics.Drawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Platform.GameHost.UpdateFrame()
   at osu.Framework.Threading.GameThread.processFrame()
   at osu.Framework.Threading.GameThread.RunSingleFrame()
   at osu.Framework.Threading.GameThread.<createThread>g__runWork|66_0()
   at System.Threading.Thread.StartHelper.Callback(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)

-----

One or more child tests had errors
  Exception doesn't have a stacktrace

[runtime] 2022-05-29 19:29:09 [verbose]: 💨 Class: TestSceneChatOverlayV2
[runtime] 2022-05-29 19:29:09 [verbose]: 🔶 Test:  TestSlowLoadingChannel
[runtime] 2022-05-29 19:29:09 [verbose]: Chat is now polling every 60000 ms
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #1 Setup request handler
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #2 Add test channels
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #3 Show overlay (slow-loading)
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #4 Join channel 1
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #5 Select channel 1
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #6 Channel 1 loading
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #7 Join channel 2
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #8 Select channel 2
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #9 Channel 2 loading
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #10 Finish channel 1 load
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #11 Channel 1 ready
[runtime] 2022-05-29 19:29:09 [verbose]: 💥 Failed
[runtime] 2022-05-29 19:29:09 [verbose]:  Currently loading components (2)
[runtime] 2022-05-29 19:29:09 [verbose]: TestSceneChatOverlayV2+SlowLoadingDrawableChannel
[runtime] 2022-05-29 19:29:09 [verbose]: - thread: ThreadedTaskScheduler (LoadComponentsAsync (standard))
[runtime] 2022-05-29 19:29:09 [verbose]: - state:  Loading
[runtime] 2022-05-29 19:29:09 [verbose]: TestSceneChatOverlayV2+SlowLoadingDrawableChannel
[runtime] 2022-05-29 19:29:09 [verbose]: - thread: ThreadedTaskScheduler (LoadComponentsAsync (standard))
[runtime] 2022-05-29 19:29:09 [verbose]: - state:  Ready
[runtime] 2022-05-29 19:29:09 [verbose]: 🧵 Task schedulers
[runtime] 2022-05-29 19:29:09 [verbose]: LoadComponentsAsync (standard) concurrency:4 running:1 pending:0
[runtime] 2022-05-29 19:29:09 [verbose]: LoadComponentsAsync (long load) concurrency:4 running:0 pending:0
[runtime] 2022-05-29 19:29:09 [verbose]: 🎱 Thread pool
[runtime] 2022-05-29 19:29:09 [verbose]: worker:          min 32     max 32,767 available 32,765
[runtime] 2022-05-29 19:29:09 [verbose]: completion:      min 32     max 1,000  available 1,000

```
2022-05-30 04:34:10 +09:00
Jai Sharma
8f596520f3 Remove old chat overlay components 2022-05-29 20:08:43 +01:00
Bartłomiej Dach
f9f8a32380
Merge branch 'master' into new-chat-announce-channel 2022-05-29 18:55:43 +02:00
Dean Herbert
caee9e67b6 Centralise DrawableChannel checks and account for async load delays 2022-05-29 23:16:26 +09:00
Bartłomiej Dach
18f75d8c58
Remove redundant initialiser 2022-05-29 16:06:01 +02:00
Dean Herbert
c078c06902 Fix unsafe config fetching 2022-05-29 22:55:53 +09:00
Salman Ahmed
12d5b355e4 Add failing test coverage 2022-05-29 15:23:32 +03:00
Salman Ahmed
0349d92f8b Add failing test case 2022-05-28 17:45:00 +03:00
Bartłomiej Dach
a8e1c5ba87
Fix remaining cases of incorrect GameplayState construction in tests
Manual attempts to initialise replaced by a new `TestGameplayState`
helper for ease of use.
2022-05-28 15:23:29 +02:00
Bartłomiej Dach
dcf3d76954
Fix unobserved exceptions due to using unconverted beatmap
`TestSceneBeatmapSkinFallbacks` was locally caching a `GameplayState`
instance to fulfill dependencies of a
`SkinnableTargetComponentsContainer`. However, it was doing so using
`new TestBeatmap()`, which is a raw decoded beatmap that hasn't been
converted to any ruleset yet, which was causing failures in
`BeatmapDifficultyCache.GetTimedDifficultyAttributesAsync()` as that
method is expecting to receive a post-conversion, ready-for-gameplay
beatmap.

Resolve by proxying forward dependency instances from the
already-known-to-be-working `actualComponentsContainer`.
2022-05-28 15:23:29 +02:00
Bartłomiej Dach
e18fec3d89
Fix unobserved exceptions due to unimplemented beatmap converter
`TestSceneStatisticsPanel` intends to check the operation of statistics
panels using dummy ruleset classes. However, `StatisticsPanel` relies on
being able to retrieve the playable beatmap, which requires a converter.
One was not provided by the dummy rulesets, therefore the retrieval
would fail with an unobserved exception.

To fix, add a barebones converter implementation that is enough for the
test to pass.
2022-05-28 14:10:57 +02:00
Jai Sharma
320b6ca631 Display Announce type channels separately in new chat overlay 2022-05-27 16:18:22 +01:00
sw1tchbl4d3
e2951d70d1 Address code style issues 2022-05-27 16:38:54 +02:00
Dean Herbert
2f57849bcb Fix unexpected assertion failure 2022-05-27 20:59:00 +09:00
Dean Herbert
ef47b380c6 Add featured artist playlist category 2022-05-27 20:18:46 +09:00
Joseph Madamba
125dda716d Add failing scores container visibility test 2022-05-26 19:46:42 -07:00
Joseph Madamba
0cdefbc6df Add failing beatmap info status test 2022-05-26 17:52:17 -07:00
Bartłomiej Dach
818b344c2b
Merge branch 'master' into editor-bottom-bar-new-design 2022-05-26 19:26:35 +02:00
Dean Herbert
b2607196b8 Merge branch 'master' into new-chat-integrate 2022-05-26 18:38:26 +09:00
Dean Herbert
fb586fe0b2 Merge branch 'master' into editor-bottom-bar-new-design 2022-05-26 18:32:28 +09:00
Dean Herbert
93c94b8ea0 Fix test caching woes 2022-05-26 18:30:37 +09:00
Bartłomiej Dach
af1d4d3aee
Use more proper button subtypes in tests 2022-05-25 23:06:12 +02:00
Bartłomiej Dach
4f8b6b52ba
Add failing test coverage for select/deselect all enable behaviour 2022-05-25 21:49:31 +02:00
Dean Herbert
acd554d918 Update time info and add bpm 2022-05-25 23:54:59 +09:00
Dean Herbert
91834f0319 Fix missing colour dependency in menu bar test scene 2022-05-25 22:56:47 +09:00
Dan Balasescu
fb22801afb
Merge pull request #18388 from peppy/editor-timing-waveforms
Add waveform comparison view to editor timing screen
2022-05-25 20:15:25 +09:00