mirror of
https://github.com/chatmail/core.git
synced 2026-05-08 09:26:29 +03:00
add tests for get_summary_text_without_prefix()
This commit is contained in:
100
src/summary.rs
100
src/summary.rs
@@ -270,6 +270,11 @@ mod tests {
|
|||||||
use crate::param::Param;
|
use crate::param::Param;
|
||||||
use crate::test_utils as test;
|
use crate::test_utils as test;
|
||||||
|
|
||||||
|
async fn assert_summary_texts(msg: &Message, ctx: &Context, expected: &str) {
|
||||||
|
assert_eq!(msg.get_summary_text(ctx).await, expected);
|
||||||
|
assert_eq!(msg.get_summary_text_without_prefix(ctx).await, expected);
|
||||||
|
}
|
||||||
|
|
||||||
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||||
async fn test_get_summary_text() {
|
async fn test_get_summary_text() {
|
||||||
let d = test::TestContext::new().await;
|
let d = test::TestContext::new().await;
|
||||||
@@ -279,131 +284,81 @@ mod tests {
|
|||||||
|
|
||||||
let mut msg = Message::new(Viewtype::Text);
|
let mut msg = Message::new(Viewtype::Text);
|
||||||
msg.set_text(some_text.to_string());
|
msg.set_text(some_text.to_string());
|
||||||
assert_eq!(
|
assert_summary_texts(&msg, ctx, "bla bla").await; // for simple text, the type is not added to the summary
|
||||||
msg.get_summary_text(ctx).await,
|
|
||||||
"bla bla" // for simple text, the type is not added to the summary
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut msg = Message::new(Viewtype::Image);
|
let mut msg = Message::new(Viewtype::Image);
|
||||||
msg.set_file("foo.jpg", None);
|
msg.set_file("foo.jpg", None);
|
||||||
assert_eq!(
|
assert_summary_texts(&msg, ctx, "📷 Image").await; // file names are not added for images
|
||||||
msg.get_summary_text(ctx).await,
|
|
||||||
"📷 Image" // file names are not added for images
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut msg = Message::new(Viewtype::Image);
|
let mut msg = Message::new(Viewtype::Image);
|
||||||
msg.set_text(some_text.to_string());
|
msg.set_text(some_text.to_string());
|
||||||
msg.set_file("foo.jpg", None);
|
msg.set_file("foo.jpg", None);
|
||||||
assert_eq!(
|
assert_summary_texts(&msg, ctx, "📷 bla bla").await; // type is visible by emoji if text is set
|
||||||
msg.get_summary_text(ctx).await,
|
|
||||||
"📷 bla bla" // type is visible by emoji if text is set
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut msg = Message::new(Viewtype::Video);
|
let mut msg = Message::new(Viewtype::Video);
|
||||||
msg.set_file("foo.mp4", None);
|
msg.set_file("foo.mp4", None);
|
||||||
assert_eq!(
|
assert_summary_texts(&msg, ctx, "🎥 Video").await; // file names are not added for videos
|
||||||
msg.get_summary_text(ctx).await,
|
|
||||||
"🎥 Video" // file names are not added for videos
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut msg = Message::new(Viewtype::Video);
|
let mut msg = Message::new(Viewtype::Video);
|
||||||
msg.set_text(some_text.to_string());
|
msg.set_text(some_text.to_string());
|
||||||
msg.set_file("foo.mp4", None);
|
msg.set_file("foo.mp4", None);
|
||||||
assert_eq!(
|
assert_summary_texts(&msg, ctx, "🎥 bla bla").await; // type is visible by emoji if text is set
|
||||||
msg.get_summary_text(ctx).await,
|
|
||||||
"🎥 bla bla" // type is visible by emoji if text is set
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut msg = Message::new(Viewtype::Gif);
|
let mut msg = Message::new(Viewtype::Gif);
|
||||||
msg.set_file("foo.gif", None);
|
msg.set_file("foo.gif", None);
|
||||||
assert_eq!(
|
assert_summary_texts(&msg, ctx, "GIF").await; // file names are not added for GIFs
|
||||||
msg.get_summary_text(ctx).await,
|
|
||||||
"GIF" // file names are not added for GIFs
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut msg = Message::new(Viewtype::Gif);
|
let mut msg = Message::new(Viewtype::Gif);
|
||||||
msg.set_text(some_text.to_string());
|
msg.set_text(some_text.to_string());
|
||||||
msg.set_file("foo.gif", None);
|
msg.set_file("foo.gif", None);
|
||||||
assert_eq!(
|
assert_summary_texts(&msg, ctx, "GIF \u{2013} bla bla").await; // file names are not added for GIFs
|
||||||
msg.get_summary_text(ctx).await,
|
|
||||||
"GIF \u{2013} bla bla" // file names are not added for GIFs
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut msg = Message::new(Viewtype::Sticker);
|
let mut msg = Message::new(Viewtype::Sticker);
|
||||||
msg.set_file("foo.png", None);
|
msg.set_file("foo.png", None);
|
||||||
assert_eq!(
|
assert_summary_texts(&msg, ctx, "Sticker").await; // file names are not added for stickers
|
||||||
msg.get_summary_text(ctx).await,
|
|
||||||
"Sticker" // file names are not added for stickers
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut msg = Message::new(Viewtype::Voice);
|
let mut msg = Message::new(Viewtype::Voice);
|
||||||
msg.set_file("foo.mp3", None);
|
msg.set_file("foo.mp3", None);
|
||||||
assert_eq!(
|
assert_summary_texts(&msg, ctx, "🎤 Voice message").await; // file names are not added for voice messages
|
||||||
msg.get_summary_text(ctx).await,
|
|
||||||
"🎤 Voice message" // file names are not added for voice messages
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut msg = Message::new(Viewtype::Voice);
|
let mut msg = Message::new(Viewtype::Voice);
|
||||||
msg.set_text(some_text.clone());
|
msg.set_text(some_text.clone());
|
||||||
msg.set_file("foo.mp3", None);
|
msg.set_file("foo.mp3", None);
|
||||||
assert_eq!(
|
assert_summary_texts(&msg, ctx, "🎤 bla bla").await;
|
||||||
msg.get_summary_text(ctx).await,
|
|
||||||
"🎤 bla bla" // `\u{2013}` explicitly checks for "EN DASH"
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut msg = Message::new(Viewtype::Audio);
|
let mut msg = Message::new(Viewtype::Audio);
|
||||||
msg.set_file("foo.mp3", None);
|
msg.set_file("foo.mp3", None);
|
||||||
assert_eq!(
|
assert_summary_texts(&msg, ctx, "🎵 foo.mp3").await; // file name is added for audio
|
||||||
msg.get_summary_text(ctx).await,
|
|
||||||
"🎵 foo.mp3" // file name is added for audio
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut msg = Message::new(Viewtype::Audio);
|
let mut msg = Message::new(Viewtype::Audio);
|
||||||
msg.set_file("foo.mp3", None);
|
msg.set_file("foo.mp3", None);
|
||||||
assert_eq!(
|
assert_summary_texts(&msg, ctx, "🎵 foo.mp3").await; // file name is added for audio, empty text is not added
|
||||||
msg.get_summary_text(ctx).await,
|
|
||||||
"🎵 foo.mp3" // file name is added for audio, empty text is not added
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut msg = Message::new(Viewtype::Audio);
|
let mut msg = Message::new(Viewtype::Audio);
|
||||||
msg.set_text(some_text.clone());
|
msg.set_text(some_text.clone());
|
||||||
msg.set_file("foo.mp3", None);
|
msg.set_file("foo.mp3", None);
|
||||||
assert_eq!(
|
assert_summary_texts(&msg, ctx, "🎵 foo.mp3 \u{2013} bla bla").await; // file name and text added for audio
|
||||||
msg.get_summary_text(ctx).await,
|
|
||||||
"🎵 foo.mp3 \u{2013} bla bla" // file name and text added for audio
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut msg = Message::new(Viewtype::File);
|
let mut msg = Message::new(Viewtype::File);
|
||||||
msg.set_file("foo.bar", None);
|
msg.set_file("foo.bar", None);
|
||||||
assert_eq!(
|
assert_summary_texts(&msg, ctx, "📎 foo.bar").await; // file name is added for files
|
||||||
msg.get_summary_text(ctx).await,
|
|
||||||
"📎 foo.bar" // file name is added for files
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut msg = Message::new(Viewtype::File);
|
let mut msg = Message::new(Viewtype::File);
|
||||||
msg.set_text(some_text.clone());
|
msg.set_text(some_text.clone());
|
||||||
msg.set_file("foo.bar", None);
|
msg.set_file("foo.bar", None);
|
||||||
assert_eq!(
|
assert_summary_texts(&msg, ctx, "📎 foo.bar \u{2013} bla bla").await; // file name is added for files
|
||||||
msg.get_summary_text(ctx).await,
|
|
||||||
"📎 foo.bar \u{2013} bla bla" // file name is added for files
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut msg = Message::new(Viewtype::VideochatInvitation);
|
let mut msg = Message::new(Viewtype::VideochatInvitation);
|
||||||
msg.set_text(some_text.clone());
|
msg.set_text(some_text.clone());
|
||||||
msg.set_file("foo.bar", None);
|
msg.set_file("foo.bar", None);
|
||||||
assert_eq!(
|
assert_summary_texts(&msg, ctx, "Video chat invitation").await; // text is not added for videochat invitations
|
||||||
msg.get_summary_text(ctx).await,
|
|
||||||
"Video chat invitation" // text is not added for videochat invitations
|
|
||||||
);
|
|
||||||
|
|
||||||
// Forwarded
|
// Forwarded
|
||||||
let mut msg = Message::new(Viewtype::Text);
|
let mut msg = Message::new(Viewtype::Text);
|
||||||
msg.set_text(some_text.clone());
|
msg.set_text(some_text.clone());
|
||||||
msg.param.set_int(Param::Forwarded, 1);
|
msg.param.set_int(Param::Forwarded, 1);
|
||||||
assert_eq!(
|
assert_eq!(msg.get_summary_text(ctx).await, "Forwarded: bla bla"); // for simple text, the type is not added to the summary
|
||||||
msg.get_summary_text(ctx).await,
|
assert_eq!(msg.get_summary_text_without_prefix(ctx).await, "bla bla"); // skipping prefix used for reactions summaries
|
||||||
"Forwarded: bla bla" // for simple text, the type is not added to the summary
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut msg = Message::new(Viewtype::File);
|
let mut msg = Message::new(Viewtype::File);
|
||||||
msg.set_text(some_text.clone());
|
msg.set_text(some_text.clone());
|
||||||
@@ -413,14 +368,15 @@ mod tests {
|
|||||||
msg.get_summary_text(ctx).await,
|
msg.get_summary_text(ctx).await,
|
||||||
"Forwarded: 📎 foo.bar \u{2013} bla bla"
|
"Forwarded: 📎 foo.bar \u{2013} bla bla"
|
||||||
);
|
);
|
||||||
|
assert_eq!(
|
||||||
|
msg.get_summary_text_without_prefix(ctx).await,
|
||||||
|
"📎 foo.bar \u{2013} bla bla"
|
||||||
|
); // skipping prefix used for reactions summaries
|
||||||
|
|
||||||
let mut msg = Message::new(Viewtype::File);
|
let mut msg = Message::new(Viewtype::File);
|
||||||
msg.set_text(some_text.clone());
|
msg.set_text(some_text.clone());
|
||||||
msg.param.set(Param::File, "foo.bar");
|
msg.param.set(Param::File, "foo.bar");
|
||||||
msg.param.set_cmd(SystemMessage::AutocryptSetupMessage);
|
msg.param.set_cmd(SystemMessage::AutocryptSetupMessage);
|
||||||
assert_eq!(
|
assert_summary_texts(&msg, ctx, "Autocrypt Setup Message").await; // file name is not added for autocrypt setup messages
|
||||||
msg.get_summary_text(ctx).await,
|
|
||||||
"Autocrypt Setup Message" // file name is not added for autocrypt setup messages
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user