2020-02-14 08:03:38 +00:00
|
|
|
mod common;
|
|
|
|
|
2021-12-21 17:40:01 +00:00
|
|
|
pub use common::*;
|
2020-02-14 08:03:38 +00:00
|
|
|
use spamassassin_milter::*;
|
|
|
|
|
2022-02-21 17:58:24 +00:00
|
|
|
#[tokio::test]
|
|
|
|
async fn reject_spam() {
|
2022-03-06 08:21:05 +00:00
|
|
|
let config = configure_spamc(Config::builder())
|
2020-06-14 07:53:08 +00:00
|
|
|
.reject_spam(true)
|
2020-06-16 09:29:25 +00:00
|
|
|
.reply_code("554".into())
|
2020-06-14 07:53:08 +00:00
|
|
|
.reply_text("Not allowed!".into())
|
2023-01-18 09:12:45 +00:00
|
|
|
.spamc_args([format!("--port={SPAMD_PORT}")])
|
2022-03-06 08:21:05 +00:00
|
|
|
.build();
|
2020-02-14 08:03:38 +00:00
|
|
|
|
|
|
|
let server = spawn_mock_spamd_server(SPAMD_PORT, |spam| {
|
|
|
|
Err(spam.replacen("\r\n\r\n", "\r\nX-Spam-Flag: YES\r\n\r\n", 1))
|
2022-02-21 17:58:24 +00:00
|
|
|
})
|
|
|
|
.await
|
|
|
|
.unwrap();
|
2021-12-21 17:40:01 +00:00
|
|
|
|
2022-02-21 17:58:24 +00:00
|
|
|
let milter = SpamAssassinMilter::spawn(LOCALHOST, config).await.unwrap();
|
2020-02-14 08:03:38 +00:00
|
|
|
|
2022-02-21 17:58:24 +00:00
|
|
|
let exit_code = run_miltertest(file!(), milter.addr()).await.unwrap();
|
2020-02-14 08:03:38 +00:00
|
|
|
|
2022-02-21 17:58:24 +00:00
|
|
|
milter.shutdown().await.unwrap();
|
|
|
|
server.await.unwrap().unwrap();
|
2020-02-14 08:03:38 +00:00
|
|
|
|
2022-02-21 17:58:24 +00:00
|
|
|
assert!(exit_code.success());
|
2020-02-14 08:03:38 +00:00
|
|
|
}
|