From 15d2b7ecd0f7c11645fa991ebf24eb71e953b321 Mon Sep 17 00:00:00 2001 From: Jonathan Bernard Date: Sat, 28 Mar 2026 21:37:54 -0500 Subject: [PATCH] Add vCard 4 parameter applicability tests --- tests/tvcard4.nim | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/tests/tvcard4.nim b/tests/tvcard4.nim index 25324be..f29ce5b 100644 --- a/tests/tvcard4.nim +++ b/tests/tvcard4.nim @@ -324,6 +324,43 @@ suite "vcard/vcard4": parsed.anniversary.isSome parsed.anniversary.get.calscale == some("gregorian") + test "spec: unsupported standard parameters are rejected on known properties": + expect(VCardParsingError): + discard parseSingleVCard4(vcard4Doc( + "VERSION:4.0", + "FN;SORT-AS=Smith:John Smith")) + + expect(VCardParsingError): + discard parseSingleVCard4(vcard4Doc( + "VERSION:4.0", + "FN:John Smith", + "EMAIL;LABEL=Inbox:test@example.com")) + + expect(VCardParsingError): + discard parseSingleVCard4(vcard4Doc( + "VERSION:4.0", + "FN:John Smith", + "ORG;CALSCALE=gregorian:Example Corp")) + + expect(VCardParsingError): + discard parseSingleVCard4(vcard4Doc( + "VERSION:4.0", + "FN:John Smith", + "CLIENTPIDMAP;PID=1.1:1;urn:uuid:client-map")) + + test "spec: CALSCALE is rejected when BDAY or ANNIVERSARY use VALUE=text": + expect(VCardParsingError): + discard parseSingleVCard4(vcard4Doc( + "VERSION:4.0", + "FN:John Smith", + "BDAY;VALUE=text;CALSCALE=gregorian:circa 1800")) + + expect(VCardParsingError): + discard parseSingleVCard4(vcard4Doc( + "VERSION:4.0", + "FN:John Smith", + "ANNIVERSARY;VALUE=text;CALSCALE=gregorian:childhood")) + test "can parse properties with escaped characters": check v4Ex.note.len == 1 let note = v4Ex.note[0]