@@ -56,23 +56,27 @@ async fn test_sending_pre_message() -> Result<()> {
5656 . is_some( )
5757 ) ;
5858
59+ let post_rfc724_mid = post_message_parsed
60+ . headers
61+ . get_header_value ( HeaderDef :: MessageId ) ;
5962 assert_eq ! (
60- post_message_parsed
61- . headers
62- . get_header_value( HeaderDef :: MessageId ) ,
63+ post_rfc724_mid,
6364 Some ( format!( "<{}>" , msg. rfc724_mid) ) ,
6465 "Post-Message should have the rfc message id of the database message"
6566 ) ;
6667
68+ let pre_rfc724_mid = pre_message_parsed
69+ . headers
70+ . get_header_value ( HeaderDef :: MessageId ) ;
6771 assert_ne ! (
68- pre_message_parsed
69- . headers
70- . get_header_value( HeaderDef :: MessageId ) ,
71- post_message_parsed
72- . headers
73- . get_header_value( HeaderDef :: MessageId ) ,
72+ pre_rfc724_mid, post_rfc724_mid,
7473 "message ids of Pre-Message and Post-Message should be different"
7574 ) ;
75+ assert_eq ! (
76+ pre_rfc724_mid,
77+ Some ( format!( "<{}>" , msg. pre_rfc724_mid) ) ,
78+ "Unexpected pre-message RFC 724 ID"
79+ ) ;
7680
7781 let decrypted_post_message = bob. parse_msg ( post_message) . await ;
7882 assert_eq ! ( decrypted_post_message. decrypting_failed, false ) ;
@@ -86,9 +90,7 @@ async fn test_sending_pre_message() -> Result<()> {
8690 decrypted_pre_message
8791 . get_header( HeaderDef :: ChatPostMessageId )
8892 . map( String :: from) ,
89- post_message_parsed
90- . headers
91- . get_header_value( HeaderDef :: MessageId )
93+ post_rfc724_mid,
9294 ) ;
9395 assert ! (
9496 pre_message_parsed
@@ -98,6 +100,25 @@ async fn test_sending_pre_message() -> Result<()> {
98100 "no Chat-Post-Message-ID header in unprotected headers of Pre-Message"
99101 ) ;
100102
103+ chat:: resend_msgs ( alice, & [ msg_id] ) . await ?;
104+ let smtp_rows = alice. get_smtp_rows_for_msg ( msg_id) . await ;
105+ assert_eq ! ( smtp_rows. len( ) , 2 ) ;
106+
107+ let pre_message_parsed = mailparse:: parse_mail ( smtp_rows[ 0 ] . payload . as_bytes ( ) ) ?;
108+ assert_eq ! (
109+ pre_message_parsed
110+ . headers
111+ . get_header_value( HeaderDef :: MessageId ) ,
112+ pre_rfc724_mid
113+ ) ;
114+ let post_message_parsed = mailparse:: parse_mail ( smtp_rows[ 1 ] . payload . as_bytes ( ) ) ?;
115+ assert_eq ! (
116+ post_message_parsed
117+ . headers
118+ . get_header_value( HeaderDef :: MessageId ) ,
119+ post_rfc724_mid
120+ ) ;
121+
101122 Ok ( ( ) )
102123}
103124
0 commit comments