1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-22 14:07:25 +08:00
Commit Graph

7176 Commits

Author SHA1 Message Date
Dean Herbert
b976848774 Add failing test coverage of exporting default skin importing with incorrect type 2021-12-02 18:05:16 +09:00
Dan Balasescu
c00684a2f7
Merge branch 'master' into new-multiplayer-playlist 2021-12-02 16:19:34 +09:00
Dean Herbert
0adfb75cf3 Combine similarly named StatefulMultiplayerClient tests 2021-12-02 14:53:07 +09:00
Dean Herbert
ec700e9142 Remove unused using statement 2021-12-02 14:01:57 +09:00
Dean Herbert
e855a49833 Add test coverage of default skin edit and export 2021-12-02 14:01:18 +09:00
Dean Herbert
65f0a80c97 Merge branch 'master' into realm-integration/skins-rebase 2021-12-02 13:37:20 +09:00
Dan Balasescu
89c47708a1 Merge branch 'master' into new-multiplayer-playlist 2021-12-01 21:35:23 +09:00
Dan Balasescu
f9b4e6f004 Add test considering expired items 2021-12-01 21:35:23 +09:00
Dan Balasescu
e87b0003fb Fix queue mode not being bound to in all cases 2021-12-01 21:35:23 +09:00
Dan Balasescu
ad35f3434b Fix queue list not considering expired items 2021-12-01 21:35:23 +09:00
Dan Balasescu
1152c4e8e9 Fix tests 2021-12-01 21:35:22 +09:00
Dan Balasescu
95050d6597 Extract class to file 2021-12-01 21:35:22 +09:00
Dan Balasescu
11c137cf83 Ignore test 2021-12-01 21:35:22 +09:00
Dan Balasescu
0b3cc47a51 Fix list not repopulating on new room 2021-12-01 21:35:22 +09:00
Dan Balasescu
a4cd22d5a9 Clear lists on room leave 2021-12-01 21:35:22 +09:00
Dan Balasescu
fc8c8685b8 Add playlist queue tests 2021-12-01 21:35:22 +09:00
Dan Balasescu
e0ca1af9b8 Remove ctor params 2021-12-01 21:35:22 +09:00
Dan Balasescu
bfd2dc28c8 Rename QueueList -> MultiplayerQueueList 2021-12-01 21:35:22 +09:00
Dan Balasescu
01108016a7 Add reorder test 2021-12-01 21:35:22 +09:00
Dan Balasescu
89d22824c3 Fix incorrect comment 2021-12-01 21:35:22 +09:00
Dan Balasescu
7e800659aa Fix incorrect assertion 2021-12-01 21:35:22 +09:00
Dan Balasescu
48a181af1f Fix test button display 2021-12-01 21:35:22 +09:00
Dan Balasescu
ef170471f0 Merge branch 'master' into new-multiplayer-playlist 2021-12-01 21:35:22 +09:00
Dan Balasescu
68bb49fc1e Add QueueList tests 2021-12-01 21:33:48 +09:00
Dan Balasescu
0cb35e8b18 Separate out QueueList 2021-12-01 21:33:48 +09:00
Dan Balasescu
17bc0b51aa Merge branch 'playlist-item-add-owner' into new-multiplayer-playlist 2021-12-01 21:33:48 +09:00
Dan Balasescu
942e48ffbd Merge branch 'master' into new-multiplayer-playlist 2021-12-01 21:33:11 +09:00
Dan Balasescu
c38537a51a Initial implementation of MultiplayerPlaylist 2021-12-01 21:32:56 +09:00
Dan Balasescu
c225f8f84c
Merge branch 'master' into realm-subscribe-helper-methods 2021-12-01 20:15:21 +09:00
Dean Herbert
a89e18de42
Merge pull request #15868 from smoogipoo/refactor-test
Refactor difficulty adjustment mod combinations test
2021-12-01 15:43:08 +09:00
Dean Herbert
4306420922 Add extension methods to add extra safety to realm subscriptions
Also adjusts the naming and documentation to make it (hopefully) easier
to understand what this method/process implies.
2021-12-01 15:09:53 +09:00
Dean Herbert
d78c18d03f
Remove excess brackets
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-12-01 12:44:25 +09:00
Dan Balasescu
0479027f64 Apply assertion fix from review 2021-12-01 11:29:02 +09:00
Dan Balasescu
7d0135063e
Merge pull request #15875 from peppy/fix-match-type-propagation
Fix match type not being propagated correctly to other users' settings
2021-12-01 11:23:28 +09:00
Bartłomiej Dach
de034b4d9c
Fix test failures due to wrong asserts & uninitialised playlist
* The "create room" button was disabled headless due to not specifying
  the imported beatmap. In visual tests it seems to work due to
  selecting from the local database randomly.

* The test asserts are brought in line with expectations.
2021-11-30 20:57:08 +01:00
Bartłomiej Dach
b74b09eb3a
Add extra until step to make cause of potential failures more obvious 2021-11-30 20:56:11 +01:00
Dean Herbert
dda7142f48 Fix double screen exit in multiplayer song select tests potentially causing failure 2021-12-01 02:06:40 +09:00
Dean Herbert
ef3d0ee0db Merge branch 'master' into realm-integration/skins-rebase 2021-11-30 19:59:59 +09:00
Dan Balasescu
8fdb9ab4e5
Merge branch 'master' into realm-integration/live-queryable-fix 2021-11-30 18:54:14 +09:00
Dan Balasescu
daa7135381
Merge branch 'master' into realm-nested-context-creation-deadlock-fix 2021-11-30 18:01:00 +09:00
Dean Herbert
8de06803a8
Fix incorrect test step text
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2021-11-30 17:16:30 +09:00
Dean Herbert
049d9ce5ef Add test coverage of match type propagating to other users' settings 2021-11-30 17:09:32 +09:00
Dean Herbert
a286838b3a Merge branch 'realm-nested-context-creation-deadlock-fix' into realm-integration/skins-rebase 2021-11-30 16:17:55 +09:00
Dean Herbert
e83ada40f9 Merge branch 'realm-nested-context-creation-deadlock-fix' into realm-integration/skins-rebase 2021-11-30 15:56:34 +09:00
Dean Herbert
1ff0326f8e Merge branch 'master' into realm-integration/skins-rebase 2021-11-30 15:50:10 +09:00
Dean Herbert
0feec09966 Refactor beatmap importer tests to ensure realm is refreshed when waiting on state 2021-11-30 14:12:49 +09:00
Dean Herbert
a73919917c Fix intermittent test failures in TestScenBeatmapInfoWedge due to async load
https://github.com/ppy/osu/runs/4358685294?check_suite_focus=true

Occurs due to the wedge content also reloading on ruleset change, which
wasn't being accounted for. In a fail case, the content would change
during the "select beatmap" step's async load wait, causing incorrect
results.

51a353e12d/osu.Game/Screens/Select/BeatmapInfoWedge.cs (L70)
2021-11-30 12:32:09 +09:00
Dean Herbert
6b0999052f Merge branch 'master' into realm-integration/live-queryable-fix 2021-11-30 12:02:37 +09:00
Dean Herbert
2e31f5a338 Update tests to match new behaviour 2021-11-30 11:55:13 +09:00
Dan Balasescu
4a34a5c738 Refactor difficulty adjustment mod combinations test 2021-11-30 11:11:42 +09:00
Bartłomiej Dach
0fc4d6dc2a
Implement beatmap card difficulty list 2021-11-29 22:04:09 +01:00
Bartłomiej Dach
431ac1d97b
Remove unused using directive 2021-11-29 20:57:55 +01:00
Dan Balasescu
8a188b74b1
Merge pull request #15850 from peppy/realm-integration/misc-qol
Apply a couple of realm related documentation/interface changes
2021-11-29 18:58:15 +09:00
Dean Herbert
566e10f8cc Refactor test to be easier to follow 2021-11-29 18:55:23 +09:00
Dean Herbert
f6a3709060 Store default skins to database 2021-11-29 18:28:25 +09:00
Dean Herbert
23146d59d1 Use ILive for current skin 2021-11-29 18:28:25 +09:00
Dean Herbert
2a9c7c00c8 Update tests and file access code 2021-11-29 18:28:25 +09:00
Dean Herbert
4c2b0dd2d1 Update RealmLive tests in line with modified behaviour 2021-11-29 18:28:25 +09:00
Dean Herbert
c411a755c7 Merge branch 'realm-nested-context-creation-deadlock-fix' into realm-integration/compiled 2021-11-29 18:28:07 +09:00
Dean Herbert
29f1ad10ba Merge branch 'realm-integration/misc-qol' into realm-integration/compiled 2021-11-29 18:28:03 +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
Dean Herbert
83b4625bd5 Replace existing cases with new helper method 2021-11-19 22:15:41 +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