From 4b05f8882e647b0c4398259f3159cd599bd5948a Mon Sep 17 00:00:00 2001 From: Steve Brokenshire Date: Sat, 2 Jul 2016 22:14:01 +0100 Subject: [PATCH] Added KEY to the SaveString function of ContactDataObject --- .../cdo/ContactDataObject-Save.cpp | 83 +++++++++++++ source/contacteditor/cdo/ContactDataObject.h | 5 + source/tests/xestiaab_contactsave.h | 117 ++++++++++++++++++ 3 files changed, 205 insertions(+) diff --git a/source/contacteditor/cdo/ContactDataObject-Save.cpp b/source/contacteditor/cdo/ContactDataObject-Save.cpp index 39f4a2a..f88d9ee 100644 --- a/source/contacteditor/cdo/ContactDataObject-Save.cpp +++ b/source/contacteditor/cdo/ContactDataObject-Save.cpp @@ -613,6 +613,14 @@ ContactSaveStatus ContactDataObject::SaveString(wxString *SaveData){ &FreeBusyListMediatype, &FreeBusyListPref, &FreeBusyListTokens, SaveData); + // Process KEY. + + SaveKey(&KeyList, &KeyListAltID, + &KeyListPID, &KeyListType, + &KeyListKeyType, &KeyListDataEncType, + &KeyListDataType, &KeyListPref, + &KeyListTokens, SaveData); + // Write the end part of the vCard data file. SaveData->Append("END:VCARD"); @@ -2200,4 +2208,79 @@ void ContactDataObject::SaveFreeBusyURI(std::map *FreeBusyList, s } +} + +void ContactDataObject::SaveKey(map *KeyList, map *KeyListAltID, + map *KeyListPID, map *KeyListType, + map *KeyListKeyType, map *KeyListDataEncType, + map *KeyListDataType, map *KeyListPref, + map *KeyListTokens, wxString *SaveData){ + + wxString ProcessData = ""; + + for (std::map::iterator KeyIter = KeyList->begin(); + KeyIter != KeyList->end(); KeyIter++){ + + ProcessData.Append("KEY"); + + // Check if there is a value for TYPE. + + if ((*KeyListType)[KeyIter->first].size() > 0){ + + ProcessData.Append(";TYPE="); + ProcessData.Append((*KeyListType)[KeyIter->first]); + + } + + // Check if there is a value for ALTID. + + if ((*KeyListAltID)[KeyIter->first].size() > 0){ + + ProcessData.Append(";ALTID="); + ProcessData.Append((*KeyListAltID)[KeyIter->first]); + + } + + // Check if there is a value for PID. + + if ((*KeyListPID)[KeyIter->first].size() > 0){ + + ProcessData.Append(";PID="); + ProcessData.Append((*KeyListPID)[KeyIter->first]); + + } + + // Check if there is a value for PREF. + + if ((*KeyListPref)[KeyIter->first] > 0){ + + ProcessData.Append(";PREF="); + ProcessData.Append(wxString::Format("%i", (*KeyListPref)[KeyIter->first])); + + } + + // Check if there is a value for tokens. + + if ((*KeyListTokens)[KeyIter->first].size() > 0){ + + ProcessData.Append(";"); + ProcessData.Append((*KeyListTokens)[KeyIter->first]); + + } + + ProcessData.Append(":data:"); + ProcessData.Append((*KeyListDataType)[KeyIter->first]); + ProcessData.Append(";"); + ProcessData.Append((*KeyListDataEncType)[KeyIter->first]); + ProcessData.Append(","); + ProcessData.Append(KeyIter->second); + ProcessData.Append("\n"); + + ProcessData = OutputText(&ProcessData); + + SaveData->Append(ProcessData); + ProcessData.clear(); + + } + } \ No newline at end of file diff --git a/source/contacteditor/cdo/ContactDataObject.h b/source/contacteditor/cdo/ContactDataObject.h index 0cc1f23..1ad93c1 100644 --- a/source/contacteditor/cdo/ContactDataObject.h +++ b/source/contacteditor/cdo/ContactDataObject.h @@ -184,6 +184,11 @@ class ContactDataObject{ std::map *FreeBusyListPID, std::map *FreeBusyListType, std::map *FreeBusyListMediatype, std::map *FreeBusyListPref, std::map *FreeBusyListTokens, wxString *SaveData); + void SaveKey(map *KeyList, map *KeyListAltID, + map *KeyListPID, map *KeyListType, + map *KeyListKeyType, map *KeyListDataEncType, + map *KeyListDataType, map *KeyListPref, + map *KeyListTokens, wxString *SaveData); public: diff --git a/source/tests/xestiaab_contactsave.h b/source/tests/xestiaab_contactsave.h index a680d5a..1dd8b65 100644 --- a/source/tests/xestiaab_contactsave.h +++ b/source/tests/xestiaab_contactsave.h @@ -562,6 +562,123 @@ TEST(ContactSave, ContactSaveTests){ " ttp://example.com/home/freebusy\n" "FBURL;TYPE=work;ALTID=94;MEDIATYPE=text/stillwetink;PID=91;PREF=92;STATUS=BUS\n" " Y:http://example.com/business/freebusy\n" + "KEY;ALTID=54;PID=51;PREF=52;KEYS=JUSTONE:data:application/pgp-keys;base64,LS0\n" + " tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tClZlcnNpb246IEdudVBHIHYyCgptUU1\n" + " 1QkZaL0JyWVJDQUN2cTNueUl4dXJPOFovMHcwQWdkeUdhN1d2cWRpdk5OWVdEM3dmZkgrSi83R2o\n" + " 1dkNOClJwWFQ5TVI4SEdmR0Jwai9hc0NsajltbjhnRENMcVZJaXFybXZXK3dHbnhBVWxFU05VT20\n" + " 1cEx6NTRwTzBzOW0KYzJ5SDRkYWVYR3pRTXFLUit2TDZaTWpDc0pSRk1UWVAzSDlTMlBFaHFFMXl\n" + " 4TnBpRi9ZTS9jNGNOYmU5bEZsTgpKMnJ2QzA2bzZuMFlzYWtuZTk3bWlndGNyTUpZVDljVDF4cjB\n" + " 5YUhDekcrVXZqOG1RMnlGT0tpVEpxeGlCVEdhClRMWjJjTFBVZVFFbnpjSWNwNnhVTitQZlZYZzN\n" + " NVllHWUZQakk0aUg0anNCQUFDc1BEMmpYSExnYVVzLzJ5VHUKNVF4M1RKSHljVTArOXZidC85VDJ\n" + " KdGt3c1R5SXlqQnJ0eGd6QVFERENaaFZoNU5oOFJuSWlSRDFzMzNmN1RoZgp4eENUMU0yWHI3dWh\n" + " 1WVFTZ1FmNUFRYkFscDZpUk9xTms5VVlBeHNSWVdPelRFd3RWMGlCLzBJamwyZFBUTm1YClJxNW9\n" + " FN0JOT3JYZjEzMmM4NlFpNWdPbGVHbWNoNFEvUUZTbUYwT05FZCs4aVNWemMvaVdFTUh4SzROZ1Z\n" + " MN0kKc0FMMDVweGZhdWxpWlRlWVVGcGM1ajZnWHFpUExyNy93ODB4Q05vOWZsWmZXQkZzYVhMZm1\n" + " 0Z3I1MU9kYXhJNQpLZnFjRjg1cnVQSkZkZjJWb1hxRU81YXpHZ1VsS0xoZDg5NkZUR21tZEF0SUp\n" + " 5b0RtTldyVFgwS1VqQ05ELzM4Ck5UZDZrK3h6bW1NcTJCRy9VRy9NVGtlTUl1T3BEenZGQjBiR2N\n" + " RZnlGSC9iVnRjQzBOS2lnT0crMStPZ1dMMGUKQzZqcGRyYXU3THNKeXcrbU9VSjdHWHFTN2pKWnU\n" + " 2ZjBZcWxLbEZrUllBZi9VekVUL3lBU2VhQUV2a1BqMnF5Lwo4b1ZIQWdrVGFZSWUvSHF1UEN4RVc\n" + " 4bmgzWEp2emIxaWVlOHMrT2lZaE1wWVFIdFVTYTdESWR1eTgzZllTS2REClZzUnNNWExiMFlyZ1I\n" + " vamhxdVZhYzR3TXFvZ3JJTGRoK3lhcDdtUEhwdUVrOCtLcGROUldJNkZMS0srekpxcVYKZWh6ckN\n" + " Dc1QzL09URUd6bnpTSllXOXdQWkhlbEViMVhjQjIvbXJZSWlaZkZvUUI5K1ozNkYzS051UDR5cTd\n" + " GcQpacWV5L0NLRFN4OTl4ckJwaTlLVENJUTl6UE5QS0xiSk0xUWFSVlNMNEhIcmh6dFJQc2Jtbzl\n" + " OS01lVHliSkE5ClpvY0JZRno1d1Q1RWRuZEdRUG51eWhESHY4UHZrbStWQXJnRVpkdUdFL0tIT1N\n" + " 6amlOVFE0QUtzaWc2OThFWGYKb0xRc1JYaGhiWEJzWlNCVmMyVnlJQ2hKYm5aaGJHbGtLU0E4Wlh\n" + " oaGJYQnNaVUJsZUdGdGNHeGxMbU52YlQ2SQpnUVFURVFnQUtRVUNWbjhHdGdJYkF3VUpBREJDQ2d\n" + " jTENRZ0hBd0lCQmhVSUFna0tDd1FXQWdNQkFoNEJBaGVBCkFBb0pFSWJ1TXE0ZVZZTFY0L01BL2l\n" + " SUG41cUttdC9MK0doWVlIcCtlNmRiTHdxRFpCRkI3WGRlTTNZNlVScC8KQVFDZ21NSGM4d21YS0M\n" + " 0QTJUMURPTHdhMUNVVzFLWHBaWm9xWEEwLzFhcHBHcmtCalFSV2Z3YTJFQVlBbnZYZgp0OWg1QnY\n" + " yWTdvckp2UGQvTXNYTlZMc0E1UTh3TTc2TytrRjdWMktsNzBjZitJVDM5UUpWRGtKSk15NjFGUEQ\n" + " vClFoME5WNm05VjVsZ0E0U2psamo0SzIvc0ExUlhkRHVtaWFrWk1naUN4eXBveEhjM09uOEdXdi9\n" + " kZXl0WExpU2YKQnRrVHpiZEZmMDVHdGk1NXc1cnREQmxEM1o2YmR6U0ZtRS8rK2VFYXR4Uzh5NXJ\n" + " BNTM2WmpoSm5RQm43dm1aSQpwb3FUeTR0SEQ3aU5oWjN5eXFjZlpBd3BzSmNpZy9RdGVhZWNFUVg\n" + " vSVlvL01wQllMTkp1V1VSRVpqeERBQU1GCkJmOUxmVlZJakhBdWt3NzUxeHFsQmhaUTRCVVV5eHE\n" + " 4UTVicjZXVjJzeVppNnhWSW5OS2h3Q2NGYkZNVjV4TUIKczg3eGFzc1UrVzlaZktuODdScDRpa3J\n" + " xOEVvV3FPZTVMQW93SUF6bHYxVUlzMWRpOENHeStlU1lhYVMzVGd0Ywo2REhGS004Vk5KUU8wVWZ\n" + " kUXNwS2FuNUVLL1ZUNy9QQVJONGFKcFZxdjNtYkVFWkdJdDJHMStpUm15VW5LbFd4CkxoaUkyREs\n" + " 5Rm9CajhucXlJVG1KMTBVTmRib2lmeUtFNTFwU2VlYjN3Rm8yNGhNNlVkbEVwVitQVGJvU0dGZXA\n" + " KNGQrSVp3UVlFUWdBRHdVQ1ZuOEd0Z0liREFVSkFEQkNDZ0FLQ1JDRzdqS3VIbFdDMVlJT0FRQ0F\n" + " yWXRSZDBqSQpFYWNPbUxRWUNNUzNGVUNQRDc3dFlxd1VqM3NjSGVYWTdBRDhEKzAvMWdDdlZXelJ\n" + " uZ1dBSFZidXZxSkhmUEFpCm1HVFVHa1ZHOGNZdlBlUT0KPWtxclcKLS0tLS1FTkQgUEdQIFBVQkx\n" + " JQyBLRVkgQkxPQ0stLS0tLQo=\n" + "KEY;TYPE=home;ALTID=64;PID=61;PREF=62;KEYS=NONE:data:application/pgp-keys;bas\n" + " e64,LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tClZlcnNpb246IEdudVBHIHYy\n" + " CgptUU11QkZaL0tiWVJDQUNqTDdwMDZEVTJaQTZwdmJkZ1BVQU5hd1dwTGt3ZlFnZHdWdkVNcFQv\n" + " RnZuQjNGbDV4CnFFL2dMRFJDZlhLTVF4UEF1NWRBWUVpZVhxN01KN0ZtVXVYbDhJSjZiY3pKRUNm\n" + " WUF6RFJ0VmJlMm5ReXMyUDcKaXBFcnREK1dOZFM5MEVPbFVYb2lhOGR3NmpXczl5QUIvb3BubXBD\n" + " V21wQjI2UVBKNDlNWTBVNWZ1NzhwamJ2MAppMWxmUXIyaWp4QzRDWHZlOGxld05Uak1pOU5UNkt6\n" + " R1lwUXc1MHpXUng0Zk9teENselE5c3lQUWFuZ1htaTVECmk5MytNYXBaSlZpY3UyT3I1VkdqUlRX\n" + " YWovUDNqN1p2REdtNGNwaUhqMURsNTFVam5ZM09xOXE4VnczMkEvK2YKbW9SWWxiY3dtWU1LeVMz\n" + " MHJxSjVCOE0xcTdsenJ3TTBGQXczQVFEN3FnOE9pR2E1emR1UnlYdGlQMFFNSVZBOApDZUxuR25x\n" + " YUJQdytEYkhDUndmK05ZelJiNUxBUXZQTXpsNlkrUTczb3N4VXhMYzBHOUt5K2tNWVRNSFg5S2xz\n" + " CmV2UThoQkFEc3Y5WDhVeklBRXpLUUJVQ2tWT0JQT2xLMnJiaHdrRzZGendDdzJDemxmU0NXSzBx\n" + " aWhPbGFQVEsKL0c1SVJEQWg2SkFXTitjM1c5SHp1TUN1T1Vhb3didENhU2cxcFdocWNEY2hoWFZt\n" + " NGdPZ3F6cDNkWXdKU3FEQwpCWGV4KzRsWk84TzZSa3BPMVhmTHlkSWpxSlQrQUNMdkFjek8zbW90\n" + " c2J6OEZNWWZzVTQ2ZWsvd05DczZJdlFDCjJQcFFJbHFHU3NmZXFLUGpsUXVGbkRQNHEvNUNlVU5o\n" + " dmZrMm5VeTcwTzc4Z2hFdEViUU44MXNxWUpROHBTdTcKRExjVS8zQ1oyYXJ0RWxkVGJ5a0p1RTJ6\n" + " a3BVMjA1WTJvU0lDMkI1eXFnZjlIeWZOemYxU3lsRVV5d3ZzZ3F2LwpuNUNzbDdobDNML3BSQ1A0\n" + " dEF0NTA5TFFiejNDRk8vSGk3Umg1V3luOFVXZ1EzU0dYdThWQjNrUGhmRkFDNFZPCjJBUVdnMFlD\n" + " eEthSSs1dUljUWRGSDR6b0s0cWNidmxZN0xWNXozOWIza2JGWUgzVytEZjJkNkhJRzZaZUF2aXQK\n" + " ZXhZZWNlMGNpS0l6dklqVUJydUI0R3BRREhZbGN5QmpxcWtOVE5zTzU4aEsvQisvangxMGdLUVJT\n" + " a0lwc0VJVgpLa0dBRk5sVnlMTGthck1hYnRNWUlzZnBidWtoSjF3d09aTXJITGJwSGxQSFFzSDJJ\n" + " czNIdmlkQ2RBdUdRMWQyCjE2U3lEMGFUMHFIMnlkY1V2WFAyUnIwRnFzR3BLY2dWeThMOTcyQWpC\n" + " TmRTRWU0YXVQVGhWRXE5RWtScENSVGIKQUxRdlJYaGhiWEJzWlNCVmMyVnlJRElnS0VsdWRtRnNh\n" + " V1FwSUR4bGVHRnRjR3hsTWtCbGVHRnRjR3hsTG1OdgpiVDZJZ1FRVEVRZ0FLUVVDVm44cHRnSWJB\n" + " d1VKQUNnMkNnY0xDUWdIQXdJQkJoVUlBZ2tLQ3dRV0FnTUJBaDRCCkFoZUFBQW9KRUFBdVBvS2h3\n" + " WmFqVmFFQkFMN01saU5wLzR0cy9QWkQwdlRCcTYySjBUV0hvTjBDcHpqUXJKQUwKblNZeUFQMGJY\n" + " Y0Y4UHRFejNlUkJkazBkTlNFeU1EMkVWVGQ0K3hhZTRRNUx4Q3gxU0xrQmpRUldmeW0yRUFZQQp4\n" + " eWs4dUQ4MnZTZ2xORFA0UlQ3ZzExSjdnTXROV1g0SjBEbmdocVZVc0svY2xFQm4yenZYN080eElp\n" + " QnluVG9wCmRKeDZaeE5pdFBKVG0zZzI4alRLUElKeXlDVGVHLzJiaWtFc0hUYlFpMStpaXBkcEpj\n" + " Zm9EcTlJMVBMVk41Mm8KaFVMaUJhdXdwNHFIeTFyTys3ajhtbWVlL1M5ckpzM2NmQnZHR09acmpF\n" + " K3g4TTRMdjJDeGlEWnJzRUFkdHNPUgpnMHgxMFFqNjJwOExuTHg2TzQ4ZWh0cGZTV1JnRmZOdU9v\n" + " SEJVU3RwSW5pMHRrajJSQitGaUgwZWxkc1VyRndMCkFBTUdCZ0NPYzk5bjB3OWEvelRDL0VxSnRj\n" + " U2llRkNtckMvODYrcW12OEJ3aW5zdU1STUtVSG1UdFFkR1RRQkcKL0ZXa2pKYm9YMEhZckp0d1JB\n" + " aC9tM2N6UnNMZjZkT3QxL2hEUVF2ZGVIcVhuZ1JleitWNzAyY0pUVVdwVGg5RgpjYnZ3NFpjMk93\n" + " Yzhzam13L3dYc2NMK0ZNU09mT3l6eC8xWmxBUDVoSkQ5TTNnV1dEL0ZLSk0weUxSZDI5OW92Ckpo\n" + " NDZVVkIvaHdxelEyYnlEUzV2QXhXUlFsT0FHaEdXVzNOcjlQRE82N2dsSWRPM2o5VzN4bENUNjJ4\n" + " cmEvVmMKbDVDTU9qU0lad1FZRVFnQUR3VUNWbjhwdGdJYkRBVUpBQ2cyQ2dBS0NSQUFMajZDb2NH\n" + " V296aThBUUNqc09YbQpGdEFCcEU4b0EzVmtPT1o4b28wMFZTcUhKVFkxRzhpNXgvNmtZQUVBMC9k\n" + " R0JmRHVhMDBxL2Z1Z3dYTmlPREJXCjh2a2hlMEVIOWFlYzJQaUd3VTg9Cj1ZWmZuCi0tLS0tRU5E\n" + " IFBHUCBQVUJMSUMgS0VZIEJMT0NLLS0tLS0K\n" + "KEY;TYPE=work;ALTID=74;PID=71;PREF=72;KEYS=MISSING:data:application/pgp-keys;\n" + " base64,LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tClZlcnNpb246IEdudVBHI\n" + " HYyCgptUU11QkZaL0x3d1JDQUN0cVNJa3hYN2NBWkJHNFlIUmRldkRudndvM1V4dEQ0ZmxmaW1NQ\n" + " mdTemUwbHJTMHNjCmEyaDRmMzJ1eklpR2Q1S0plT0psV3AwSUFBOXNCUW5lQVpXVm9XUjZaOTlZZ\n" + " nNtUjhoSENZVERqTGpVRUFnMTYKYzNsbUpWbkRqTDF4bmhSR2RjUGJxS2VQOGVuZ0hQWE4wM0tuS\n" + " kVYcUNZSnFNc3NySFNlN3crMFNMeVJPQkJkeQprSE5Lb1B1bUdOUWIvakhLd0QzNFg1SEJMbUVkb\n" + " XczR1gzNXVwbm9pVnNqSGJzcHY3bVBQRVJxdlNGMUtlTmVHCkhnSllHdlZiNUJZenpMQ3dRRXU0V\n" + " FNVMFRLQytMeUZUUFpPZE9pVzU2RG5qbktrNk1Od2xCWTFDZXRzZFpwR2QKUXFWZmNYdFRnNG1SN\n" + " GZzVVJaQ0JXR0w3OFMrQ2tDUFh4NTRIQVFDbEhVbUFzK3hnV0ExbU11SzVva2FadDYzeQoyb09CS\n" + " XBseXZkcDhreCtVY3dmL2FWUGQ1dGZ2S3JPVTV0VVZDdlpMN0syVnlkNUNSckFTUG93VkwrWmxjY\n" + " XNDCloyaDEvRGJKQ1FYOVVPTU5LNXVVMUZYNFErLy83OWR3ZlZVOEZYZUpzM1NKeDhHQlB3Z0s4R\n" + " Stmait2MWVNSmMKTkhCMlV2eGtrU050akErUHB1dW5sYXhGYWpBRTU2ckt6N2U0NGI5NUNjVldkU\n" + " TAxbTByeGptSGhTUmtXeDlWNQp4cExsbUZ2Q1ZLMXFsMlV5eCtzZU9RQXJpMjBGcUUzbktQMU9BN\n" + " Wt2QTd3b2NpZ1JVakVVWk1XOEFxL1daV2xnCnk2YW9pVTFPSlp6Q2tkeStPcWVxL0djeWRIYmcwd\n" + " UZ0N3UvSTROTWFLVlZMREhWdStSWXZlcGlzNy93TVMvclMKQTVwVk56NURRMXR3cTlJTWV0NGNGR\n" + " nBjOFdIeTVnR0pUNEFRVk1UYU5RZ0FuR1JqKytBTEpObCtsc1AzaDBjbwpTa0xqOElWbjlkaXRFU\n" + " GMxRGVRbllUb092WStLSDA3a09MekJmbXcvdmRlTVdkZzd6VDZhQTRza2hBL2VHNWdDCm1sL25IQ\n" + " mM1TS9pV2htRE9FUzFXZTRVYWMzbVNWeG9iSS9oYzNlM3pVcTlkQ0F5OFc4eUxvUThxMVArTnlSc\n" + " FkKd250bUxuZ2RVek00VTFLbEdMTWx3aGF1V3liQlBHTnlqYy9KUWtvdkdVa1g5dHU0cGdzaVlOb\n" + " 2F1MjV5NUs3OQo0Z1MxQUtlQjgya3lteWlQaGQvdnZpK3VhRXIzdFQ5Z2x0WjRiaW1YR3ZQZG1xR\n" + " nV1MkVYTXhmQXJGL21NSzJoClN5Z1BIUG5jVW9kc3NNV0ZxZjEvNWo1MkwrTzlUK1RLVXhxQ2RHM\n" + " VFSOVZDU0NoUDY0c0NFaGpqeis5R1g1eHAKZGJRdlJYaGhiWEJzWlNCVmMyVnlJRE1nS0VsdWRtR\n" + " nNhV1FwSUR4bGVHRnRjR3hsTTBCbGVHRnRjR3hsTG1OdgpiVDZJZ1FRVEVRZ0FLUVVDVm44dkRBS\n" + " WJBd1VKQUFuZU5BY0xDUWdIQXdJQkJoVUlBZ2tLQ3dRV0FnTUJBaDRCCkFoZUFBQW9KRU1IakNSb\n" + " G51dzVEOVFrQS9qWGFUTjJSVEhKSytMWEs1dXJEVDBLTElBTUVWak1lT1dQWmlyVXkKcldnRkFQd\n" + " 09XSi80eDVBT3dvZFVPTnh6Rk5NRXJBV2o5N3Y1bm5ZaURJcm1jUjl1ZzdrQmpRUldmeThNRUFZQ\n" + " QorVFBWcit3VGk2U0RxN25pd3pNZUo2c05QMHlwaXVJaTB3c2pXRDVndnJROGZqVE41STdtL3hld\n" + " EhtcXdvbDdiCnhEL09iUE1GRm9Tdm1kRERlVlR5cnl0cDI3U05QNVgzUFlxTldKbW9XN09mUTBQR\n" + " lIvbmprdVNGdmN0NkZDNTMKVjhvU0JPcVVuRWlZckRGSU1zREdOQ25UZ1VUeG9GaFZ1MEVESFRhW\n" + " VFxV2tYMWxldTJFQTlZTjJub3FFVVh2bgpEOE92TXZaWGxQcTFzdDVmc2IyODB1RGJYMWRvWVpNK\n" + " 0pPRWo3bHp4bEtzUjJNZFlOallKci9RZUwwaEMxVlpmCkFBTUZCZjR0bWdvRmt4a0Y4N2Z4ejB4e\n" + " U9sYXhGclUzYnhVZXJiYTZPUGZJTjV3cXZmOEFsNGdwZXRRRitNQysKUnBlR01rYk5iaTRwV3MvV\n" + " 1BUbmhIN2R3UTI4a0c3VXFkSjdiMDdYUkpVbTJrenRuNGRucFJpTGJBU1Z0MFVlRApxeWpNY1hRa\n" + " 21KTTFjVlNDMWpzY0ROUTl1anNjMXBQUi9iK2xPa0F2ZGJtK0x3RHZNMmVJa25LWDZsdkZsa0RlC\n" + " ng1dU82ZXpKTktLZEdMSW53c2hpVHdzSjZoTS9OL3JjbGFZeWpsSlBwY216VFhuaks5SmN1SU9MV\n" + " HVsVXFwQUwKbHQyWXh1aUlad1FZRVFnQUR3VUNWbjh2REFJYkRBVUpBQW5lTkFBS0NSREI0d2taW\n" + " jdzT1E1Uk5BUUNUSHVjOQpjM1dORURZY1hhV2N6S3ZwN2R4aWJ1YS9FanNxRC85eHNUOHRZUUQrT\n" + " 2VqRndvRmVrbnpZa2RFMmdJb2ZuaDk0CjdKeUhaNDUyTERkamZXQ1BZWFU9Cj16T3NxCi0tLS0tR\n" + " U5EIFBHUCBQVUJMSUMgS0VZIEJMT0NLLS0tLS0K\n" "END:VCARD"; ASSERT_EQ(CONTACTLOAD_OK, TestFile3.LoadFile("LoadCheck-Load4.vcf")); -- 2.39.2