Add vCard 4 LANG and TZ value-type tests

This commit is contained in:
2026-03-28 20:27:12 -05:00
parent 8ea67163e7
commit 99a36f71d0

View File

@@ -200,6 +200,39 @@ suite "vcard/vcard4":
let src = newVC4_Source(value="https://carddav.example.test/john-smith.vcf") let src = newVC4_Source(value="https://carddav.example.test/john-smith.vcf")
check serialize(src) == "SOURCE:https://carddav.example.test/john-smith.vcf" check serialize(src) == "SOURCE:https://carddav.example.test/john-smith.vcf"
test "spec: LANG supports explicit VALUE=language-tag":
let parsed = parseSingleVCard4(vcard4Doc(
"VERSION:4.0",
"FN:John Smith",
"LANG;VALUE=language-tag;PREF=1:en-US"))
check:
parsed.lang.len == 1
parsed.lang[0].value == "en-US"
parsed.lang[0].valueType == some("language-tag")
serialize(parsed.lang[0]) == "LANG;VALUE=language-tag;PREF=1:en-US"
test "spec: TZ supports VALUE=utc-offset":
let parsed = parseSingleVCard4(vcard4Doc(
"VERSION:4.0",
"FN:John Smith",
"TZ;VALUE=utc-offset:-0500"))
check:
parsed.tz.len == 1
parsed.tz[0].value == "-0500"
parsed.tz[0].valueType == some("utc-offset")
serialize(parsed.tz[0]) == "TZ;VALUE=utc-offset:-0500"
test "spec: TZ supports VALUE=uri":
let parsed = parseSingleVCard4(vcard4Doc(
"VERSION:4.0",
"FN:John Smith",
"TZ;VALUE=uri:https://example.com/tz/America-Chicago"))
check:
parsed.tz.len == 1
parsed.tz[0].value == "https://example.com/tz/America-Chicago"
parsed.tz[0].valueType == some("uri")
serialize(parsed.tz[0]) == "TZ;VALUE=uri:https://example.com/tz/America-Chicago"
test "Single-text properties are parsed correctly": test "Single-text properties are parsed correctly":
# Covers KIND, XML, FN, NICKNAME, EMAIL, LANG, TZ, TITLE, ROLE, ORG, NOTE, # Covers KIND, XML, FN, NICKNAME, EMAIL, LANG, TZ, TITLE, ROLE, ORG, NOTE,
# PRODID, and VERSION # PRODID, and VERSION