1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 01:52:55 +08:00
Commit Graph

7066 Commits

Author SHA1 Message Date
Dean Herbert
566e10f8cc Refactor test to be easier to follow 2021-11-29 18:55:23 +09:00
Dean Herbert
bac7966337 Update RealmLiveTests to use interface type 2021-11-29 18:17:30 +09:00
Dean Herbert
071a8c6709 Add test coverage showing RealmLive failure after an attach 2021-11-29 17:34:58 +09:00
Dean Herbert
54798eabc9 Add test coverage of potential deeadlock scenario with nested realm context fetching 2021-11-29 16:29:53 +09:00
Dean Herbert
791f7e3801 Update RealmLive tests in line with modified behaviour 2021-11-29 15:16:16 +09:00
Dean Herbert
d73e81ee63 Add test coverage of non-optimised existing model check 2021-11-29 14:48:28 +09:00
Bartłomiej Dach
05f7ea6b6d
Remove mentions of "panel" and "direct" from names of old download buttons 2021-11-27 15:08:03 +01:00
Bartłomiej Dach
a043d1e427
Move old beatmap download button to more general namespace 2021-11-27 15:06:57 +01:00
Bartłomiej Dach
567c985da0
Remove beatmap panel test scene 2021-11-27 14:56:27 +01:00
Dan Balasescu
e1445dcb05 Only show owner in match subscreen 2021-11-26 17:40:45 +09:00
Dan Balasescu
e9a19aacd7 Fix tests by requiring host 2021-11-26 17:23:50 +09:00
Dan Balasescu
8541db1e85 Merge branch 'master' into playlist-item-add-owner 2021-11-26 17:13:23 +09:00
Dan Balasescu
5e53f51c99
Merge pull request #15812 from peppy/realm-live-unmanaged-fetch-fix
Avoid attempting to fetch a non-managed `RealmLive` instance from the realm backing
2021-11-26 15:37:58 +09:00
Dean Herbert
40d1b97af1 Avoid attempting to fetch a non-managed RealmLive instance from the realm backing
For compatibility reasons, we quite often convert completely unmanaged
instances to `ILive`s so they fit the required parameters of a property
or method call. This ensures such cases will not cause any issues when
trying to interact with the underlying data.

Originally I had this allowing write operations, but that seems a bit
unsafe (when performing a write one would assume that the underlying
data is being persisted, whereas in this case it is not). We can change
this if the requirements change in the future, but I think throwing is
the safest bet for now.
2021-11-26 15:06:14 +09:00
Dean Herbert
13612c0d02 Add equality support to ILive types 2021-11-26 14:56:16 +09:00
Dan Balasescu
1f5d95666e Add owner avatar to multiplayer items 2021-11-25 23:15:29 +09:00
Dean Herbert
7a3c69544b
Merge pull request #15799 from smoogipoo/fix-songselect-test-failures-2
Fix SongSelect-related test failures
2021-11-25 23:01:06 +09:00
Dan Balasescu
d0c0b7ce47 Fix intermittent beatmap thumbnail test 2021-11-25 22:05:39 +09:00
Dan Balasescu
09dd054283 Fix SongSelect-related test failures 2021-11-25 21:11:13 +09:00
Dan Balasescu
f712aeee01
Merge pull request #15795 from peppy/realm-integration/separate-download-flow
Split out download logic from main manager classes
2021-11-25 20:59:23 +09:00
Dean Herbert
eeccf836ec Remove unnecessary GameHost parameter 2021-11-25 17:42:41 +09:00
Dean Herbert
a2ab9f457d Move score download logic out of ScoreManager 2021-11-25 17:33:04 +09:00
Dean Herbert
716543b5b3 Move beatmap download logic out of BeatmapManager 2021-11-25 17:29:41 +09:00
Dean Herbert
e6cfe44652 Fix occasional test failure due to default value oversight in TestSceneBeatmapCarousel 2021-11-25 16:29:06 +09:00
Dean Herbert
306e13fa7b Remove all usages of FileStore.QueryFiles 2021-11-25 14:06:02 +09:00
Dean Herbert
1533e245de
Merge pull request #15767 from bdach/beatmap-card/track-preview
Add preview track playback function to beatmap card
2021-11-25 12:08:03 +09:00
Bartłomiej Dach
1907b42f82
Use constant online IDs in tests to avoid preview not working randomly 2021-11-24 20:34:33 +01:00
Bartłomiej Dach
20f71da2c4
Merge branch 'master' into fix-mp-resuming 2021-11-24 20:17:58 +01:00
Dan Balasescu
132bb59203 Update working beatmap when returning to match 2021-11-24 19:56:02 +09:00
Dan Balasescu
ce8500a732
Merge branch 'master' into remove-model-file-list-inits 2021-11-24 19:46:42 +09:00
Dan Balasescu
e176083898
Merge pull request #15781 from peppy/beatmap-set-status
Rename `BeatmapSetOnlineStatus` to `BeatmapOnlineStatus`
2021-11-24 19:25:29 +09:00
Dean Herbert
b739b6a725
Merge branch 'master' into beatmap-card/track-preview 2021-11-24 18:54:25 +09:00
Dean Herbert
183b95cbc2 Rename BeatmapSetOnlineStatus to BeatmapOnlineStatus
This variable is used at more than just a set level.
2021-11-24 18:42:49 +09:00
Dean Herbert
ddbd4f9473 Merge branch 'master' into remove-model-file-list-inits 2021-11-24 18:39:01 +09:00
Dean Herbert
0fe27cc8a1 Replace one more usage 2021-11-24 18:29:33 +09:00
Dean Herbert
7603f7eb36 Fix a few incorrectly updated arguments 2021-11-24 18:14:18 +09:00
Dean Herbert
0c819b9cfb Combine all test data BeatmapSetInfo creation into a single method 2021-11-24 18:07:32 +09:00
Dan Balasescu
74b6c33fab
Merge pull request #15778 from peppy/ruleset-info-id-usage
Update usages of `RulesetInfo.ID` to use `OnlineID` instead
2021-11-24 16:55:28 +09:00
Dan Balasescu
834bdd8e5c
Merge pull request #15776 from peppy/non-null-beatmapset-metadata
Make `BeatmapSet.Metadata` non-null
2021-11-24 16:48:28 +09:00
Dan Balasescu
8ce5324c8b
Merge pull request #15772 from peppy/remove-model-list-inits
Initialise `BeatmapSet.Beatmaps` list at construction time
2021-11-24 16:41:19 +09:00
Dean Herbert
bbd3ea5b77 Update all actual usages of RulesetInfo.ID to use OnlineID instead 2021-11-24 15:50:26 +09:00
Dean Herbert
f283770f34 Update mock RulesetInfo usage to set OnlineID instead of ID 2021-11-24 15:50:26 +09:00
Dean Herbert
cb093e1e01 Remove reundant self-sets of metadata 2021-11-24 15:08:04 +09:00
Dean Herbert
3946a39b65 Make BeatmapSet.Metadata non-null 2021-11-24 15:03:34 +09:00
Dean Herbert
44c34ca7b2 Revert changes causing BeatmapSet.Metadata to be expectedly null in some tests 2021-11-24 14:52:08 +09:00
Dean Herbert
c7bc03e6f7 Add helper method for editor check tests 2021-11-24 14:22:41 +09:00
Dean Herbert
c2f8d9f677 Update tests which set Files lists directly 2021-11-24 14:00:14 +09:00
Dan Balasescu
cf17c51df2
Merge pull request #15770 from peppy/fix-incorrect-id-usage-in-tests
Fix incorrect usage of `ID` in `TestSceneMultiplayerResults`
2021-11-24 13:51:30 +09:00
Dean Herbert
8c60f37508 Fix cases of dynamically assigning Beatmaps to BeatmapSetInfo using list assignment 2021-11-24 13:27:37 +09:00
Dean Herbert
b1f3e98045 Fix incorrect usage of ID in TestSceneMultiplayerResults 2021-11-24 13:05:51 +09:00
Dean Herbert
729f681938 Update cases where equality can be used instead of primary key equality 2021-11-24 12:49:57 +09:00
Dean Herbert
049f25a133
Merge pull request #15757 from smoogipoo/fix-multiplayer-tests
Fix several intermittent multiplayer test failures
2021-11-24 09:32:01 +09:00
Bartłomiej Dach
1a1603f0db
Implement preview track playback 2021-11-23 23:17:30 +01:00
Bartłomiej Dach
9164f006aa
Implement basic behaviour of play button 2021-11-23 22:44:09 +01:00
Bartłomiej Dach
b44db9f5e5
Add test scene for thumbnail component 2021-11-23 22:44:08 +01:00
Dan Balasescu
a521d1b835 Wait for ready button to be enabled first 2021-11-23 17:09:38 +09:00
Dan Balasescu
fd4d5e98a7
Merge pull request #15745 from bdach/settings-number-box-stack-overflow
Fix crashes on trying to play back replays of seeded mods with seed value over 1 billion
2021-11-23 16:36:05 +09:00
Dan Balasescu
6363833fb3 Revert unnecessary changes 2021-11-23 16:17:09 +09:00
Dan Balasescu
69a9fc9732 Fix a few more multiplayer test timeouts
These can be tested by adding a `Task.Delay(3000);` at the end of the
`MultiplayerClient.JoinRoom` task. The reason is typically that
`Client.Room` becomes not-null but the join task still hasn't completed
yet, so e.g. the ready button is still disabled.
2021-11-23 16:07:03 +09:00
Bartłomiej Dach
b596a0204c
Rewrite overflow test step for legibility 2021-11-23 06:43:17 +01:00
Dan Balasescu
10bd7176e0 Fix potential test failure in TestSceneMultiplayerReadyButton
Couldn't exactly reproduce https://github.com/ppy/osu/runs/4294316800,
but I found a similar issue via:

```diff
diff --git a/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayerReadyButton.cs b/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayerReadyButton.cs
index 84b63a5733..29cac9b061 100644
--- a/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayerReadyButton.cs
+++ b/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayerReadyButton.cs
@@ -3,6 +3,7 @@

 using System;
 using System.Linq;
+using System.Threading;
 using System.Threading.Tasks;
 using NUnit.Framework;
 using osu.Framework.Allocation;
@@ -81,6 +82,8 @@ private void load(GameHost host, AudioManager audio)

                         await Client.ToggleReady();

+                        Thread.Sleep(1000);
+
                         readyClickOperation.Dispose();
                     });
                 }
```
2021-11-23 14:07:55 +09:00
Dean Herbert
119ac19f86
Merge branch 'master' into realm-beatmap-file-relation 2021-11-23 10:20:22 +09:00
Dean Herbert
e580fc5abc
Merge pull request #15735 from peppy/remove-ruleset-info-inheritance
Remove subclassing of `RulesetInfo`
2021-11-23 10:18:32 +09:00
Bartłomiej Dach
1ec5dd2cdf
Merge branch 'master' into realm-beatmap-file-relation 2021-11-22 21:53:08 +01:00
Bartłomiej Dach
dced6a2e68
Add extended test coverage for desired input handling 2021-11-22 20:39:44 +01:00
Bartłomiej Dach
2350806b4c
Add failing test case for number box stack overflow scenario 2021-11-22 20:26:45 +01:00
Dean Herbert
001f7c36f3 Use Equals in carousel tests for better realm compatibility 2021-11-22 17:20:21 +09:00
Dean Herbert
b9923e5396 Remove subclassing of RulesetInfo 2021-11-22 16:39:17 +09:00
Dean Herbert
1cdfa6d9a0 Add helper property to access a realm beatmap's beatmap file 2021-11-22 15:30:11 +09:00
Dan Balasescu
f64d20ed71 Fix APIRoom queue mode not updated on change 2021-11-22 13:46:01 +09:00
Dean Herbert
bbb3abbc61
Merge branch 'master' into multi-queueing-modes 2021-11-22 12:32:47 +09:00
Dan Balasescu
cad6d1d25d Adjust test to match new logic 2021-11-22 11:20:19 +09:00
Dan Balasescu
53dbbd6d64 Compare playlist item IDs instead in tests 2021-11-22 11:17:32 +09:00
Dan Balasescu
4b498c7bd6 Merge branch 'master' into multi-queueing-modes 2021-11-22 07:46:45 +09:00
Dean Herbert
c0962b1c4f
Merge branch 'master' into beatmap-card/download-button 2021-11-21 20:04:26 +09:00
Dean Herbert
63642450a4
Merge branch 'master' into fix-working-beatmap-wrong-exception-type 2021-11-21 15:50:07 +09:00
Dan Balasescu
a06b361fe2
Merge pull request #15705 from bdach/fix-difficulty-cache-caching-zeroes
Fix zero star difficulty values being cached when diffcalc was interrupted
2021-11-21 15:45:29 +09:00
Bartłomiej Dach
65cb011bac
Merge branch 'master' into beatmap-card/download-button 2021-11-20 18:49:11 +01:00
Bartłomiej Dach
297de27a6a
Use BindTarget from card rather than caching & resolving download tracker 2021-11-20 18:48:26 +01:00
Bartłomiej Dach
78ee213573
Merge branch 'master' into storage-path-extension-method 2021-11-20 18:21:46 +01:00
Bartłomiej Dach
6100bf66a6
Clean up cancellation handling in WorkingBeatmap
After the recent changes introducing cancellation support to
`WorkingBeatmap`, it turned out that if the cancellation support was
used, `GetPlayableBeatmap()` would raise timeout exceptions rather than
the expected `OperationCanceledException`.

To that end, split off a separate overload for the typical usage, that
catches `OperationCanceledException` and converts them to beatmap load
timeout exceptions, and use normal `OperationCanceledException`s in the
overload that requires a cancellation token to work.
2021-11-20 17:23:55 +01:00
Bartłomiej Dach
15feb17da8
Change difficulty cache storage type to nullable
The recent changes related to adding support for working beatmap load
cancellation exposed a flaw in the beatmap difficulty cache. With the
way the difficulty computation logic was written, any error in the
calculation process (including beatmap load timeout, or cancellation)
would result in a 0.00 star rating being permanently cached in memory
for the given beatmap.

To resolve, change the difficulty cache's return type to nullable.
In failure scenarios, `null` is returned, rather than
`default(StarDifficulty)` as done previously.
2021-11-20 17:00:50 +01:00
Dean Herbert
e0629ba81c Update all dependencies 2021-11-20 13:31:10 +09:00
Dan Balasescu
de0e8ad822 Merge branch 'master' into multi-queueing-modes 2021-11-19 18:58:15 +09:00
Dan Balasescu
4e625b78e2 Update queue mode names 2021-11-19 18:28:43 +09:00
Dean Herbert
59e763467f Move StoragePath implementation to an extension method 2021-11-19 16:08:38 +09:00
Dan Balasescu
a6a786b167 Remove namespacing of queue tests 2021-11-19 15:43:11 +09:00
Dean Herbert
5034cb1025
Merge branch 'master' into beatmap-card/download-button 2021-11-19 14:59:42 +09:00
Dean Herbert
0c289bf8e5 Remove pointless namespace 2021-11-19 14:46:53 +09:00
Dean Herbert
6dc6ca1bbb Fix potential null reference in FadeAccessibleBackground test class 2021-11-19 14:03:07 +09:00
Dean Herbert
cb2547a6be Merge branch 'master' into multi-queueing-modes 2021-11-19 13:20:57 +09:00
Dan Balasescu
6ebe54b183
Merge pull request #15494 from Tollii/beatmap-cancellation-token
Add support for cancellation tokens for beatmap difficulty calculation
2021-11-19 10:54:32 +09:00
Bartłomiej Dach
8a1d6757af
Merge branch 'master' into beatmap-card/download-button 2021-11-18 22:37:35 +01:00
Bartłomiej Dach
412abf30d9
Refactor buttons again to work with latest design guidelines 2021-11-18 22:34:40 +01:00
Dan Balasescu
1dacc50ecb Merge branch 'master' into multi-queueing-modes 2021-11-18 15:16:27 +09:00
Dean Herbert
d7b178ea37 Update test scenes which should not handle key repeat 2021-11-18 13:13:36 +09:00
Bartłomiej Dach
8528cab40b
Add test coverage for ruleset load failure scenario 2021-11-17 22:10:45 +01:00
Bartłomiej Dach
8b134914cf
Merge branch 'master' into beatmap-cancellation-token 2021-11-17 21:52:30 +01:00
Dan Balasescu
e4aec3f519
Merge pull request #15648 from peppy/playlist-show-invalid-beatmaps
Highlight invalid playlist items during room creation
2021-11-17 22:24:22 +09:00
Dean Herbert
a4953b5658 Update some remaining test usage of database ID 2021-11-17 20:56:57 +09:00