--- /dev/null
+(defun notmuch-test-address-cleaning-1 ()
+ (notmuch-test-expect-equal (notmuch-show-clean-address "dme@dme.org")
+ "dme@dme.org"))
+
+(defun notmuch-test-address-cleaning-2 ()
+ (let* ((input '("foo@bar.com"
+ "<foo@bar.com>"
+ "Foo Bar <foo@bar.com>"
+ "foo@bar.com <foo@bar.com>"
+ "\"Foo Bar\" <foo@bar.com>"))
+ (expected '("foo@bar.com"
+ "foo@bar.com"
+ "Foo Bar <foo@bar.com>"
+ "foo@bar.com"
+ "Foo Bar <foo@bar.com>"))
+ (output (mapcar #'notmuch-show-clean-address input)))
+ (notmuch-test-expect-equal output expected)))
+
+(defun notmuch-test-address-cleaning-3 ()
+ (let* ((input '("ДБ <db-uknot@stop.me.uk>"
+ "foo (at home) <foo@bar.com>"
+ "foo [at home] <foo@bar.com>"
+ "Foo Bar"))
+ (expected '("ДБ <db-uknot@stop.me.uk>"
+ "foo (at home) <foo@bar.com>"
+ "foo [at home] <foo@bar.com>"
+ "Foo Bar"))
+ (output (mapcar #'notmuch-show-clean-address input)))
+ (notmuch-test-expect-equal output expected)))
--- /dev/null
+#!/usr/bin/env bash
+
+test_description="emacs address cleaning"
+. test-lib.sh
+
+test_begin_subtest "notmuch-test-address-clean part 1"
+test_emacs_expect_t \
+ '(load "emacs-address-cleaning.el") (notmuch-test-address-cleaning-1)'
+
+test_begin_subtest "notmuch-test-address-clean part 2"
+test_emacs_expect_t \
+ '(load "emacs-address-cleaning.el") (notmuch-test-address-cleaning-2)'
+
+test_begin_subtest "notmuch-test-address-clean part 3"
+test_subtest_known_broken
+test_emacs_expect_t \
+ '(load "emacs-address-cleaning.el") (notmuch-test-address-cleaning-3)'
+
+test_done