适配第二版验证码
This commit is contained in:
1 parent
564ffecfed
commit
c1451d0e6d
5 files changed
+79
-14
No files matched your search
@@ -19,7 +19,7 @@ public sealed class CaptchaKitIntegrationTests
|
||||
var challenge = await captcha.CreateAsync();
|
||||
|
||||
Assert.Equal("image/png", challenge.ContentType);
|
||||
Assert.True(challenge.ImageBytes.AsSpan().StartsWith(new byte[] { 137, 80, 78, 71 }));
|
||||
Assert.True(challenge.ImageBytes!.AsSpan().StartsWith(new byte[] { 137, 80, 78, 71 }));
|
||||
Assert.True(await captcha.VerifyAsync(challenge.Id, "a1b2"));
|
||||
Assert.False(await captcha.VerifyAsync(challenge.Id, "a1b2"));
|
||||
}
|
||||
@@ -31,13 +31,33 @@ public sealed class CaptchaKitIntegrationTests
|
||||
new CaptchaGenerationRequest("test", DateTimeOffset.UtcNow.AddMinutes(1), 5));
|
||||
|
||||
Assert.Equal("image/png", challenge.Challenge.ContentType);
|
||||
Assert.True(challenge.Challenge.ImageBytes.AsSpan().StartsWith(new byte[] { 137, 80, 78, 71 }));
|
||||
Assert.True(challenge.Challenge.ImageBytes!.AsSpan().StartsWith(new byte[] { 137, 80, 78, 71 }));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Random_generator_produces_each_enabled_challenge_type()
|
||||
{
|
||||
var generator = new RandomCaptchaGenerator(new CaptchaKitOptions());
|
||||
var types = new HashSet<CaptchaChallengeType>();
|
||||
for (var index = 0; index < 100; index++)
|
||||
{
|
||||
var generated = generator.Generate(new CaptchaGenerationRequest(
|
||||
index.ToString(), DateTimeOffset.UtcNow.AddMinutes(1), 5));
|
||||
types.Add(generated.Challenge.Type);
|
||||
if (generated.Challenge.Type == CaptchaChallengeType.Selection)
|
||||
Assert.Contains(generated.Challenge.Choices!, x => x.Id == generated.Answer);
|
||||
}
|
||||
|
||||
Assert.Contains(CaptchaChallengeType.TextImage, types);
|
||||
Assert.Contains(CaptchaChallengeType.Selection, types);
|
||||
Assert.Contains(CaptchaChallengeType.OneClick, types);
|
||||
}
|
||||
|
||||
private sealed class KnownGenerator : ICaptchaGenerator
|
||||
{
|
||||
public GeneratedCaptcha Generate(CaptchaGenerationRequest request) => new(
|
||||
new CaptchaChallenge(request.Id, "image/png", new byte[] { 137, 80, 78, 71 }, request.ExpiresAt),
|
||||
new CaptchaChallenge(request.Id, CaptchaChallengeType.TextImage, request.ExpiresAt,
|
||||
"请输入图中的字符", null, "image/png", new byte[] { 137, 80, 78, 71 }),
|
||||
"A1B2");
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user