diff options
author | 杨宇千 <crupest@outlook.com> | 2019-09-01 23:21:59 +0800 |
---|---|---|
committer | 杨宇千 <crupest@outlook.com> | 2019-09-01 23:21:59 +0800 |
commit | c0292eeb2eb1d531cede4b3fdfead86a86730056 (patch) | |
tree | a20e7f1b6d8d11c8173a2a558f25749529acd08e | |
parent | a276fb5ab706a1da188b3abfaaf50e2e24ee3475 (diff) | |
download | timeline-c0292eeb2eb1d531cede4b3fdfead86a86730056.tar.gz timeline-c0292eeb2eb1d531cede4b3fdfead86a86730056.tar.bz2 timeline-c0292eeb2eb1d531cede4b3fdfead86a86730056.zip |
Add more tests on avatar.
-rw-r--r-- | Timeline.Tests/Helpers/ImageHelper.cs | 13 | ||||
-rw-r--r-- | Timeline.Tests/IntegratedTests/UserAvatarTests.cs | 19 |
2 files changed, 31 insertions, 1 deletions
diff --git a/Timeline.Tests/Helpers/ImageHelper.cs b/Timeline.Tests/Helpers/ImageHelper.cs index c5a9cf17..2a2f3870 100644 --- a/Timeline.Tests/Helpers/ImageHelper.cs +++ b/Timeline.Tests/Helpers/ImageHelper.cs @@ -1,4 +1,5 @@ using SixLabors.ImageSharp;
+using SixLabors.ImageSharp.Formats;
using SixLabors.ImageSharp.PixelFormats;
using System.IO;
@@ -17,5 +18,17 @@ namespace Timeline.Tests.Helpers }
}
}
+
+ public static byte[] CreateImageWithSize(int width, int height, IImageFormat format)
+ {
+ using (var image = new Image<Rgba32>(width, height))
+ {
+ using (var stream = new MemoryStream())
+ {
+ image.Save(stream, format);
+ return stream.ToArray();
+ }
+ }
+ }
}
}
diff --git a/Timeline.Tests/IntegratedTests/UserAvatarTests.cs b/Timeline.Tests/IntegratedTests/UserAvatarTests.cs index 246125d0..fd0c2ef4 100644 --- a/Timeline.Tests/IntegratedTests/UserAvatarTests.cs +++ b/Timeline.Tests/IntegratedTests/UserAvatarTests.cs @@ -2,8 +2,12 @@ using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc.Testing;
using Microsoft.Extensions.DependencyInjection;
+using SixLabors.ImageSharp.Formats;
+using SixLabors.ImageSharp.Formats.Jpeg;
using SixLabors.ImageSharp.Formats.Png;
+using SixLabors.ImageSharp.Formats.Gif;
using System;
+using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Net.Http;
@@ -108,7 +112,7 @@ namespace Timeline.Tests.IntegratedTests RequestUri = new Uri(client.BaseAddress, "users/user/avatar"),
Method = HttpMethod.Get,
};
- request.Headers.Add ("If-None-Match", eTag.ToString());
+ request.Headers.Add("If-None-Match", eTag.ToString());
var res = await client.SendAsync(request);
res.Should().HaveStatusCode(HttpStatusCode.NotModified);
}
@@ -199,6 +203,19 @@ namespace Timeline.Tests.IntegratedTests body.Should().Equal(mockAvatar.Data);
}
+ IEnumerable<(string, IImageFormat)> formats = new (string, IImageFormat)[]
+ {
+ ("image/jpeg", JpegFormat.Instance),
+ ("image/gif", GifFormat.Instance),
+ ("image/png", PngFormat.Instance),
+ };
+
+ foreach ((var mimeType, var format) in formats)
+ {
+ var res = await client.PutByteArrayAsync("users/user/avatar", ImageHelper.CreateImageWithSize(100, 100, format), mimeType);
+ res.Should().HaveStatusCode(HttpStatusCode.OK);
+ }
+
{
var res = await client.PutByteArrayAsync("users/admin/avatar", new[] { (byte)0x00 }, "image/png");
res.Should().HaveStatusCode(HttpStatusCode.Forbidden)
|