From 2b3a3866aa6f8488520bd1e4608e58bf8597fa08 Mon Sep 17 00:00:00 2001 From: stardiviner Date: Mon, 10 Jul 2023 19:48:11 +0800 Subject: [PATCH] [test] add ert testing for property "EMAIL" value format regexp matching --- test-org-contacts.el | 53 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 test-org-contacts.el diff --git a/test-org-contacts.el b/test-org-contacts.el new file mode 100644 index 0000000..9feedb5 --- /dev/null +++ b/test-org-contacts.el @@ -0,0 +1,53 @@ +(require 'ert) + + +(ert-deftest ert-test-org-contacts-property-email-value-extracting-regexp () + "Testing org-contacts property `EMAIL' value extracting regexp rule." + (let ((regexp-rule + ;; "\\[\\[mailto:\\(.*\\)\\]\\(\\[.*\\]\\)\\]" ; valid + "\\[\\[mailto:\\(.*\\)\\]\\(\\[.*\\]\\)\\]\\(,\\ *\\[\\[mailto:\\(.*\\)\\]\\(\\[.*\\]\\)\\]\\)" ; valid + )) + (let ((pvalue "huangtc@outlook.com")) ; normal email + (if (string-match regexp-rule pvalue) + (should (string-equal (match-string 1 pvalue) "yantar92@posteo.net")) + pvalue)) + + (let ((pvalue "huangtc@outlook.com,")) ; has comma separator + (if (string-match regexp-rule pvalue) + (should (string-equal (match-string 1 pvalue) "yantar92@posteo.net")) + pvalue)) + + (let ((pvalue "huangtc@outlook.com, tristan.j.huang@gmail.com,")) + (if (string-match regexp-rule pvalue) + (should (string-equal (match-string 1 pvalue) "yantar92@posteo.net")) + pvalue)) + + (let ((pvalue "[[mailto:yantar92@posteo.net]]")) + (if (string-match regexp-rule pvalue) + (should (string-equal (match-string 1 pvalue) "yantar92@posteo.net")) + pvalue)) + + (let ((pvalue "[[mailto:yantar92@posteo.net][yantar92@posteo.net]]")) + (if (string-match regexp-rule pvalue) + (should (string-equal (match-string 1 pvalue) "yantar92@posteo.net")) + pvalue)) + + (let ((pvalue "[[mailto:yantar92@posteo.net][yantar92@posteo.net]], [[mailto:yantar92@gmail.com][yantar92@gmail.com]]")) + (if (string-match regexp-rule pvalue) + (should (string-equal (match-string 1 pvalue) "yantar92@posteo.net")) + pvalue)) + )) + +;;; literal testing + +;; (let ((regexp-rule "\\[\\[mailto:\\(.*\\)\\]\\(\\[.*\\]\\)\\]") +;; (pvalue "[[mailto:yantar92@posteo.net][yantar92@posteo.net]]")) +;; (if (string-match regexp-rule pvalue) +;; (match-string 1 pvalue) +;; pvalue)) + +;; (let ((regexp-rule "\\[\\[mailto:\\(.*\\)\\]\\(\\[.*\\]\\)\\]\\(,\\ *\\[\\[mailto:\\(.*\\)\\]\\(\\[.*\\]\\)\\]\\)") +;; (pvalue "[[mailto:yantar92@posteo.net][yantar92@posteo.net]], [[mailto:yantar92@gmail.com][yantar92@gmail.com]]")) +;; (if (string-match regexp-rule pvalue) +;; (match-string 1 pvalue) +;; pvalue))