Add vCard 4 ADR parameter tests

This commit is contained in:
2026-03-28 21:33:37 -05:00
parent bbef5ed92d
commit eb6d21c9bf

View File

@@ -185,6 +185,54 @@ suite "vcard/vcard4":
serialize(adr) == serialize(adr) ==
r"ADR:Box\, 7;Suite\; 9;123 Main St;Montreal\nWest;QC\\CA;H2Y 1C6;Canada" r"ADR:Box\, 7;Suite\; 9;123 Main St;Montreal\nWest;QC\\CA;H2Y 1C6;Canada"
test "spec: ADR constructors serialize GEO, TZ, and LABEL parameters":
let adr = newVC4_Adr(
street = "123 Main St",
geo = some("geo:46.772673,-71.282945"),
label = some("123 Main St., Suite 100"),
tz = some("America/Chicago"))
let serialized = serialize(adr)
check:
serialized.startsWith("ADR;")
serialized.contains("GEO=\"geo:46.772673,-71.282945\"")
serialized.contains("LABEL=\"123 Main St., Suite 100\"")
serialized.contains("TZ=America/Chicago")
serialized.endsWith(":;;123 Main St;;;;")
test "spec: ADR exposes GEO, TZ, and LABEL through typed accessors":
check compiles((block:
let parsed = parseSingleVCard4(vcard4Doc(
"VERSION:4.0",
"FN:John Smith",
"ADR;GEO=\"geo:46.772673,-71.282945\";" &
"LABEL=\"123 Main St., Suite 100\";TZ=America/Chicago:" &
";;123 Main St;Springfield;IL;01111;USA"))
parsed.adr[0].geo))
when compiles((block:
let parsed = parseSingleVCard4(vcard4Doc(
"VERSION:4.0",
"FN:John Smith",
"ADR;GEO=\"geo:46.772673,-71.282945\";" &
"LABEL=\"123 Main St., Suite 100\";TZ=America/Chicago:" &
";;123 Main St;Springfield;IL;01111;USA"))
parsed.adr[0].geo)):
let parsed = parseSingleVCard4(vcard4Doc(
"VERSION:4.0",
"FN:John Smith",
"ADR;GEO=\"geo:46.772673,-71.282945\";" &
"LABEL=\"123 Main St., Suite 100\";TZ=America/Chicago:" &
";;123 Main St;Springfield;IL;01111;USA"))
check:
parsed.adr.len == 1
parsed.adr[0].geo == some("geo:46.772673,-71.282945")
parsed.adr[0].label == some("123 Main St., Suite 100")
parsed.adr[0].tz == some("America/Chicago")
serialize(parsed.adr[0]) ==
"ADR;GEO=\"geo:46.772673,-71.282945\";" &
"LABEL=\"123 Main St., Suite 100\";TZ=America/Chicago:" &
";;123 Main St;Springfield;IL;01111;USA"
test "spec: ORG supports multiple organization units": test "spec: ORG supports multiple organization units":
check compiles(newVC4_Org( check compiles(newVC4_Org(
value = @["ABC, Inc.", "North American Division", "Marketing"])) value = @["ABC, Inc.", "North American Division", "Marketing"]))