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
Dan Balasescu
efeba30b9f
Remove ruleset and mod bindables from PlaylistItem
2022-02-15 16:28:15 +09:00
Dean Herbert
d26f4d50bd
Add test coverage of aggregate room scores displaying correctly
2022-01-18 14:00:12 +09:00
Dan Balasescu
52230a6f00
Merge branch 'master' into multiplayer-delayed-playlist-load-broken
2021-12-07 22:45:05 +09:00
Dean Herbert
bdddaba352
Remove unnecessary test request handling
2021-12-02 14:33:56 +09:00
Dan Balasescu
7224f6bac5
Fix testable online IDs starting at 0
2021-12-01 20:00:31 +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
Dean Herbert
0ecf5f201c
Rename User
to APIUser
and move to correct namespace
2021-11-07 11:26:01 +09:00
Dean Herbert
d8d4839e43
Merge pull request #15339 from smoogipoo/fix-test-crash
...
Fix playlists room creation test crash
2021-10-28 17:28:46 +09:00
smoogipoo
bacaa9d201
Fix playlists test crash
2021-10-28 16:48:17 +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
85b21174dd
Fix online play test request handling
2021-10-27 14:49:50 +09:00
Salman Ahmed
5fc29328cf
Remove unused using
...
Uh.....
2021-08-19 06:30:23 +03:00
Salman Ahmed
49bc3a8250
Refactor playlists room manager to handle dummy API requests
2021-08-19 06:25:47 +03:00
Salman Ahmed
f4ae587a33
Extract room request handling logic to its own class
2021-08-19 06:24:06 +03:00