Skip to content

Commit 5a83f40

Browse files
committed
Shortened some tests by introducing a custom send procedure
1 parent aa6c46d commit 5a83f40

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

rosetta-test-suites/sendmail.ros

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@
3333
(sendmail-send-message-full connection message-content from to-list '() '() (make-hash-table) (make-hash-table) message-options to-list-options))
3434
(define (sendmail-send-message connection content from to-list)
3535
(sendmail-send-message-with-options connection content from to-list '() '()))
36-
(define (sendmail-send-message-with-headers connection content from to-list headers-hash-map)
37-
(sendmail-send-message-full connection content from to-list '() '() headers-hash-map (make-hash-table) '() '()))
3836

3937
; Response accessors
4038
(placeholder '(send-success? response) "Return whether the sending was successful.")
@@ -275,12 +273,16 @@
275273
(sendmail-disconnect smtp-connection)
276274
(set! smtp-connection '())))
277275

276+
(define (sendmail-send-with-headers headers)
277+
(sendmail-send-message-full
278+
smtp-connection "message content" "sender@sender.to" '("user@recipient.to") '() '() (alist->hash-table headers) (make-hash-table) '() '()))
279+
278280
(test "set basic header" (lambda ()
279-
(sendmail-send-message-with-headers smtp-connection "message content" "sender@sender.to" '("user@recipient.to") (alist->hash-table '(("x-my-header" "some value"))))
281+
(sendmail-send-with-headers '(("x-my-header" "some value")))
280282
(assert (server-message-contains? "x-my-header: some value") (string-append "Expected x-my-header to be present, but instead got " (server-message-data server)))))
281283

282284
(test "set header with unicode value" (lambda ()
283-
(sendmail-send-message-with-headers smtp-connection "message content" "sender@sender.to" '("user@recipient.to") (alist->hash-table '(("x-my-header" "¡some value"))))
285+
(sendmail-send-with-headers '(("x-my-header" "¡some value")))
284286
(assert
285287
(server-message-contains-ci? "x-my-header: =?utf-8?q?=C2=A1some?= value")
286288
(string-append "Expected x-my-header to contain encoded ¡, but instead got " (server-message-data server)))
@@ -289,7 +291,7 @@
289291
(string-append "Expected message content to be unaltered by unicode header value, but instead got" (server-message-data server)))))
290292

291293
(test "set override standard header" (lambda ()
292-
(sendmail-send-message-with-headers smtp-connection "message content" "sender@sender.to" '("user@recipient.to") (alist->hash-table '(("To" "another-user@recipient.to"))))
294+
(sendmail-send-with-headers '(("To" "another-user@recipient.to")))
293295
(assert (server-message-contains? "To: another-user@recipient.to") (string-append "Expected To header field to include another-user..., but instead got " (server-message-data server)))))
294296

295297
(capability 'crlf-injection (list
@@ -300,14 +302,14 @@
300302
'(("1some\rvalue") ("2some\nvalue") ("3some\r\nvalue"))
301303
(lambda (header-value)
302304
(let
303-
((responses (sendmail-send-message-with-headers smtp-connection "message content" "sender@sender.to" '("user@recipient.to") (alist->hash-table (list (list "x-my-header" header-value))))))
305+
((responses (sendmail-send-with-headers (list (list "x-my-header" header-value)))))
304306
(assert (all? send-error? responses) (string-append "The header value: " header-value " should have resulted in error but did not:" responses)))))
305307

306308
(data-test "CRLF detection in unicode header value"
307309
'(("1¡some\rvalue") ("2¡some\nvalue") ("3¡some\r\nvalue"))
308310
(lambda (header-value)
309311
(let
310-
((responses (sendmail-send-message-with-headers smtp-connection "message content" "sender@sender.to" '("user@recipient.to") (alist->hash-table (list (list "x-my-header" header-value))))))
312+
((responses (sendmail-send-with-headers (list (list "x-my-header" header-value)))))
311313
(assert (all? send-error? responses) (string-append "The header value: " header-value " should have resulted in error but did not:" responses)))))
312314

313315
))
@@ -318,15 +320,15 @@
318320
'(("1some\rvalue") ("2some\nvalue") ("3some\r\nvalue"))
319321
(lambda (header-value)
320322
(let
321-
((responses (sendmail-send-message-with-headers smtp-connection "message content" "sender@sender.to" '("user@recipient.to") (alist->hash-table (list (list "x-my-header" header-value))))))
323+
((responses (sendmail-send-with-headers (list (list "x-my-header" header-value)))))
322324
(assert (all? send-success? responses) (string-append "Message was not sent successfully, instead got: " responses))
323325
(assert (not (server-message-contains? header-value)) (string-append "The header value: " header-value " should have been stripped of CRLF but did not:" (server-message-data server))))))
324326

325327
(data-test "CRLF mitigation in unicode header value"
326328
'(("1¡some \rvalue" "\rvalue") ("2¡some \nvalue" "\nvalue") ("3¡some \r\nvalue" "\r\nvalue"))
327329
(lambda (header-value fragment)
328330
(let
329-
((responses (sendmail-send-message-with-headers smtp-connection "message content" "sender@sender.to" '("user@recipient.to") (alist->hash-table (list (list "x-my-header" header-value))))))
331+
((responses (sendmail-send-with-headers (list (list "x-my-header" header-value)))))
330332
(assert (all? send-success? responses) (string-append "Message was not sent successfully, instead got: " responses))
331333
(assert (not (server-message-contains? fragment)) (string-append "The header value: " header-value " should have been stripped of CRLF but did not: " (server-message-data server))))))
332334

0 commit comments

Comments
 (0)