diff options
| author | Craig Jennings <c@cjennings.net> | 2026-04-05 07:04:37 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-04-05 07:04:37 -0500 |
| commit | 7539ad90287dd0706af2efc92bd45a4b5cfed26d (patch) | |
| tree | 8d4beef1cccd1a566c581bd9d3a3966c05b5c5c2 /tests/test-calendar-sync--extract-email.el | |
| parent | 6f30d5ef4ec3bf0565fdd1de14dc494521bf4bfc (diff) | |
| download | dotemacs-7539ad90287dd0706af2efc92bd45a4b5cfed26d.tar.gz dotemacs-7539ad90287dd0706af2efc92bd45a4b5cfed26d.zip | |
test(calendar-sync): add 32 tests for recurrence exceptions, helpers, unfolding
Cover occurrence-matches-exception-p (6), apply-single-exception (6),
exdate-matches-p (6), extract-cn (5), extract-email (4), unfold-continuation (5).
Diffstat (limited to 'tests/test-calendar-sync--extract-email.el')
| -rw-r--r-- | tests/test-calendar-sync--extract-email.el | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/test-calendar-sync--extract-email.el b/tests/test-calendar-sync--extract-email.el new file mode 100644 index 00000000..75cc9e58 --- /dev/null +++ b/tests/test-calendar-sync--extract-email.el @@ -0,0 +1,42 @@ +;;; test-calendar-sync--extract-email.el --- Tests for email extraction -*- lexical-binding: t; -*- + +;;; Commentary: +;; Tests for calendar-sync--extract-email. +;; Extracts email address from mailto: values in iCal property lines. + +;;; Code: + +(require 'ert) +(require 'testutil-calendar-sync) +(require 'calendar-sync) + +;;; Normal Cases + +(ert-deftest test-calendar-sync--extract-email-normal-standard () + "Extracts email from standard mailto: value." + (should (equal "craig@test.com" + (calendar-sync--extract-email + "ATTENDEE;CN=Craig:mailto:craig@test.com")))) + +(ert-deftest test-calendar-sync--extract-email-normal-organizer () + "Works on ORGANIZER lines too." + (should (equal "boss@corp.com" + (calendar-sync--extract-email + "ORGANIZER;CN=Boss:mailto:boss@corp.com")))) + +;;; Boundary Cases + +(ert-deftest test-calendar-sync--extract-email-boundary-plus-addressing () + "Handles plus-addressed emails." + (should (equal "user+tag@test.com" + (calendar-sync--extract-email + "ATTENDEE:mailto:user+tag@test.com")))) + +;;; Error Cases + +(ert-deftest test-calendar-sync--extract-email-error-no-mailto () + "Line without mailto: returns nil." + (should (null (calendar-sync--extract-email "ATTENDEE;CN=Craig:urn:invalid")))) + +(provide 'test-calendar-sync--extract-email) +;;; test-calendar-sync--extract-email.el ends here |
