aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/vlib/net/smtp/smtp_test.v
diff options
context:
space:
mode:
Diffstat (limited to 'v_windows/v/vlib/net/smtp/smtp_test.v')
-rw-r--r--v_windows/v/vlib/net/smtp/smtp_test.v89
1 files changed, 89 insertions, 0 deletions
diff --git a/v_windows/v/vlib/net/smtp/smtp_test.v b/v_windows/v/vlib/net/smtp/smtp_test.v
new file mode 100644
index 0000000..d975e57
--- /dev/null
+++ b/v_windows/v/vlib/net/smtp/smtp_test.v
@@ -0,0 +1,89 @@
+import os
+import net.smtp
+import time
+
+// Used to test that a function call returns an error
+fn fn_errors(mut c smtp.Client, m smtp.Mail) bool {
+ c.send(m) or { return true }
+ return false
+}
+
+/*
+*
+* smtp_test
+* Created by: nedimf (07/2020)
+*/
+fn test_smtp() {
+ $if !network ? {
+ return
+ }
+
+ client_cfg := smtp.Client{
+ server: 'smtp.mailtrap.io'
+ from: 'dev@vlang.io'
+ username: os.getenv('VSMTP_TEST_USER')
+ password: os.getenv('VSMTP_TEST_PASS')
+ }
+ if client_cfg.username == '' && client_cfg.password == '' {
+ eprintln('Please set VSMTP_TEST_USER and VSMTP_TEST_PASS before running this test')
+ exit(0)
+ }
+ send_cfg := smtp.Mail{
+ to: 'dev@vlang.io'
+ subject: 'Hello from V2'
+ body: 'Plain text'
+ }
+
+ mut client := smtp.new_client(client_cfg) or {
+ assert false
+ return
+ }
+ assert true
+ client.send(send_cfg) or {
+ assert false
+ return
+ }
+ assert true
+ client.send(smtp.Mail{
+ ...send_cfg
+ from: 'alexander@vlang.io'
+ }) or {
+ assert false
+ return
+ }
+ client.send(smtp.Mail{
+ ...send_cfg
+ cc: 'alexander@vlang.io,joe@vlang.io'
+ bcc: 'spytheman@vlang.io'
+ }) or {
+ assert false
+ return
+ }
+ client.send(smtp.Mail{
+ ...send_cfg
+ date: time.now().add_days(1000)
+ }) or {
+ assert false
+ return
+ }
+ assert true
+ client.quit() or {
+ assert false
+ return
+ }
+ assert true
+ // This call should return an error, since the connection is closed
+ if !fn_errors(mut client, send_cfg) {
+ assert false
+ return
+ }
+ client.reconnect() or {
+ assert false
+ return
+ }
+ client.send(send_cfg) or {
+ assert false
+ return
+ }
+ assert true
+}