1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-18 21:02:56 +08:00
Commit Graph

87 Commits

Author SHA1 Message Date
Dean Herbert
ce41c000a1
Merge pull request #30812 from smoogipoo/playlist-populate-on-enter
Fix joining playlists room sometimes not selecting the first item
2024-11-22 23:57:45 +09:00
Bartłomiej Dach
512d2c6e3b
Merge branch 'master' into multiplayer-nrt 2024-11-22 08:09:42 +01:00
Dan Balasescu
2a7266cb23
Fix tests 2024-11-22 01:26:35 +09:00
Dan Balasescu
6870c99eb2
Enable NRT for multiplayer and playlists 2024-11-21 20:32:09 +09:00
Dan Balasescu
fe8e9d455a
Add failing test 2024-11-21 18:09:39 +09:00
Dan Balasescu
1a656d0ec3
Remove CachedModelDependencyContainer usages from online play 2024-11-15 15:59:28 +09:00
Dan Balasescu
34c0f72dd6
Make Room.Playlist non-bindable 2024-11-15 15:51:01 +09:00
Dan Balasescu
b16edbbf52
Make Room.RecentParticipants non-bindable 2024-11-15 15:25:43 +09:00
Dan Balasescu
487a010b12
Make Room.PlaylistItemStats non-bindable 2024-11-15 14:42:46 +09:00
Dan Balasescu
0ceaafe731
Make Room.Duration & Room.StartDate & Room.EndDate non-bindable 2024-11-15 14:42:45 +09:00
Dan Balasescu
ec5be6dbc3
Make Room.Password & Room.HasPassword non-bindable 2024-11-15 14:42:18 +09:00
Dan Balasescu
bde7b8e610
Make Room.Category non-bindable 2024-11-15 14:42:18 +09:00
Dan Balasescu
8694f7e1cc
Make Room.Host non-bindable 2024-11-15 14:42:17 +09:00
Dan Balasescu
6160df1586
Make Room.Name non-bindable 2024-11-15 14:29:15 +09:00
Dan Balasescu
99762da7b8
Make RoomID non-bindable
Most important changes are to `RoomSubScreen` and `PlaylistsRoomSubScreen`, because those are the only two cases that now bind to the event instead.
2024-11-13 16:28:54 +09:00
Dan Balasescu
72564b5c98
Make CurrentPlaylistItem not a bindable 2024-11-12 18:17:24 +09:00
Bartłomiej Dach
776fabd77c
Only use MD5 when performing metadata lookups
Both online and offline using the cache.

The rationale behind this change is that in the current state of
affairs, `TestPartiallyMaliciousSet()` fails in a way that cannot be
reconciled without this sort of change.

The test exercises a scenario where the beatmap being imported has an
online ID in the `.osu` file, but its hash does not match the online
hash of the beatmap. This turns out to be a more frequent scenario than
envisioned because of users doing stupid things with manual file editing
rather than reporting issues properly.

The scenario is realistic only because the behaviour of the endpoint
responsible for looking up beatmaps is such that if multiple parameters
are given (e.g. all three of beatmap MD5, online ID, and filename), it
will try the three in succession:

	f6b341813b/app/Http/Controllers/BeatmapsController.php (L260-L266)

and the local metadata cache implementation reflected this
implementation.

Because online ID and filename are inherently unreliable in this
scenario due to being directly manipulable by clueless or malicious
users, neither should not be used as a fallback.
2024-10-30 08:12:30 +01:00
Bartłomiej Dach
5104f3e7ac
Switch multiplayer away from using UserLookupCache
After switching `UserLookupCache` to `GET /users/lookup` from `GET
/users`, multiplayer sort of breaks, since the former endpoint does not
return `ruleset_statistics`, which are used in multiplayer to show
users' ranks. Therefore, switch multiplayer to use the appropriate
request type directly.
2024-10-08 14:46:50 +02:00
Dean Herbert
e79604cc13
Merge pull request #29542 from frenzibyte/show-daily-challenge-intro-once-per-session
Show daily challenge intro screen once per session
2024-09-01 21:27:16 +09:00
Salman Ahmed
b54487031a Add DailyChallengeButton for intro played flag reset logic 2024-08-24 22:19:17 +09:00
Bartłomiej Dach
7693d4c039
Merge branch 'master' into master 2024-08-19 14:30:20 +02:00
Layendan
19a4cef113 update var names and test logic 2024-08-01 02:52:41 -07:00
Layendan
8eeb5ae06b Fix tests 2024-07-30 17:08:56 -07:00
Bartłomiej Dach
861b546562
Add vague test coverage 2024-07-29 10:58:05 +02:00
Bartłomiej Dach
5fa586848d
Replace old bad daily challenge leaderboard with new implementation
- Actually shows scores rather than playlist aggregates (which are
  useful... in playlists, where there is more than one item)
- Actually allows scores to be shown by clicking on them
- Doesn't completely break down visually on smaller window sizes

The general appearance is not as polished as the old one in details but
I wanted something quick that we can get out by next weekend.

Also includes the naive method of refetching scores once a new top 50
score is detected. I can add a stagger if required.
2024-07-04 13:52:08 +02:00
Dan Balasescu
50f9c61029
Fix multiplayer tests 2024-02-02 22:34:48 +09:00
Dan Balasescu
20ae88b0a0
Revert unnecessary changes 2024-02-02 21:05:50 +09:00
Dan Balasescu
b44f77cee1
Update R# + fix inspections 2024-02-02 21:00:28 +09:00
Dean Herbert
0ab0c52ad5 Automated pass 2023-06-24 01:00:03 +09:00
Dean Herbert
61c702c02e Add new IDependencyInjectionCandidate interface to non-drawable cached classes 2022-11-29 14:45:26 +09:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Dan Balasescu
1811647e34 Make room requests handler handle GetBeatmapRequest 2022-09-27 20:30:41 +09:00
Dan Balasescu
aaa6f963bd Fix potential test failures due to Setup/SetUpSteps ordering 2022-07-29 15:27:39 +09:00
Salman Ahmed
728487b7fb Handle GetBeatmapSetRequest on test room requests handler
Required for `BeatmapSetOverlay` lookups to work under dummy API. Not
100% sure about it, but works for now.
2022-07-14 02:34:55 +03:00
Dean Herbert
1a22377e19 Fix test deadlock due to TPL threadpool saturation
As found in aggressive CI runs:

```csharp
00007F6F527F32B0 00007f74f937c72d (MethodDesc 00007f74f5545a78 + 0x22d System.Threading.ManualResetEventSlim.Wait(Int32, System.Threading.CancellationToken)), calling (MethodDesc 00007f74f51c0838 + 0 System.Threading.Monitor.Wait(System.Object, Int32))
00007F6F527F3330 00007f74f93861ca (MethodDesc 00007f74f5259100 + 0x10a System.Threading.Tasks.Task.SpinThenBlockingWait(Int32, System.Threading.CancellationToken)), calling (MethodDesc 00007f74f5545a78 + 0 System.Threading.ManualResetEventSlim.Wait(Int32, System.Threading.CancellationToken))
00007F6F527F3390 00007f74f9385d11 (MethodDesc 00007f74f52590e8 + 0x81 System.Threading.Tasks.Task.InternalWaitCore(Int32, System.Threading.CancellationToken)), calling (MethodDesc 00007f74f5259100 + 0 System.Threading.Tasks.Task.SpinThenBlockingWait(Int32, System.Threading.CancellationToken))
00007F6F527F33E0 00007f74fc3823af (MethodDesc 00007f74f5934c08 + 0x4f System.Threading.Tasks.Task`1[[System.Boolean, System.Private.CoreLib]].GetResultCore(Boolean)), calling (MethodDesc 00007f74f52590e8 + 0 System.Threading.Tasks.Task.InternalWaitCore(Int32, System.Threading.CancellationToken))
00007F6F527F3400 00007f74fb0aad92 (MethodDesc 00007f74fb28b000 + 0x122 osu.Game.Tests.Visual.OnlinePlay.OnlinePlayTestScene+<>c__DisplayClass21_0.<Setup>b__1(osu.Game.Online.API.APIRequest)), calling (MethodDesc 00007f74f5934be8 + 0 System.Threading.Tasks.Task`1[[System.Boolean, System.Private.CoreLib]].get_Result())
00007F6F527F3470 00007f74fa9c6dd7 (MethodDesc 00007f74f921f6c8 + 0x77 osu.Game.Online.API.DummyAPIAccess.PerformAsync(osu.Game.Online.API.APIRequest))
00007F6F527F34C0 00007f74fb13c718 (MethodDesc 00007f74fb4e0c50 + 0x538 osu.Game.Database.OnlineLookupCache`3+<performLookup>d__13[[System.Int32, System.Private.CoreLib],[System.__Canon, System.Private.CoreLib],[System.__Canon, System.Private.CoreLib]].MoveNext())
```

Going with the simplest solution, as what we had was pretty ugly to start with and I don't want to overthink this, just push a fix and hope for the best.
2022-06-26 16:42:29 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dan Balasescu
3df4d1b0e6 Fix incorrect HasPassword value for returned rooms 2022-06-03 21:17:48 +09:00
Dan Balasescu
41ff170b60 Fix playlist IDs not being returned 2022-06-03 21:12:09 +09:00
Dan Balasescu
646f5f0f33 Isolate "server-side" multiplayer rooms in testing 2022-06-03 19:17:34 +09:00
Dean Herbert
477e520766 Add comment regarding deadlock avoidance 2022-05-31 12:24:44 +09:00
Dean Herbert
f935f034c2 Ensure request handling for OnlinePlayTestScene runs in a scheduled fashion 2022-05-30 16:33:07 +09:00
Dean Herbert
71ae425fb2 Merge branch 'master' into rooms-request-faster 2022-02-22 15:45:05 +09:00
Dean Herbert
113153e6a3 Fix remaining filter tests 2022-02-22 00:25:00 +09:00
Dean Herbert
98c008b95f Fix test failures due to order change 2022-02-21 19:48:39 +09:00
Dan Balasescu
48573d2401 Move test request handling earlier in setup 2022-02-15 23:50:10 +09:00
Dan Balasescu
bdc3b76df0 Remove beatmap bindable from PlaylistItem 2022-02-15 23:50:08 +09:00
Dan Balasescu
ccd265ebe7 Handle beatmap lookup requests in TestRoomRequestsHandler 2022-02-15 23:41:50 +09:00
Dan Balasescu
2675bb87ff Add BeatmapLookupCache as another dependency 2022-02-15 21:05:25 +09:00
Dan Balasescu
c48a0dc993 Move UserLookupCache to online play test dependencies 2022-02-15 20:56:46 +09:00
Dan Balasescu
b2276baf71 Seal OnlinePlayTestScene.CreateChildDependencies() 2022-02-15 20:55:57 +09:00