aboutsummaryrefslogtreecommitdiff
path: root/src/utils/message_builder.rs
diff options
context:
space:
mode:
authorMishio595 <[email protected]>2018-08-01 15:38:12 -0600
committerMishio595 <[email protected]>2018-08-01 15:38:12 -0600
commitc5fb7b4b331ef5a66179539b065913078e55b668 (patch)
tree99bc28270eaad9acf3da3871e72ba67dac5b87eb /src/utils/message_builder.rs
parentMerge branch 'asref_messageid_for_message' (diff)
parentDon't delay Ready with cache enabled (diff)
downloadserenity-c5fb7b4b331ef5a66179539b065913078e55b668.tar.xz
serenity-c5fb7b4b331ef5a66179539b065913078e55b668.zip
Merge branch 'upstream'
Diffstat (limited to 'src/utils/message_builder.rs')
-rw-r--r--src/utils/message_builder.rs78
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***");
+ }
+}