diff options
| author | Mishio595 <[email protected]> | 2018-08-01 15:38:12 -0600 |
|---|---|---|
| committer | Mishio595 <[email protected]> | 2018-08-01 15:38:12 -0600 |
| commit | c5fb7b4b331ef5a66179539b065913078e55b668 (patch) | |
| tree | 99bc28270eaad9acf3da3871e72ba67dac5b87eb /src/utils/message_builder.rs | |
| parent | Merge branch 'asref_messageid_for_message' (diff) | |
| parent | Don't delay Ready with cache enabled (diff) | |
| download | serenity-c5fb7b4b331ef5a66179539b065913078e55b668.tar.xz serenity-c5fb7b4b331ef5a66179539b065913078e55b668.zip | |
Merge branch 'upstream'
Diffstat (limited to 'src/utils/message_builder.rs')
| -rw-r--r-- | src/utils/message_builder.rs | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/src/utils/message_builder.rs b/src/utils/message_builder.rs index 7bbfddf..c609c28 100644 --- a/src/utils/message_builder.rs +++ b/src/utils/message_builder.rs @@ -988,3 +988,81 @@ fn normalize(text: &str) -> String { .replace("@everyone", "@\u{200B}everyone") .replace("@here", "@\u{200B}here") } + +#[cfg(test)] +mod test { + use model::prelude::*; + use super::{ + ContentModifier::*, + MessageBuilder, + }; + + #[test] + fn code_blocks() { + let content = MessageBuilder::new() + .push_codeblock("test", Some("rb")) + .build(); + assert_eq!(content, "```rb\ntest\n```"); + } + + #[test] + fn safe_content() { + let content = MessageBuilder::new() + .push_safe("@everyone discord.gg/discord-api") + .build(); + assert_ne!(content, "@everyone discord.gg/discord-api"); + } + + #[test] + fn no_free_formatting() { + let content = MessageBuilder::new().push_bold_safe("test**test").build(); + assert_ne!(content, "**test**test**"); + } + + #[test] + fn mentions() { + let content_emoji = MessageBuilder::new() + .emoji(&Emoji { + animated: false, + id: EmojiId(32), + name: "Rohrkatze".to_string(), + managed: false, + require_colons: true, + roles: vec![], + }) + .build(); + let content_mentions = MessageBuilder::new() + .channel(1) + .mention(&UserId(2)) + .role(3) + .user(4) + .build(); + assert_eq!(content_mentions, "<#1><@2><@&3><@4>"); + assert_eq!(content_emoji, "<:Rohrkatze:32>"); + } + + #[test] + fn content() { + let content = Bold + Italic + Code + "Fun!"; + + assert_eq!(content.to_string(), "***`Fun!`***"); + } + + #[test] + fn message_content() { + let message_content = MessageBuilder::new() + .push(Bold + Italic + Code + "Fun!") + .build(); + + assert_eq!(message_content, "***`Fun!`***"); + } + + #[test] + fn message_content_safe() { + let message_content = MessageBuilder::new() + .push_safe(Bold + Italic + "test**test") + .build(); + + assert_eq!(message_content, "***test\\*\\*test***"); + } +} |