From 8d8be6d6d0371616cb3434a75cff97812500ba70 Mon Sep 17 00:00:00 2001 From: Christopher F Date: Wed, 7 Sep 2016 20:46:26 -0400 Subject: [PATCH] Implement Login Tests for Bot and Bearer Tokens --- .../Framework/Mocks/Rest/Users.cs | 12 ++++++++++ .../Framework/Routes/Users.cs | 10 ++++++-- test/Discord.Net.Tests/Rest/LoginTests.cs | 24 +++++++++++++++++++ 3 files changed, 44 insertions(+), 2 deletions(-) diff --git a/test/Discord.Net.Tests/Framework/Mocks/Rest/Users.cs b/test/Discord.Net.Tests/Framework/Mocks/Rest/Users.cs index 8009b420d..9a1cb05d1 100644 --- a/test/Discord.Net.Tests/Framework/Mocks/Rest/Users.cs +++ b/test/Discord.Net.Tests/Framework/Mocks/Rest/Users.cs @@ -14,5 +14,17 @@ namespace Discord.Tests.Framework.Mocks.Rest Verified = true, Avatar = "cdd7ae679ef37ce03e097221c70aeed6" }; + + public static User BotSelfUser => new User() + { + Id = 145584102551060480, + Username = "foxboat", + Discriminator = "8888", + Email = null, + MfaEnabled = true, + Verified = true, + Avatar = "5f0be46cea584d2225e6c15e8418fb52", + Bot = true + }; } } diff --git a/test/Discord.Net.Tests/Framework/Routes/Users.cs b/test/Discord.Net.Tests/Framework/Routes/Users.cs index 29d6183e1..5fba67a86 100644 --- a/test/Discord.Net.Tests/Framework/Routes/Users.cs +++ b/test/Discord.Net.Tests/Framework/Routes/Users.cs @@ -16,8 +16,14 @@ namespace Discord.Tests.Framework.Routes public static object Me(string json, IReadOnlyDictionary requestHeaders) { if (!requestHeaders.ContainsKey("authorization")) throw new HttpException(HttpStatusCode.Forbidden); - if (requestHeaders["authorization"] != UserToken) throw new HttpException(HttpStatusCode.Forbidden); - return UserMocks.SelfUser; + if (requestHeaders["authorization"] != UserToken + && requestHeaders["authorization"] != $"Bot {BotToken}" + && requestHeaders["authorization"] != $"Bearer {BearerToken}") throw new HttpException(HttpStatusCode.Forbidden); + + if (requestHeaders["authorization"] == UserToken || requestHeaders["authorization"] == $"Bearer {BearerToken}") + return UserMocks.SelfUser; + else + return UserMocks.BotSelfUser; } } } diff --git a/test/Discord.Net.Tests/Rest/LoginTests.cs b/test/Discord.Net.Tests/Rest/LoginTests.cs index bb1c0287f..32f086dd1 100644 --- a/test/Discord.Net.Tests/Rest/LoginTests.cs +++ b/test/Discord.Net.Tests/Rest/LoginTests.cs @@ -31,5 +31,29 @@ namespace Discord.Tests.Rest var client = fixture.Client; await Assert.ThrowsAsync(async () => await client.LoginAsync(TokenType.User, "token.invalid")); } + [Fact] + public async Task LoginAsBot() + { + var client = fixture.Client; + await client.LoginAsync(TokenType.Bot, Routes.BotToken); + } + [Fact] + public async Task LoginAsBotWithInvalidToken() + { + var client = fixture.Client; + await Assert.ThrowsAsync(async () => await client.LoginAsync(TokenType.Bot, "token.invalid")); + } + [Fact] + public async Task LoginAsBearer() + { + var client = fixture.Client; + await client.LoginAsync(TokenType.Bearer, Routes.BearerToken); + } + [Fact] + public async Task LoginAsBearerWithInvalidToken() + { + var client = fixture.Client; + await Assert.ThrowsAsync(async () => await client.LoginAsync(TokenType.Bearer, "token.invalid")); + } } }