Skip to content

Commit 75fef66

Browse files
committed
Test unreadable PSP asset uploading/flagging
1 parent 634179e commit 75fef66

1 file changed

Lines changed: 48 additions & 0 deletions

File tree

RefreshTests.GameServer/Tests/Assets/AssetUploadTests.cs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System.Security.Cryptography;
22
using Refresh.Core.Configuration;
33
using Refresh.Core.Services;
4+
using Refresh.Database.Models.Assets;
45
using Refresh.Database.Models.Authentication;
56
using Refresh.Database.Models.Users;
67
using Refresh.Interfaces.Game.Types.Lists;
@@ -258,6 +259,53 @@ public void PspCanUploadNormalAssetWhileBlocked()
258259
HttpResponseMessage response = client.PostAsync("/lbp/upload/" + hash, new ByteArrayContent(data.ToArray())).Result;
259260
Assert.That(response.StatusCode, Is.EqualTo(OK));
260261
}
262+
263+
[Test]
264+
public void UnreadablePspAssetsAreNotMarkedAsModdedDangerous()
265+
{
266+
using TestContext context = this.GetServer();
267+
GameUser user = context.CreateUser();
268+
269+
using HttpClient client = context.GetAuthenticatedClient(TokenType.Game, TokenGame.LittleBigPlanetPSP, TokenPlatform.PSP, user);
270+
client.DefaultRequestHeaders.UserAgent.TryParseAdd("LBPPSP CLIENT");
271+
272+
ReadOnlySpan<byte> data = "MMMMMMMMMMMMMMMMMMMMM"u8;
273+
274+
string hash = BitConverter.ToString(SHA1.HashData(data))
275+
.Replace("-", "")
276+
.ToLower();
277+
278+
HttpResponseMessage response = client.PostAsync("/lbp/upload/" + hash, new ByteArrayContent(data.ToArray())).Result;
279+
Assert.That(response.StatusCode, Is.EqualTo(OK));
280+
281+
GameAsset? assetInfo = context.Database.GetAssetFromHash(hash);
282+
Assert.That(assetInfo, Is.Not.Null);
283+
Assert.That(assetInfo!.AssetType, Is.EqualTo(GameAssetType.Unknown));
284+
Assert.That(assetInfo!.AssetFormat, Is.EqualTo(GameAssetFormat.Unknown));
285+
Assert.That(assetInfo!.IsPSP, Is.True);
286+
Assert.That(assetInfo!.AssetFlags, Is.EqualTo(AssetFlags.None));
287+
}
288+
289+
[Test]
290+
public void CantUploadUnreadableAssetFromNonPsp()
291+
{
292+
using TestContext context = this.GetServer();
293+
GameUser user = context.CreateUser();
294+
295+
using HttpClient client = context.GetAuthenticatedClient(TokenType.Game, TokenGame.LittleBigPlanet2, TokenPlatform.PS3, user);
296+
297+
ReadOnlySpan<byte> data = "MMMMMMMMMMMMMMMMMMMMM"u8;
298+
299+
string hash = BitConverter.ToString(SHA1.HashData(data))
300+
.Replace("-", "")
301+
.ToLower();
302+
303+
HttpResponseMessage response = client.PostAsync("/lbp/upload/" + hash, new ByteArrayContent(data.ToArray())).Result;
304+
Assert.That(response.StatusCode, Is.EqualTo(Unauthorized));
305+
306+
GameAsset? assetInfo = context.Database.GetAssetFromHash(hash);
307+
Assert.That(assetInfo, Is.Null);
308+
}
261309

262310
[Test]
263311
public void CantUploadAssetWithInvalidHash()

0 commit comments

Comments
 (0)