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

155 Commits

Author SHA1 Message Date
Dan Balasescu
806ca5d4de Update TestMultiplayerClient implementation to match server 2021-12-02 22:58:12 +09:00
Dan Balasescu
89c47708a1 Merge branch 'master' into new-multiplayer-playlist 2021-12-01 21:35:23 +09:00
Dan Balasescu
fc8c8685b8 Add playlist queue tests 2021-12-01 21:35:22 +09:00
Dean Herbert
0fae10500a Fix failing tests 2021-11-30 20:09:45 +09:00
Dean Herbert
01bc330d1c Rename method to match new purpose 2021-11-30 19:42:46 +09:00
Dean Herbert
f58c5cd9c0 Update MultiplayerClient to use BeatmapLookupCache 2021-11-30 19:36:25 +09:00
Dan Balasescu
e9a19aacd7 Fix tests by requiring host 2021-11-26 17:23:50 +09:00
Dan Balasescu
7c91cd674e Update test classes to set owner ids 2021-11-25 22:17:18 +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
Dan Balasescu
f3ba62d2c2 Add xmldoc to serverSidePlaylist 2021-11-22 11:26:41 +09:00
Dan Balasescu
10dc08a855 Store server-side playlist instead of mutating client-side version 2021-11-22 11:18:21 +09:00
Dan Balasescu
6420971660 Adjust test client with new queue-changing logic 2021-11-22 11:10:10 +09:00
Dan Balasescu
4c8c34b43f Use full name for round robin 2021-11-19 18:42:34 +09:00
Dan Balasescu
4e625b78e2 Update queue mode names 2021-11-19 18:28:43 +09:00
Dean Herbert
0c289bf8e5 Remove pointless namespace 2021-11-19 14:46:53 +09:00
Dan Balasescu
29d0d5badf Rename QueueModes -> QueueMode 2021-11-16 14:53:10 +09:00
Dan Balasescu
41e46f158f Fix tests following playlist changes
Also more closely follows the server implementation.
2021-11-16 14:37:33 +09:00
Dan Balasescu
9076519710 Give MultiplayerRoom a playlist, remove RequestAllPlaylistItems() 2021-11-16 14:13:43 +09:00
Dan Balasescu
f0593115b2 Remove RemovePlaylistItem() server method for the time being 2021-11-16 12:08:53 +09:00
Dan Balasescu
f743a3647f Rename APIPlaylistItem -> MultiplayerPlaylistItem 2021-11-15 23:14:27 +09:00
Dan Balasescu
ce47f456ec Change API for retrieving playlist items on join 2021-11-13 04:42:14 +09:00
Dan Balasescu
4aaf412ac9 Ensure one non-expired item when switching to host-only 2021-11-13 03:35:41 +09:00
Dan Balasescu
dbc23e224f Fix further test failures 2021-11-13 03:34:45 +09:00
Dan Balasescu
e31d7e8ad7 Fix new failing test 2021-11-13 02:32:20 +09:00
Dan Balasescu
867403d947 Update TestMultiplayerClient to be more in line with server 2021-11-13 01:42:54 +09:00
Dan Balasescu
3b24ec3643 Merge branch 'master' into multi-queueing-modes 2021-11-12 22:16:04 +09:00
Dean Herbert
6a098a8634 Rename BeatmapInfo.OnlineBeatmapID to OnlineID to match interface 2021-11-12 17:46:24 +09:00
Dan Balasescu
5c8c121446 Update behaviour to match server (removing playlist items) + tests 2021-11-11 23:39:15 +09:00
Dan Balasescu
07a7b4bcdc Merge branch 'master' into multi-queueing-modes 2021-11-11 22:19:30 +09:00
Bartłomiej Dach
f38d6ef8db
Add failing test steps 2021-11-11 09:01:50 +01:00
Dan Balasescu
c51cb62315 Adjust TestMultiplayerClient for correctness 2021-11-10 21:31:13 +09:00
Dan Balasescu
78793d8624 Update interface to remove items 2021-11-10 19:58:25 +09:00
smoogipoo
c716051530 Merge branch 'master' into multi-queueing-modes 2021-11-08 19:19:50 +09:00
Dean Herbert
0ecf5f201c Rename User to APIUser and move to correct namespace 2021-11-07 11:26:01 +09:00
smoogipoo
e6deb0c873 Merge branch 'master' into multi-queueing-modes 2021-11-05 15:57:25 +09:00
Dean Herbert
5a078da4d9 Fix APIBeatmapSet.Beatmaps being IEnumerable, causing stupid issues 2021-11-04 16:50:14 +09:00
Dean Herbert
3453160a8b Change PlaylistItem.Beatmap to be an IBeatmapInfo 2021-11-04 13:16:56 +09:00
Dean Herbert
1bfa1365a0 Rename "null user" tests to better explain purpose 2021-11-02 17:13:37 +09:00
smoogipoo
f076b72fbe Merge branch 'master' into multi-queueing-modes 2021-10-29 10:48:16 +09:00
smoogipoo
0e293471c2 Clean up multiplayer-screen tests by removing intermediate screen 2021-10-28 14:29:49 +09:00
smoogipoo
f3dba49aae Rename room managers 2021-10-27 19:36:32 +09:00
smoogipoo
a4397ee68c Add playlist continuation flow 2021-10-22 22:07:41 +09:00
smoogipoo
1b4be61ed1 Fix finished-play state not handled correctly 2021-10-22 21:16:10 +09:00
smoogipoo
4e6a02bde9 Fix missing QueueMode copies 2021-10-22 20:14:04 +09:00
smoogipoo
db87e42d47 Remove beatmap/ruleset/etc from MultiplayerRoomSettings 2021-10-22 16:48:28 +09:00
smoogipoo
eed8fa8d69 Expand comment a bit 2021-10-15 00:20:45 +09:00
smoogipoo
e6ee360511 Fix intermittent multiplayer tests 2021-10-15 00:10:39 +09:00
Salman Ahmed
f4ae587a33 Extract room request handling logic to its own class 2021-08-19 06:24:06 +03:00
smoogipoo
f2340c6dac Privatise mutable list 2021-08-17 09:48:33 +09:00
smoogipoo
b672d4b936 Refactor RequestHandlingMultiplayerRoomManager to avoid confusion 2021-08-17 09:43:37 +09:00
smoogipoo
352949069a Move filter to LoungeSubScreen 2021-08-17 09:36:43 +09:00
Salman Ahmed
f82ed64aa7 Fix participant panel null user test no longer functioning properly
I guess the changes that involved `MultiplayerTestScene` having a test
user lookup cache caused this test case to false-pass silently.

Added an explicit assert which ensures the added user indeed has a null
`User` value.
2021-08-16 09:07:00 +03:00
Dean Herbert
e6b3aba6e1 Fix incorrectly directed call in TestMultiplayerClient 2021-08-14 14:08:29 +09:00
Dan Balasescu
60e988aac3
Merge branch 'master' into multiplayer-kick-support 2021-08-12 11:46:56 +09:00
Dean Herbert
e8ad0fba75 Add required server methods for kicking users 2021-08-11 17:20:41 +09:00
Dean Herbert
ea6e441dec Simplify method of marking players as playing in test scenes 2021-08-09 19:21:22 +09:00
Dean Herbert
551929cf5a Simplify method of marking players as playing in test scenes 2021-08-09 19:18:13 +09:00
Dean Herbert
1e5d9003d3 Add the ability for tests to alter the room and user states which during testing 2021-08-09 16:58:36 +09:00
Dean Herbert
75426f84f1 Fire initial match user states in TestMultiplayerClient 2021-08-03 23:42:37 +09:00
Dean Herbert
9bfb0f1294 Add basic team vs handling to TestMultiplayerClient
Not sure this is the best place to do so... I can foresee this class
getting much larger than we want it to.
2021-08-03 23:42:37 +09:00
Dean Herbert
70da58323a Drop MatchRuleset terminology completely 2021-08-03 15:45:17 +09:00
Dean Herbert
9d1e95caf0 Add flow for sending match ruleset specific messages to the server 2021-08-02 18:47:26 +09:00
Dean Herbert
888954747c Rename class, add commenting and avoid firing requests to create rooms for testing purposes 2021-07-26 15:47:13 +09:00
smoogipoo
d6aa15e5d7 Remove local APIRoom from test multiplayer client 2021-07-19 20:19:23 +09:00
smoogipoo
a5a0f12e19 Also copy password in test room manager 2021-07-19 20:07:56 +09:00
smoogipoo
26d0eea485 Set HasPassword correctly in the response room 2021-07-19 20:03:32 +09:00
smoogipoo
8c0daa89a0 Make test multiplayer client validate password 2021-07-19 20:03:27 +09:00
smoogipoo
063f14da98 Update test room manager to not return passwords 2021-07-19 20:03:27 +09:00
Dean Herbert
5148069efe Update signatures in line with no-overload methods (unsupported by signalr) 2021-07-12 15:49:19 +09:00
smoogipoo
c93c615f5e Also fix up interface names 2021-06-25 20:15:30 +09:00
smoogipoo
1ed61b9b98 Fix up dependencies class names 2021-06-25 20:11:38 +09:00
smoogipoo
a27a647ae7 Rename RoomDependencies -> OnlinePlayDependencies 2021-06-25 18:07:47 +09:00
smoogipoo
04279e7f5c Add some xmldocs 2021-06-25 18:02:53 +09:00
smoogipoo
c0d2b41d4c Move SpectatorClient into multiplayer dependencies 2021-06-25 17:55:16 +09:00
smoogipoo
7aefbe3da1 Move UserLookupCache inside dependencies 2021-06-25 17:37:02 +09:00
smoogipoo
81a812e216 Rework MultiplayerTestScene to make use of OnlinePlayTestScene 2021-06-25 15:00:10 +09:00
smoogipoo
aa5d22d04a Remove "test container", make everything go through OnlinePlayTestScene 2021-06-25 13:02:19 +09:00
smoogipoo
5820793d11 Make TestMultiplayerRoomContainer inherit TestRoomContainer 2021-06-24 21:02:29 +09:00
smoogipoo
d197a7f6f5 Rename multiplayer client classes 2021-05-20 15:39:45 +09:00
smoogipoo
811282a975 Add failing test 2021-05-11 19:01:41 +09:00
Dean Herbert
120fb8974d Combine more instances of test player IDs 2021-04-26 17:22:16 +09:00
smoogipoo
0ee73b8e53 Add failing test 2021-04-22 23:22:44 +09:00
smoogipoo
93c5935ebc Add match subscreen support + test 2021-04-07 20:46:30 +09:00
smoogipoo
6be9c9f0f4 Link up ready button to spectate state 2021-04-07 16:35:50 +09:00
Dean Herbert
aeff9bd853 Add return bool to HandleRequest to better trigger failures 2021-03-23 18:17:29 +09:00
Dean Herbert
b1cd01ceb8 Apply ConfigureAwait changes to game side 2021-03-08 14:36:35 +09:00
smoogipoo
6affe33fb2 Fix another test scene 2021-03-03 19:40:19 +09:00
smoogipoo
30ff0b83c1 Fix test failures due to unpopulated room 2021-03-02 19:06:21 +09:00
smoogipoo
7adb33f40e Fix beatmap getting nulled due to failing web request 2021-03-01 17:24:54 +09:00
smoogipoo
f7e4cfa4d0 Fix initial room settings not being returned correctly 2021-03-01 17:24:32 +09:00
smoogipoo
97bb217830 Fix test room playlist items not getting ids 2021-03-01 17:24:05 +09:00
Dean Herbert
5fbed05d04
Merge pull request #11551 from smoogipoo/fix-leave-room-race-2
Fix client potentially not leaving a room on exiting multiplayer
2021-02-08 19:23:14 +09:00
smoogipoo
dbea6d4cee Remove unused using 2021-02-05 00:57:23 +09:00
smoogipoo
18e5081523 Fix test failures 2021-02-05 00:42:38 +09:00
smoogipoo
f538963607 Extra mods -> user mods 2021-02-01 17:57:32 +09:00
smoogipoo
ac2a995041 Add user and panel states 2021-02-01 17:54:56 +09:00
smoogipoo
964976f604 Use a task chain and fix potential misordering of events 2021-01-25 21:01:39 +09:00
Salman Ahmed
560b1e970c
Merge branch 'master' into user-beatmap-downloading-states 2021-01-13 22:31:31 +03:00
Salman Ahmed
90fb67b377 Update code in-line with decided direction 2021-01-11 20:52:24 +03:00
Bartłomiej Dach
8c3955d341 Improve safety of ongoing operation tracker
Finishing an operation started via
`OngoingOperationTracker.BeginOperation()` was risky in cases where the
operation ended at a callback on another thread (which, in the case of
multiplayer, is *most* cases). In particular, if any consumer registered
a callback that mutates transforms when the operation ends, it would
result in crashes after the framework-side safety checks.

Rework `OngoingOperationTracker` into an always-present component
residing in the drawable hierarchy, and ensure that the
`operationInProgress` bindable is always updated on the update thread.
This way consumers don't have to add local schedules in multiple places.
2021-01-09 22:45:24 +01:00