Add vCard 4 ADR parameter tests
This commit is contained in:
@@ -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"]))
|
||||||
|
|||||||
Reference in New Issue
Block a user