2021-08-21 15:29:43 +02:00
|
|
|
;;; address.lisp --- tests for the e-mail address parser
|
|
|
|
|
|
|
|
;;; Copyright (C) 2007, 2009 by Walter C. Pelissero
|
2022-01-24 12:01:39 +01:00
|
|
|
;;; Copyright (C) 2022 by The TVL Authors
|
2021-08-21 15:29:43 +02:00
|
|
|
|
|
|
|
;;; Author: Walter C. Pelissero <walter@pelissero.de>
|
|
|
|
;;; Project: mime4cl
|
|
|
|
|
|
|
|
;;; This library is free software; you can redistribute it and/or
|
|
|
|
;;; modify it under the terms of the GNU Lesser General Public License
|
|
|
|
;;; as published by the Free Software Foundation; either version 2.1
|
|
|
|
;;; of the License, or (at your option) any later version.
|
|
|
|
;;; This library is distributed in the hope that it will be useful,
|
|
|
|
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
;;; Lesser General Public License for more details.
|
|
|
|
;;; You should have received a copy of the GNU Lesser General Public
|
|
|
|
;;; License along with this library; if not, write to the Free
|
|
|
|
;;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
|
|
;;; 02111-1307 USA
|
|
|
|
|
|
|
|
(in-package :mime4cl-tests)
|
|
|
|
|
|
|
|
(defun test-parsing (string)
|
|
|
|
(format nil "~{~A~^, ~}" (parse-addresses string)))
|
|
|
|
|
|
|
|
(deftest address-parse-simple.1
|
|
|
|
(test-parsing "foo@bar")
|
|
|
|
"foo@bar")
|
|
|
|
|
|
|
|
(deftest address-parse-simple.2
|
|
|
|
(test-parsing "foo@bar.com")
|
|
|
|
"foo@bar.com")
|
|
|
|
|
|
|
|
(deftest address-parse-simple.3
|
|
|
|
(test-parsing "foo@bar.baz.com")
|
|
|
|
"foo@bar.baz.com")
|
|
|
|
|
|
|
|
(deftest address-parse-simple.4
|
|
|
|
(test-parsing "foo.ooo@bar.baz.com")
|
|
|
|
"foo.ooo@bar.baz.com")
|
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
|
|
|
|
(deftest address-parse-simple-commented.1
|
|
|
|
(test-parsing "foo@bar (Some Comment)")
|
|
|
|
"\"Some Comment\" <foo@bar>")
|
|
|
|
|
|
|
|
(deftest address-parse-simple-commented.2
|
|
|
|
(test-parsing "foo@bar (Some, Comment)")
|
|
|
|
"\"Some, Comment\" <foo@bar>")
|
|
|
|
|
|
|
|
(deftest address-parse-simple-commented.3
|
|
|
|
(test-parsing "foo@bar (Some Comment (yes, indeed))")
|
|
|
|
"\"Some Comment (yes, indeed)\" <foo@bar>")
|
|
|
|
|
|
|
|
(deftest address-parse-simple-commented.4
|
|
|
|
(test-parsing "foo.bar@host.complicated.domain.net (Some Comment (yes, indeed))")
|
|
|
|
"\"Some Comment (yes, indeed)\" <foo.bar@host.complicated.domain.net>")
|
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
|
|
|
|
(deftest address-parse-angle.1
|
|
|
|
(test-parsing "<foo@bar.baz.net>")
|
|
|
|
"foo@bar.baz.net")
|
|
|
|
|
|
|
|
(deftest address-parse-angle.2
|
|
|
|
(test-parsing "My far far friend <foo@bar.baz.net>")
|
|
|
|
"\"My far far friend\" <foo@bar.baz.net>")
|
|
|
|
|
|
|
|
(deftest address-parse-angle.3
|
|
|
|
(test-parsing "\"someone, I don't like\" <foo@bar.baz.net>")
|
|
|
|
"\"someone, I don't like\" <foo@bar.baz.net>")
|
|
|
|
|
|
|
|
(deftest address-parse-angle.4
|
|
|
|
(test-parsing "\"this could (be a comment)\" <foo@bar.net>")
|
|
|
|
"\"this could (be a comment)\" <foo@bar.net>")
|
|
|
|
|
|
|
|
(deftest address-parse-angle.5
|
|
|
|
(test-parsing "don't be fooled <foo@bar.net>")
|
|
|
|
"\"don't be fooled\" <foo@bar.net>")
|
|
|
|
|
|
|
|
(deftest address-parse-angle.6
|
|
|
|
(test-parsing "<foo@bar>")
|
|
|
|
"foo@bar")
|
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
|
|
|
|
(deftest address-parse-domain-literal.1
|
|
|
|
(test-parsing "<foo@[bar]>")
|
|
|
|
"foo@[bar]")
|
|
|
|
|
|
|
|
(deftest address-parse-domain-literal.2
|
|
|
|
(test-parsing "<foo@[bar.net]>")
|
|
|
|
"foo@[bar.net]")
|
|
|
|
|
|
|
|
(deftest address-parse-domain-literal.3
|
|
|
|
(test-parsing "<foo@[10.0.0.2]>")
|
|
|
|
"foo@[10.0.0.2]")
|
|
|
|
|
|
|
|
(deftest address-parse-domain-literal.4
|
|
|
|
(test-parsing "<foo.bar@[10.0.0.2]>")
|
|
|
|
"foo.bar@[10.0.0.2]")
|
|
|
|
|
|
|
|
(deftest address-parse-domain-literal.5
|
|
|
|
(test-parsing "somewhere unkown <foo.bar@[10.0.0.2]>")
|
|
|
|
"\"somewhere unkown\" <foo.bar@[10.0.0.2]>")
|
|
|
|
|
|
|
|
(deftest address-parse-domain-literal.6
|
|
|
|
(test-parsing "\"Some--One\" <foo.bar@[10.0.0.23]>")
|
|
|
|
"\"Some--One\" <foo.bar@[10.0.0.23]>")
|
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
|
|
|
|
(deftest address-parse-group.1
|
|
|
|
(test-parsing "friends:john@bar.in.soho, jack@pub.round.the.corner, jim@[10.0.1.2];")
|
|
|
|
"friends: john@bar.in.soho, jack@pub.round.the.corner, jim@[10.0.1.2];")
|
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
|
|
|
|
(deftest address-parse-mixed.1
|
|
|
|
(test-parsing "Foo BAR <foo@bar.com>, \"John, Smith (that one!)\" <john.smith@host.domain.org>, friends:john@bar,jack@pub;, foo.bar.baz@wow.mail.mine, dont.bark@me (Fierce Dog)")
|
|
|
|
"\"Foo BAR\" <foo@bar.com>, \"John, Smith (that one!)\" <john.smith@host.domain.org>, friends: john@bar, jack@pub;, foo.bar.baz@wow.mail.mine, \"Fierce Dog\" <dont.bark@me>")
|