Browse Source

Merge remote-tracking branch 'upstream/dev' into docs/faq-n-patches-offline

pull/1161/head
Still Hsu 7 years ago
parent
commit
f4fb027ea9
No known key found for this signature in database GPG Key ID: 8601A145FDA95209
15 changed files with 120 additions and 89 deletions
  1. +0
    -0
      experiment/Discord.Net.Rpc/Entities/Channels/RpcCategoryChannel.cs
  2. +1
    -0
      src/Discord.Net.Core/DiscordConfig.cs
  3. +4
    -4
      src/Discord.Net.Core/Entities/Permissions/OverwritePermissions.cs
  4. +0
    -5
      src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs
  5. +3
    -3
      src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs
  6. +10
    -0
      src/Discord.Net.WebSocket/API/Voice/HelloEvent.cs
  7. +3
    -1
      src/Discord.Net.WebSocket/API/Voice/ReadyEvent.cs
  8. +12
    -4
      src/Discord.Net.WebSocket/API/Voice/VoiceOpCode.cs
  9. +9
    -3
      src/Discord.Net.WebSocket/Audio/AudioClient.cs
  10. +3
    -1
      src/Discord.Net.WebSocket/DiscordSocketClient.cs
  11. +1
    -1
      src/Discord.Net.WebSocket/Entities/Channels/SocketTextChannel.cs
  12. +23
    -22
      test/Discord.Net.Tests/Tests.ChannelPermissions.cs
  13. +2
    -2
      test/Discord.Net.Tests/Tests.Channels.cs
  14. +34
    -29
      test/Discord.Net.Tests/Tests.GuildPermissions.cs
  15. +15
    -14
      test/Discord.Net.Tests/Tests.Permissions.cs

src/Discord.Net.Rpc/Entities/Channels/RpcCategoryChannel.cs → experiment/Discord.Net.Rpc/Entities/Channels/RpcCategoryChannel.cs View File


+ 1
- 0
src/Discord.Net.Core/DiscordConfig.cs View File

@@ -17,6 +17,7 @@ namespace Discord
/// .</para> /// .</para>
/// </returns> /// </returns>
public const int APIVersion = 6; public const int APIVersion = 6;
public const int VoiceAPIVersion = 3;
/// <summary> /// <summary>
/// Gets the Discord.Net version, including the build number. /// Gets the Discord.Net version, including the build number.
/// </summary> /// </summary>


+ 4
- 4
src/Discord.Net.Core/Entities/Permissions/OverwritePermissions.cs View File

@@ -138,7 +138,7 @@ namespace Discord
PermValue createInstantInvite = PermValue.Inherit, PermValue createInstantInvite = PermValue.Inherit,
PermValue manageChannel = PermValue.Inherit, PermValue manageChannel = PermValue.Inherit,
PermValue addReactions = PermValue.Inherit, PermValue addReactions = PermValue.Inherit,
PermValue readMessages = PermValue.Inherit,
PermValue viewChannel = PermValue.Inherit,
PermValue sendMessages = PermValue.Inherit, PermValue sendMessages = PermValue.Inherit,
PermValue sendTTSMessages = PermValue.Inherit, PermValue sendTTSMessages = PermValue.Inherit,
PermValue manageMessages = PermValue.Inherit, PermValue manageMessages = PermValue.Inherit,
@@ -155,7 +155,7 @@ namespace Discord
PermValue useVoiceActivation = PermValue.Inherit, PermValue useVoiceActivation = PermValue.Inherit,
PermValue manageRoles = PermValue.Inherit, PermValue manageRoles = PermValue.Inherit,
PermValue manageWebhooks = PermValue.Inherit) PermValue manageWebhooks = PermValue.Inherit)
: this(0, 0, createInstantInvite, manageChannel, addReactions, readMessages, sendMessages, sendTTSMessages, manageMessages,
: this(0, 0, createInstantInvite, manageChannel, addReactions, viewChannel, sendMessages, sendTTSMessages, manageMessages,
embedLinks, attachFiles, readMessageHistory, mentionEveryone, useExternalEmojis, connect, speak, muteMembers, deafenMembers, embedLinks, attachFiles, readMessageHistory, mentionEveryone, useExternalEmojis, connect, speak, muteMembers, deafenMembers,
moveMembers, useVoiceActivation, manageRoles, manageWebhooks) { } moveMembers, useVoiceActivation, manageRoles, manageWebhooks) { }


@@ -167,7 +167,7 @@ namespace Discord
PermValue? createInstantInvite = null, PermValue? createInstantInvite = null,
PermValue? manageChannel = null, PermValue? manageChannel = null,
PermValue? addReactions = null, PermValue? addReactions = null,
PermValue? readMessages = null,
PermValue? viewChannel = null,
PermValue? sendMessages = null, PermValue? sendMessages = null,
PermValue? sendTTSMessages = null, PermValue? sendTTSMessages = null,
PermValue? manageMessages = null, PermValue? manageMessages = null,
@@ -184,7 +184,7 @@ namespace Discord
PermValue? useVoiceActivation = null, PermValue? useVoiceActivation = null,
PermValue? manageRoles = null, PermValue? manageRoles = null,
PermValue? manageWebhooks = null) PermValue? manageWebhooks = null)
=> new OverwritePermissions(AllowValue, DenyValue, createInstantInvite, manageChannel, addReactions, readMessages, sendMessages, sendTTSMessages, manageMessages,
=> new OverwritePermissions(AllowValue, DenyValue, createInstantInvite, manageChannel, addReactions, viewChannel, sendMessages, sendTTSMessages, manageMessages,
embedLinks, attachFiles, readMessageHistory, mentionEveryone, useExternalEmojis, connect, speak, muteMembers, deafenMembers, embedLinks, attachFiles, readMessageHistory, mentionEveryone, useExternalEmojis, connect, speak, muteMembers, deafenMembers,
moveMembers, useVoiceActivation, manageRoles, manageWebhooks); moveMembers, useVoiceActivation, manageRoles, manageWebhooks);




+ 0
- 5
src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs View File

@@ -358,10 +358,5 @@ namespace Discord.Rest
author = RestUser.Create(client, guild, model, webhookId); author = RestUser.Create(client, guild, model, webhookId);
return author; return author;
} }

public static bool IsNsfw(IChannel channel)
=> IsNsfw(channel.Name);
public static bool IsNsfw(string channelName) =>
channelName == "nsfw" || channelName.StartsWith("nsfw-");
} }
} }

+ 3
- 3
src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs View File

@@ -23,7 +23,7 @@ namespace Discord.Rest


private bool _nsfw; private bool _nsfw;
/// <inheritdoc /> /// <inheritdoc />
public bool IsNsfw => _nsfw || ChannelHelper.IsNsfw(this);
public bool IsNsfw => _nsfw;


internal RestTextChannel(BaseDiscordClient discord, IGuild guild, ulong id) internal RestTextChannel(BaseDiscordClient discord, IGuild guild, ulong id)
: base(discord, guild, id) : base(discord, guild, id)
@@ -135,7 +135,7 @@ namespace Discord.Rest
=> ChannelHelper.GetWebhookAsync(this, Discord, id, options); => ChannelHelper.GetWebhookAsync(this, Discord, id, options);
public Task<IReadOnlyCollection<RestWebhook>> GetWebhooksAsync(RequestOptions options = null) public Task<IReadOnlyCollection<RestWebhook>> GetWebhooksAsync(RequestOptions options = null)
=> ChannelHelper.GetWebhooksAsync(this, Discord, options); => ChannelHelper.GetWebhooksAsync(this, Discord, options);
public Task<ICategoryChannel> GetCategoryAsync(RequestOptions options = null) public Task<ICategoryChannel> GetCategoryAsync(RequestOptions options = null)
=> ChannelHelper.GetCategoryAsync(this, Discord, options); => ChannelHelper.GetCategoryAsync(this, Discord, options);


@@ -169,7 +169,7 @@ namespace Discord.Rest
else else
return AsyncEnumerable.Empty<IReadOnlyCollection<IMessage>>(); return AsyncEnumerable.Empty<IReadOnlyCollection<IMessage>>();
} }
/// <inheritdoc /> /// <inheritdoc />
IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(ulong fromMessageId, Direction dir, int limit, CacheMode mode, RequestOptions options) IAsyncEnumerable<IReadOnlyCollection<IMessage>> IMessageChannel.GetMessagesAsync(ulong fromMessageId, Direction dir, int limit, CacheMode mode, RequestOptions options)
{ {


+ 10
- 0
src/Discord.Net.WebSocket/API/Voice/HelloEvent.cs View File

@@ -0,0 +1,10 @@
using Newtonsoft.Json;

namespace Discord.API.Voice
{
internal class HelloEvent
{
[JsonProperty("heartbeat_interval")]
public int HeartbeatInterval { get; set; }
}
}

+ 3
- 1
src/Discord.Net.WebSocket/API/Voice/ReadyEvent.cs View File

@@ -1,5 +1,6 @@
#pragma warning disable CS1591
#pragma warning disable CS1591
using Newtonsoft.Json; using Newtonsoft.Json;
using System;


namespace Discord.API.Voice namespace Discord.API.Voice
{ {
@@ -14,6 +15,7 @@ namespace Discord.API.Voice
[JsonProperty("modes")] [JsonProperty("modes")]
public string[] Modes { get; set; } public string[] Modes { get; set; }
[JsonProperty("heartbeat_interval")] [JsonProperty("heartbeat_interval")]
[Obsolete("This field is errorneous and should not be used", true)]
public int HeartbeatInterval { get; set; } public int HeartbeatInterval { get; set; }
} }
} }

+ 12
- 4
src/Discord.Net.WebSocket/API/Voice/VoiceOpCode.cs View File

@@ -1,4 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable CS1591
namespace Discord.API.Voice namespace Discord.API.Voice
{ {
internal enum VoiceOpCode : byte internal enum VoiceOpCode : byte
@@ -11,11 +11,19 @@ namespace Discord.API.Voice
Ready = 2, Ready = 2,
/// <summary> C→S - Used to keep the connection alive and measure latency. </summary> /// <summary> C→S - Used to keep the connection alive and measure latency. </summary>
Heartbeat = 3, Heartbeat = 3,
/// <summary> C←S - Used to reply to a client's heartbeat. </summary>
HeartbeatAck = 3,
/// <summary> C←S - Used to provide an encryption key to the client. </summary> /// <summary> C←S - Used to provide an encryption key to the client. </summary>
SessionDescription = 4, SessionDescription = 4,
/// <summary> C↔S - Used to inform that a certain user is speaking. </summary> /// <summary> C↔S - Used to inform that a certain user is speaking. </summary>
Speaking = 5
Speaking = 5,
/// <summary> C←S - Used to reply to a client's heartbeat. </summary>
HeartbeatAck = 6,
/// <summary> C→S - Used to resume a connection. </summary>
Resume = 7,
/// <summary> C←S - Used to inform the client the heartbeat interval. </summary>
Hello = 8,
/// <summary> C←S - Used to acknowledge a resumed connection. </summary>
Resumed = 9,
/// <summary> C←S - Used to notify that a client has disconnected. </summary>
ClientDisconnect = 13,
} }
} }

+ 9
- 3
src/Discord.Net.WebSocket/Audio/AudioClient.cs View File

@@ -107,7 +107,7 @@ namespace Discord.Audio
private async Task OnConnectingAsync() private async Task OnConnectingAsync()
{ {
await _audioLogger.DebugAsync("Connecting ApiClient").ConfigureAwait(false); await _audioLogger.DebugAsync("Connecting ApiClient").ConfigureAwait(false);
await ApiClient.ConnectAsync("wss://" + _url).ConfigureAwait(false);
await ApiClient.ConnectAsync("wss://" + _url + "?v=" + DiscordConfig.VoiceAPIVersion).ConfigureAwait(false);
await _audioLogger.DebugAsync("Listening on port " + ApiClient.UdpPort).ConfigureAwait(false); await _audioLogger.DebugAsync("Listening on port " + ApiClient.UdpPort).ConfigureAwait(false);
await _audioLogger.DebugAsync("Sending Identity").ConfigureAwait(false); await _audioLogger.DebugAsync("Sending Identity").ConfigureAwait(false);
await ApiClient.SendIdentityAsync(_userId, _sessionId, _token).ConfigureAwait(false); await ApiClient.SendIdentityAsync(_userId, _sessionId, _token).ConfigureAwait(false);
@@ -216,6 +216,14 @@ namespace Discord.Audio
{ {
switch (opCode) switch (opCode)
{ {
case VoiceOpCode.Hello:
{
await _audioLogger.DebugAsync("Received Hello").ConfigureAwait(false);
var data = (payload as JToken).ToObject<HelloEvent>(_serializer);

_heartbeatTask = RunHeartbeatAsync(data.HeartbeatInterval, _connection.CancelToken);
}
break;
case VoiceOpCode.Ready: case VoiceOpCode.Ready:
{ {
await _audioLogger.DebugAsync("Received Ready").ConfigureAwait(false); await _audioLogger.DebugAsync("Received Ready").ConfigureAwait(false);
@@ -225,8 +233,6 @@ namespace Discord.Audio


if (!data.Modes.Contains(DiscordVoiceAPIClient.Mode)) if (!data.Modes.Contains(DiscordVoiceAPIClient.Mode))
throw new InvalidOperationException($"Discord does not support {DiscordVoiceAPIClient.Mode}"); throw new InvalidOperationException($"Discord does not support {DiscordVoiceAPIClient.Mode}");

_heartbeatTask = RunHeartbeatAsync(data.HeartbeatInterval, _connection.CancelToken);
ApiClient.SetUdpEndpoint(data.Ip, data.Port); ApiClient.SetUdpEndpoint(data.Ip, data.Port);
await ApiClient.SendDiscoveryAsync(_ssrc).ConfigureAwait(false); await ApiClient.SendDiscoveryAsync(_ssrc).ConfigureAwait(false);


+ 3
- 1
src/Discord.Net.WebSocket/DiscordSocketClient.cs View File

@@ -1442,7 +1442,9 @@ namespace Discord.WebSocket
after = SocketVoiceState.Create(null, data); after = SocketVoiceState.Create(null, data);
} }


user = guild.GetUser(data.UserId) ?? guild.AddOrUpdateUser(data.Member.Value); //per g250k, this is always sent
// per g250k, this should always be sent, but apparently not always
user = guild.GetUser(data.UserId)
?? (data.Member.IsSpecified ? guild.AddOrUpdateUser(data.Member.Value) : null);
if (user == null) if (user == null)
{ {
await UnknownGuildUserAsync(type, data.UserId, guild.Id).ConfigureAwait(false); await UnknownGuildUserAsync(type, data.UserId, guild.Id).ConfigureAwait(false);


+ 1
- 1
src/Discord.Net.WebSocket/Entities/Channels/SocketTextChannel.cs View File

@@ -26,7 +26,7 @@ namespace Discord.WebSocket


private bool _nsfw; private bool _nsfw;
/// <inheritdoc /> /// <inheritdoc />
public bool IsNsfw => _nsfw || ChannelHelper.IsNsfw(this);
public bool IsNsfw => _nsfw;


/// <inheritdoc /> /// <inheritdoc />
public string Mention => MentionUtils.MentionChannel(Id); public string Mention => MentionUtils.MentionChannel(Id);


+ 23
- 22
test/Discord.Net.Tests/Tests.ChannelPermissions.cs View File

@@ -68,6 +68,7 @@ namespace Discord
ulong voiceChannel = (ulong)( ulong voiceChannel = (ulong)(
ChannelPermission.CreateInstantInvite ChannelPermission.CreateInstantInvite
| ChannelPermission.ManageChannels | ChannelPermission.ManageChannels
| ChannelPermission.ViewChannel
| ChannelPermission.Connect | ChannelPermission.Connect
| ChannelPermission.Speak | ChannelPermission.Speak
| ChannelPermission.MuteMembers | ChannelPermission.MuteMembers
@@ -82,7 +83,7 @@ namespace Discord
ulong dmChannel = (ulong)( ulong dmChannel = (ulong)(
ChannelPermission.ViewChannel ChannelPermission.ViewChannel
| ChannelPermission.SendMessages | ChannelPermission.SendMessages
| ChannelPermission.EmbedLinks
| ChannelPermission.EmbedLinks
| ChannelPermission.AttachFiles | ChannelPermission.AttachFiles
| ChannelPermission.ReadMessageHistory | ChannelPermission.ReadMessageHistory
| ChannelPermission.UseExternalEmojis | ChannelPermission.UseExternalEmojis
@@ -118,7 +119,7 @@ namespace Discord
// ensure that when modified it works // ensure that when modified it works
perm = perm.Modify(createInstantInvite: true); perm = perm.Modify(createInstantInvite: true);
Assert.True(perm.CreateInstantInvite); Assert.True(perm.CreateInstantInvite);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.CreateInstantInvite);
Assert.Equal((ulong)ChannelPermission.CreateInstantInvite, perm.RawValue);


// set false again, move on to next permission // set false again, move on to next permission
perm = perm.Modify(createInstantInvite: false); perm = perm.Modify(createInstantInvite: false);
@@ -130,7 +131,7 @@ namespace Discord


perm = perm.Modify(manageChannel: true); perm = perm.Modify(manageChannel: true);
Assert.True(perm.ManageChannel); Assert.True(perm.ManageChannel);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.ManageChannels);
Assert.Equal((ulong)ChannelPermission.ManageChannels, perm.RawValue);


perm = perm.Modify(manageChannel: false); perm = perm.Modify(manageChannel: false);
Assert.False(perm.ManageChannel); Assert.False(perm.ManageChannel);
@@ -141,7 +142,7 @@ namespace Discord


perm = perm.Modify(addReactions: true); perm = perm.Modify(addReactions: true);
Assert.True(perm.AddReactions); Assert.True(perm.AddReactions);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.AddReactions);
Assert.Equal((ulong)ChannelPermission.AddReactions, perm.RawValue);


perm = perm.Modify(addReactions: false); perm = perm.Modify(addReactions: false);
Assert.False(perm.AddReactions); Assert.False(perm.AddReactions);
@@ -152,7 +153,7 @@ namespace Discord


perm = perm.Modify(viewChannel: true); perm = perm.Modify(viewChannel: true);
Assert.True(perm.ViewChannel); Assert.True(perm.ViewChannel);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.ViewChannel);
Assert.Equal((ulong)ChannelPermission.ViewChannel, perm.RawValue);


perm = perm.Modify(viewChannel: false); perm = perm.Modify(viewChannel: false);
Assert.False(perm.ViewChannel); Assert.False(perm.ViewChannel);
@@ -163,7 +164,7 @@ namespace Discord


perm = perm.Modify(sendMessages: true); perm = perm.Modify(sendMessages: true);
Assert.True(perm.SendMessages); Assert.True(perm.SendMessages);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.SendMessages);
Assert.Equal((ulong)ChannelPermission.SendMessages, perm.RawValue);


perm = perm.Modify(sendMessages: false); perm = perm.Modify(sendMessages: false);
Assert.False(perm.SendMessages); Assert.False(perm.SendMessages);
@@ -174,7 +175,7 @@ namespace Discord


perm = perm.Modify(sendTTSMessages: true); perm = perm.Modify(sendTTSMessages: true);
Assert.True(perm.SendTTSMessages); Assert.True(perm.SendTTSMessages);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.SendTTSMessages);
Assert.Equal((ulong)ChannelPermission.SendTTSMessages, perm.RawValue);


perm = perm.Modify(sendTTSMessages: false); perm = perm.Modify(sendTTSMessages: false);
Assert.False(perm.SendTTSMessages); Assert.False(perm.SendTTSMessages);
@@ -185,7 +186,7 @@ namespace Discord


perm = perm.Modify(manageMessages: true); perm = perm.Modify(manageMessages: true);
Assert.True(perm.ManageMessages); Assert.True(perm.ManageMessages);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.ManageMessages);
Assert.Equal((ulong)ChannelPermission.ManageMessages, perm.RawValue);


perm = perm.Modify(manageMessages: false); perm = perm.Modify(manageMessages: false);
Assert.False(perm.ManageMessages); Assert.False(perm.ManageMessages);
@@ -196,7 +197,7 @@ namespace Discord


perm = perm.Modify(embedLinks: true); perm = perm.Modify(embedLinks: true);
Assert.True(perm.EmbedLinks); Assert.True(perm.EmbedLinks);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.EmbedLinks);
Assert.Equal((ulong)ChannelPermission.EmbedLinks, perm.RawValue);


perm = perm.Modify(embedLinks: false); perm = perm.Modify(embedLinks: false);
Assert.False(perm.EmbedLinks); Assert.False(perm.EmbedLinks);
@@ -207,7 +208,7 @@ namespace Discord


perm = perm.Modify(attachFiles: true); perm = perm.Modify(attachFiles: true);
Assert.True(perm.AttachFiles); Assert.True(perm.AttachFiles);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.AttachFiles);
Assert.Equal((ulong)ChannelPermission.AttachFiles, perm.RawValue);


perm = perm.Modify(attachFiles: false); perm = perm.Modify(attachFiles: false);
Assert.False(perm.AttachFiles); Assert.False(perm.AttachFiles);
@@ -218,7 +219,7 @@ namespace Discord


perm = perm.Modify(readMessageHistory: true); perm = perm.Modify(readMessageHistory: true);
Assert.True(perm.ReadMessageHistory); Assert.True(perm.ReadMessageHistory);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.ReadMessageHistory);
Assert.Equal((ulong)ChannelPermission.ReadMessageHistory, perm.RawValue);


perm = perm.Modify(readMessageHistory: false); perm = perm.Modify(readMessageHistory: false);
Assert.False(perm.ReadMessageHistory); Assert.False(perm.ReadMessageHistory);
@@ -229,7 +230,7 @@ namespace Discord


perm = perm.Modify(mentionEveryone: true); perm = perm.Modify(mentionEveryone: true);
Assert.True(perm.MentionEveryone); Assert.True(perm.MentionEveryone);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.MentionEveryone);
Assert.Equal((ulong)ChannelPermission.MentionEveryone, perm.RawValue);


perm = perm.Modify(mentionEveryone: false); perm = perm.Modify(mentionEveryone: false);
Assert.False(perm.MentionEveryone); Assert.False(perm.MentionEveryone);
@@ -240,7 +241,7 @@ namespace Discord


perm = perm.Modify(useExternalEmojis: true); perm = perm.Modify(useExternalEmojis: true);
Assert.True(perm.UseExternalEmojis); Assert.True(perm.UseExternalEmojis);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.UseExternalEmojis);
Assert.Equal((ulong)ChannelPermission.UseExternalEmojis, perm.RawValue);


perm = perm.Modify(useExternalEmojis: false); perm = perm.Modify(useExternalEmojis: false);
Assert.False(perm.UseExternalEmojis); Assert.False(perm.UseExternalEmojis);
@@ -251,18 +252,18 @@ namespace Discord


perm = perm.Modify(connect: true); perm = perm.Modify(connect: true);
Assert.True(perm.Connect); Assert.True(perm.Connect);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.Connect);
Assert.Equal((ulong)ChannelPermission.Connect, perm.RawValue);


perm = perm.Modify(connect: false); perm = perm.Modify(connect: false);
Assert.False(perm.Connect); Assert.False(perm.Connect);
Assert.Equal(ChannelPermissions.None.RawValue, perm.RawValue); Assert.Equal(ChannelPermissions.None.RawValue, perm.RawValue);
// individual permission test // individual permission test
Assert.False(perm.Speak); Assert.False(perm.Speak);


perm = perm.Modify(speak: true); perm = perm.Modify(speak: true);
Assert.True(perm.Speak); Assert.True(perm.Speak);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.Speak);
Assert.Equal((ulong)ChannelPermission.Speak, perm.RawValue);


perm = perm.Modify(speak: false); perm = perm.Modify(speak: false);
Assert.False(perm.Speak); Assert.False(perm.Speak);
@@ -273,7 +274,7 @@ namespace Discord


perm = perm.Modify(muteMembers: true); perm = perm.Modify(muteMembers: true);
Assert.True(perm.MuteMembers); Assert.True(perm.MuteMembers);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.MuteMembers);
Assert.Equal((ulong)ChannelPermission.MuteMembers, perm.RawValue);


perm = perm.Modify(muteMembers: false); perm = perm.Modify(muteMembers: false);
Assert.False(perm.MuteMembers); Assert.False(perm.MuteMembers);
@@ -284,7 +285,7 @@ namespace Discord


perm = perm.Modify(deafenMembers: true); perm = perm.Modify(deafenMembers: true);
Assert.True(perm.DeafenMembers); Assert.True(perm.DeafenMembers);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.DeafenMembers);
Assert.Equal((ulong)ChannelPermission.DeafenMembers, perm.RawValue);


perm = perm.Modify(deafenMembers: false); perm = perm.Modify(deafenMembers: false);
Assert.False(perm.DeafenMembers); Assert.False(perm.DeafenMembers);
@@ -295,7 +296,7 @@ namespace Discord


perm = perm.Modify(moveMembers: true); perm = perm.Modify(moveMembers: true);
Assert.True(perm.MoveMembers); Assert.True(perm.MoveMembers);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.MoveMembers);
Assert.Equal((ulong)ChannelPermission.MoveMembers, perm.RawValue);


perm = perm.Modify(moveMembers: false); perm = perm.Modify(moveMembers: false);
Assert.False(perm.MoveMembers); Assert.False(perm.MoveMembers);
@@ -306,7 +307,7 @@ namespace Discord


perm = perm.Modify(useVoiceActivation: true); perm = perm.Modify(useVoiceActivation: true);
Assert.True(perm.UseVAD); Assert.True(perm.UseVAD);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.UseVAD);
Assert.Equal((ulong)ChannelPermission.UseVAD, perm.RawValue);


perm = perm.Modify(useVoiceActivation: false); perm = perm.Modify(useVoiceActivation: false);
Assert.False(perm.UseVAD); Assert.False(perm.UseVAD);
@@ -317,7 +318,7 @@ namespace Discord


perm = perm.Modify(manageRoles: true); perm = perm.Modify(manageRoles: true);
Assert.True(perm.ManageRoles); Assert.True(perm.ManageRoles);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.ManageRoles);
Assert.Equal((ulong)ChannelPermission.ManageRoles, perm.RawValue);


perm = perm.Modify(manageRoles: false); perm = perm.Modify(manageRoles: false);
Assert.False(perm.ManageRoles); Assert.False(perm.ManageRoles);
@@ -328,7 +329,7 @@ namespace Discord


perm = perm.Modify(manageWebhooks: true); perm = perm.Modify(manageWebhooks: true);
Assert.True(perm.ManageWebhooks); Assert.True(perm.ManageWebhooks);
Assert.Equal(perm.RawValue, (ulong)ChannelPermission.ManageWebhooks);
Assert.Equal((ulong)ChannelPermission.ManageWebhooks, perm.RawValue);


perm = perm.Modify(manageWebhooks: false); perm = perm.Modify(manageWebhooks: false);
Assert.False(perm.ManageWebhooks); Assert.False(perm.ManageWebhooks);


+ 2
- 2
test/Discord.Net.Tests/Tests.Channels.cs View File

@@ -169,7 +169,7 @@ namespace Discord
private async Task CheckChannelCategories(RestCategoryChannel[] categories, RestGuildChannel[] allChannels) private async Task CheckChannelCategories(RestCategoryChannel[] categories, RestGuildChannel[] allChannels)
{ {
// 2 categories // 2 categories
Assert.Equal(categories.Length, 2);
Assert.Equal(2, categories.Length);


var cat1 = categories.Where(x => x.Name == "cat1").FirstOrDefault(); var cat1 = categories.Where(x => x.Name == "cat1").FirstOrDefault();
var cat2 = categories.Where(x => x.Name == "cat2").FirstOrDefault(); var cat2 = categories.Where(x => x.Name == "cat2").FirstOrDefault();
@@ -202,7 +202,7 @@ namespace Discord


Assert.NotNull(voice1); Assert.NotNull(voice1);
Assert.NotNull(voice3); Assert.NotNull(voice3);
Assert.Equal(voice1.CategoryId, cat2.Id); Assert.Equal(voice1.CategoryId, cat2.Id);
var voice1Cat = await voice1.GetCategoryAsync(); var voice1Cat = await voice1.GetCategoryAsync();
Assert.Equal(voice1Cat.Id, cat2.Id); Assert.Equal(voice1Cat.Id, cat2.Id);


+ 34
- 29
test/Discord.Net.Tests/Tests.GuildPermissions.cs View File

@@ -1,4 +1,5 @@
using System; using System;
using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Xunit; using Xunit;


@@ -38,9 +39,13 @@ namespace Discord
copy = GuildPermissions.Webhook.Modify(); copy = GuildPermissions.Webhook.Modify();
Assert.Equal(GuildPermissions.Webhook.RawValue, copy.RawValue); Assert.Equal(GuildPermissions.Webhook.RawValue, copy.RawValue);


// Get all distinct values (ReadMessages = ViewChannel)
var enumValues = (Enum.GetValues(typeof(GuildPermission)) as GuildPermission[])
.Distinct()
.ToArray();
// test GuildPermissions.All // test GuildPermissions.All
ulong sumOfAllGuildPermissions = 0; ulong sumOfAllGuildPermissions = 0;
foreach(var v in Enum.GetValues(typeof(GuildPermission)))
foreach(var v in enumValues)
{ {
sumOfAllGuildPermissions |= (ulong)v; sumOfAllGuildPermissions |= (ulong)v;
} }
@@ -49,9 +54,9 @@ namespace Discord
Assert.Equal(sumOfAllGuildPermissions, GuildPermissions.All.RawValue); Assert.Equal(sumOfAllGuildPermissions, GuildPermissions.All.RawValue);
Assert.Equal((ulong)0, GuildPermissions.None.RawValue); Assert.Equal((ulong)0, GuildPermissions.None.RawValue);


// assert that GuildPermissions.All contains the same number of permissions as the
// assert that GuildPermissions.All contains the same number of permissions as the
// GuildPermissions enum // GuildPermissions enum
Assert.Equal(Enum.GetValues(typeof(GuildPermission)).Length, GuildPermissions.All.ToList().Count);
Assert.Equal(enumValues.Length, GuildPermissions.All.ToList().Count);


// assert that webhook has the same raw value // assert that webhook has the same raw value
ulong webHookPermissions = (ulong)( ulong webHookPermissions = (ulong)(
@@ -76,7 +81,7 @@ namespace Discord
// ensure that when we modify it the parameter works // ensure that when we modify it the parameter works
perm = perm.Modify(createInstantInvite: true); perm = perm.Modify(createInstantInvite: true);
Assert.True(perm.CreateInstantInvite); Assert.True(perm.CreateInstantInvite);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.CreateInstantInvite);
Assert.Equal((ulong)GuildPermission.CreateInstantInvite, perm.RawValue);


// set it false again, then move on to the next permission // set it false again, then move on to the next permission
perm = perm.Modify(createInstantInvite: false); perm = perm.Modify(createInstantInvite: false);
@@ -86,7 +91,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(kickMembers: true); perm = perm.Modify(kickMembers: true);
Assert.True(perm.KickMembers); Assert.True(perm.KickMembers);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.KickMembers);
Assert.Equal((ulong)GuildPermission.KickMembers, perm.RawValue);


perm = perm.Modify(kickMembers: false); perm = perm.Modify(kickMembers: false);
Assert.False(perm.KickMembers); Assert.False(perm.KickMembers);
@@ -95,7 +100,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(banMembers: true); perm = perm.Modify(banMembers: true);
Assert.True(perm.BanMembers); Assert.True(perm.BanMembers);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.BanMembers);
Assert.Equal((ulong)GuildPermission.BanMembers, perm.RawValue);


perm = perm.Modify(banMembers: false); perm = perm.Modify(banMembers: false);
Assert.False(perm.BanMembers); Assert.False(perm.BanMembers);
@@ -104,7 +109,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(administrator: true); perm = perm.Modify(administrator: true);
Assert.True(perm.Administrator); Assert.True(perm.Administrator);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.Administrator);
Assert.Equal((ulong)GuildPermission.Administrator, perm.RawValue);


perm = perm.Modify(administrator: false); perm = perm.Modify(administrator: false);
Assert.False(perm.Administrator); Assert.False(perm.Administrator);
@@ -113,7 +118,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(manageChannels: true); perm = perm.Modify(manageChannels: true);
Assert.True(perm.ManageChannels); Assert.True(perm.ManageChannels);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.ManageChannels);
Assert.Equal((ulong)GuildPermission.ManageChannels, perm.RawValue);


perm = perm.Modify(manageChannels: false); perm = perm.Modify(manageChannels: false);
Assert.False(perm.ManageChannels); Assert.False(perm.ManageChannels);
@@ -122,7 +127,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(manageGuild: true); perm = perm.Modify(manageGuild: true);
Assert.True(perm.ManageGuild); Assert.True(perm.ManageGuild);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.ManageGuild);
Assert.Equal((ulong)GuildPermission.ManageGuild, perm.RawValue);


perm = perm.Modify(manageGuild: false); perm = perm.Modify(manageGuild: false);
Assert.False(perm.ManageGuild); Assert.False(perm.ManageGuild);
@@ -132,7 +137,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(addReactions: true); perm = perm.Modify(addReactions: true);
Assert.True(perm.AddReactions); Assert.True(perm.AddReactions);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.AddReactions);
Assert.Equal((ulong)GuildPermission.AddReactions, perm.RawValue);


perm = perm.Modify(addReactions: false); perm = perm.Modify(addReactions: false);
Assert.False(perm.AddReactions); Assert.False(perm.AddReactions);
@@ -142,7 +147,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(viewAuditLog: true); perm = perm.Modify(viewAuditLog: true);
Assert.True(perm.ViewAuditLog); Assert.True(perm.ViewAuditLog);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.ViewAuditLog);
Assert.Equal((ulong)GuildPermission.ViewAuditLog, perm.RawValue);


perm = perm.Modify(viewAuditLog: false); perm = perm.Modify(viewAuditLog: false);
Assert.False(perm.ViewAuditLog); Assert.False(perm.ViewAuditLog);
@@ -152,7 +157,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(viewChannel: true); perm = perm.Modify(viewChannel: true);
Assert.True(perm.ViewChannel); Assert.True(perm.ViewChannel);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.ViewChannel);
Assert.Equal((ulong)GuildPermission.ViewChannel, perm.RawValue);


perm = perm.Modify(viewChannel: false); perm = perm.Modify(viewChannel: false);
Assert.False(perm.ViewChannel); Assert.False(perm.ViewChannel);
@@ -162,7 +167,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(sendMessages: true); perm = perm.Modify(sendMessages: true);
Assert.True(perm.SendMessages); Assert.True(perm.SendMessages);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.SendMessages);
Assert.Equal((ulong)GuildPermission.SendMessages, perm.RawValue);


perm = perm.Modify(sendMessages: false); perm = perm.Modify(sendMessages: false);
Assert.False(perm.SendMessages); Assert.False(perm.SendMessages);
@@ -171,7 +176,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(embedLinks: true); perm = perm.Modify(embedLinks: true);
Assert.True(perm.EmbedLinks); Assert.True(perm.EmbedLinks);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.EmbedLinks);
Assert.Equal((ulong)GuildPermission.EmbedLinks, perm.RawValue);


perm = perm.Modify(embedLinks: false); perm = perm.Modify(embedLinks: false);
Assert.False(perm.EmbedLinks); Assert.False(perm.EmbedLinks);
@@ -180,7 +185,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(attachFiles: true); perm = perm.Modify(attachFiles: true);
Assert.True(perm.AttachFiles); Assert.True(perm.AttachFiles);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.AttachFiles);
Assert.Equal((ulong)GuildPermission.AttachFiles, perm.RawValue);


perm = perm.Modify(attachFiles: false); perm = perm.Modify(attachFiles: false);
Assert.False(perm.AttachFiles); Assert.False(perm.AttachFiles);
@@ -189,7 +194,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(readMessageHistory: true); perm = perm.Modify(readMessageHistory: true);
Assert.True(perm.ReadMessageHistory); Assert.True(perm.ReadMessageHistory);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.ReadMessageHistory);
Assert.Equal((ulong)GuildPermission.ReadMessageHistory, perm.RawValue);


perm = perm.Modify(readMessageHistory: false); perm = perm.Modify(readMessageHistory: false);
Assert.False(perm.ReadMessageHistory); Assert.False(perm.ReadMessageHistory);
@@ -198,7 +203,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(mentionEveryone: true); perm = perm.Modify(mentionEveryone: true);
Assert.True(perm.MentionEveryone); Assert.True(perm.MentionEveryone);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.MentionEveryone);
Assert.Equal((ulong)GuildPermission.MentionEveryone, perm.RawValue);


perm = perm.Modify(mentionEveryone: false); perm = perm.Modify(mentionEveryone: false);
Assert.False(perm.MentionEveryone); Assert.False(perm.MentionEveryone);
@@ -207,7 +212,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(useExternalEmojis: true); perm = perm.Modify(useExternalEmojis: true);
Assert.True(perm.UseExternalEmojis); Assert.True(perm.UseExternalEmojis);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.UseExternalEmojis);
Assert.Equal((ulong)GuildPermission.UseExternalEmojis, perm.RawValue);


perm = perm.Modify(useExternalEmojis: false); perm = perm.Modify(useExternalEmojis: false);
Assert.False(perm.UseExternalEmojis); Assert.False(perm.UseExternalEmojis);
@@ -216,7 +221,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(connect: true); perm = perm.Modify(connect: true);
Assert.True(perm.Connect); Assert.True(perm.Connect);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.Connect);
Assert.Equal((ulong)GuildPermission.Connect, perm.RawValue);


perm = perm.Modify(connect: false); perm = perm.Modify(connect: false);
Assert.False(perm.Connect); Assert.False(perm.Connect);
@@ -225,7 +230,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(speak: true); perm = perm.Modify(speak: true);
Assert.True(perm.Speak); Assert.True(perm.Speak);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.Speak);
Assert.Equal((ulong)GuildPermission.Speak, perm.RawValue);


perm = perm.Modify(speak: false); perm = perm.Modify(speak: false);
Assert.False(perm.Speak); Assert.False(perm.Speak);
@@ -234,7 +239,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(muteMembers: true); perm = perm.Modify(muteMembers: true);
Assert.True(perm.MuteMembers); Assert.True(perm.MuteMembers);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.MuteMembers);
Assert.Equal((ulong)GuildPermission.MuteMembers, perm.RawValue);


perm = perm.Modify(muteMembers: false); perm = perm.Modify(muteMembers: false);
Assert.False(perm.MuteMembers); Assert.False(perm.MuteMembers);
@@ -243,7 +248,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(deafenMembers: true); perm = perm.Modify(deafenMembers: true);
Assert.True(perm.DeafenMembers); Assert.True(perm.DeafenMembers);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.DeafenMembers);
Assert.Equal((ulong)GuildPermission.DeafenMembers, perm.RawValue);


perm = perm.Modify(deafenMembers: false); perm = perm.Modify(deafenMembers: false);
Assert.False(perm.DeafenMembers); Assert.False(perm.DeafenMembers);
@@ -252,7 +257,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(moveMembers: true); perm = perm.Modify(moveMembers: true);
Assert.True(perm.MoveMembers); Assert.True(perm.MoveMembers);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.MoveMembers);
Assert.Equal((ulong)GuildPermission.MoveMembers, perm.RawValue);


perm = perm.Modify(moveMembers: false); perm = perm.Modify(moveMembers: false);
Assert.False(perm.MoveMembers); Assert.False(perm.MoveMembers);
@@ -261,7 +266,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(useVoiceActivation: true); perm = perm.Modify(useVoiceActivation: true);
Assert.True(perm.UseVAD); Assert.True(perm.UseVAD);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.UseVAD);
Assert.Equal((ulong)GuildPermission.UseVAD, perm.RawValue);


perm = perm.Modify(useVoiceActivation: false); perm = perm.Modify(useVoiceActivation: false);
Assert.False(perm.UseVAD); Assert.False(perm.UseVAD);
@@ -270,7 +275,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(changeNickname: true); perm = perm.Modify(changeNickname: true);
Assert.True(perm.ChangeNickname); Assert.True(perm.ChangeNickname);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.ChangeNickname);
Assert.Equal((ulong)GuildPermission.ChangeNickname, perm.RawValue);


perm = perm.Modify(changeNickname: false); perm = perm.Modify(changeNickname: false);
Assert.False(perm.ChangeNickname); Assert.False(perm.ChangeNickname);
@@ -279,7 +284,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(manageNicknames: true); perm = perm.Modify(manageNicknames: true);
Assert.True(perm.ManageNicknames); Assert.True(perm.ManageNicknames);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.ManageNicknames);
Assert.Equal((ulong)GuildPermission.ManageNicknames, perm.RawValue);


perm = perm.Modify(manageNicknames: false); perm = perm.Modify(manageNicknames: false);
Assert.False(perm.ManageNicknames); Assert.False(perm.ManageNicknames);
@@ -288,7 +293,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(manageRoles: true); perm = perm.Modify(manageRoles: true);
Assert.True(perm.ManageRoles); Assert.True(perm.ManageRoles);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.ManageRoles);
Assert.Equal((ulong)GuildPermission.ManageRoles, perm.RawValue);


perm = perm.Modify(manageRoles: false); perm = perm.Modify(manageRoles: false);
Assert.False(perm.ManageRoles); Assert.False(perm.ManageRoles);
@@ -297,7 +302,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(manageWebhooks: true); perm = perm.Modify(manageWebhooks: true);
Assert.True(perm.ManageWebhooks); Assert.True(perm.ManageWebhooks);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.ManageWebhooks);
Assert.Equal((ulong)GuildPermission.ManageWebhooks, perm.RawValue);


perm = perm.Modify(manageWebhooks: false); perm = perm.Modify(manageWebhooks: false);
Assert.False(perm.ManageWebhooks); Assert.False(perm.ManageWebhooks);
@@ -306,7 +311,7 @@ namespace Discord
// individual permission test // individual permission test
perm = perm.Modify(manageEmojis: true); perm = perm.Modify(manageEmojis: true);
Assert.True(perm.ManageEmojis); Assert.True(perm.ManageEmojis);
Assert.Equal(perm.RawValue, (ulong)GuildPermission.ManageEmojis);
Assert.Equal((ulong)GuildPermission.ManageEmojis, perm.RawValue);


perm = perm.Modify(manageEmojis: false); perm = perm.Modify(manageEmojis: false);
Assert.False(perm.ManageEmojis); Assert.False(perm.ManageEmojis);


+ 15
- 14
test/Discord.Net.Tests/Tests.Permissions.cs View File

@@ -77,7 +77,7 @@ namespace Discord


/// <summary> /// <summary>
/// Tests for the <see cref="Discord.Permissions"/> class. /// Tests for the <see cref="Discord.Permissions"/> class.
///
///
/// Tests that text channel permissions get the right value /// Tests that text channel permissions get the right value
/// from the Has method. /// from the Has method.
/// </summary> /// </summary>
@@ -114,7 +114,7 @@ namespace Discord


/// <summary> /// <summary>
/// Tests for the <see cref="Discord.Permissions"/> class. /// Tests for the <see cref="Discord.Permissions"/> class.
///
///
/// Tests that no channel permissions get the right value /// Tests that no channel permissions get the right value
/// from the Has method. /// from the Has method.
/// </summary> /// </summary>
@@ -151,7 +151,7 @@ namespace Discord


/// <summary> /// <summary>
/// Tests for the <see cref="Discord.Permissions"/> class. /// Tests for the <see cref="Discord.Permissions"/> class.
///
///
/// Tests that the dm channel permissions get the right value /// Tests that the dm channel permissions get the right value
/// from the Has method. /// from the Has method.
/// </summary> /// </summary>
@@ -188,7 +188,7 @@ namespace Discord


/// <summary> /// <summary>
/// Tests for the <see cref="Discord.Permissions"/> class. /// Tests for the <see cref="Discord.Permissions"/> class.
///
///
/// Tests that the group channel permissions get the right value /// Tests that the group channel permissions get the right value
/// from the Has method. /// from the Has method.
/// </summary> /// </summary>
@@ -225,7 +225,7 @@ namespace Discord


/// <summary> /// <summary>
/// Tests for the <see cref="Discord.Permissions"/> class. /// Tests for the <see cref="Discord.Permissions"/> class.
///
///
/// Tests that the voice channel permissions get the right value /// Tests that the voice channel permissions get the right value
/// from the Has method. /// from the Has method.
/// </summary> /// </summary>
@@ -239,7 +239,7 @@ namespace Discord
TestHelper(value, ChannelPermission.CreateInstantInvite, true); TestHelper(value, ChannelPermission.CreateInstantInvite, true);
TestHelper(value, ChannelPermission.ManageChannels, true); TestHelper(value, ChannelPermission.ManageChannels, true);
TestHelper(value, ChannelPermission.AddReactions, false); TestHelper(value, ChannelPermission.AddReactions, false);
TestHelper(value, ChannelPermission.ViewChannel, false);
TestHelper(value, ChannelPermission.ViewChannel, true);
TestHelper(value, ChannelPermission.SendMessages, false); TestHelper(value, ChannelPermission.SendMessages, false);
TestHelper(value, ChannelPermission.SendTTSMessages, false); TestHelper(value, ChannelPermission.SendTTSMessages, false);
TestHelper(value, ChannelPermission.ManageMessages, false); TestHelper(value, ChannelPermission.ManageMessages, false);
@@ -262,8 +262,8 @@ namespace Discord


/// <summary> /// <summary>
/// Tests for the <see cref="Discord.Permissions"/> class. /// Tests for the <see cref="Discord.Permissions"/> class.
///
/// Test that that the Has method of <see cref="Discord.GuildPermissions"/>
///
/// Test that that the Has method of <see cref="Discord.GuildPermissions"/>
/// returns the correct value when no permissions are set. /// returns the correct value when no permissions are set.
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
@@ -305,8 +305,8 @@ namespace Discord


/// <summary> /// <summary>
/// Tests for the <see cref="Discord.Permissions"/> class. /// Tests for the <see cref="Discord.Permissions"/> class.
///
/// Test that that the Has method of <see cref="Discord.GuildPermissions"/>
///
/// Test that that the Has method of <see cref="Discord.GuildPermissions"/>
/// returns the correct value when all permissions are set. /// returns the correct value when all permissions are set.
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
@@ -349,8 +349,8 @@ namespace Discord


/// <summary> /// <summary>
/// Tests for the <see cref="Discord.Permissions"/> class. /// Tests for the <see cref="Discord.Permissions"/> class.
///
/// Test that that the Has method of <see cref="Discord.GuildPermissions"/>
///
/// Test that that the Has method of <see cref="Discord.GuildPermissions"/>
/// returns the correct value when webhook permissions are set. /// returns the correct value when webhook permissions are set.
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
@@ -659,7 +659,7 @@ namespace Discord
TestHelper(value, ChannelPermission.CreateInstantInvite, PermValue.Allow); TestHelper(value, ChannelPermission.CreateInstantInvite, PermValue.Allow);
TestHelper(value, ChannelPermission.ManageChannels, PermValue.Allow); TestHelper(value, ChannelPermission.ManageChannels, PermValue.Allow);
TestHelper(value, ChannelPermission.AddReactions, PermValue.Inherit); TestHelper(value, ChannelPermission.AddReactions, PermValue.Inherit);
TestHelper(value, ChannelPermission.ViewChannel, PermValue.Inherit);
TestHelper(value, ChannelPermission.ViewChannel, PermValue.Allow);
TestHelper(value, ChannelPermission.SendMessages, PermValue.Inherit); TestHelper(value, ChannelPermission.SendMessages, PermValue.Inherit);
TestHelper(value, ChannelPermission.SendTTSMessages, PermValue.Inherit); TestHelper(value, ChannelPermission.SendTTSMessages, PermValue.Inherit);
TestHelper(value, ChannelPermission.ManageMessages, PermValue.Inherit); TestHelper(value, ChannelPermission.ManageMessages, PermValue.Inherit);
@@ -682,7 +682,7 @@ namespace Discord
TestHelper(value, ChannelPermission.CreateInstantInvite, PermValue.Deny); TestHelper(value, ChannelPermission.CreateInstantInvite, PermValue.Deny);
TestHelper(value, ChannelPermission.ManageChannels, PermValue.Deny); TestHelper(value, ChannelPermission.ManageChannels, PermValue.Deny);
TestHelper(value, ChannelPermission.AddReactions, PermValue.Inherit); TestHelper(value, ChannelPermission.AddReactions, PermValue.Inherit);
TestHelper(value, ChannelPermission.ViewChannel, PermValue.Inherit);
TestHelper(value, ChannelPermission.ViewChannel, PermValue.Deny);
TestHelper(value, ChannelPermission.SendMessages, PermValue.Inherit); TestHelper(value, ChannelPermission.SendMessages, PermValue.Inherit);
TestHelper(value, ChannelPermission.SendTTSMessages, PermValue.Inherit); TestHelper(value, ChannelPermission.SendTTSMessages, PermValue.Inherit);
TestHelper(value, ChannelPermission.ManageMessages, PermValue.Inherit); TestHelper(value, ChannelPermission.ManageMessages, PermValue.Inherit);
@@ -709,6 +709,7 @@ namespace Discord
/// of the OverwritePermissions. /// of the OverwritePermissions.
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[Fact]
public Task TestOverwritePermissionModifyNoParam() public Task TestOverwritePermissionModifyNoParam()
{ {
// test for all Text allowed, none denied // test for all Text allowed, none denied


Loading…
Cancel
Save