| 1 | unit TestCases;
|
|---|
| 2 |
|
|---|
| 3 | interface
|
|---|
| 4 |
|
|---|
| 5 | uses
|
|---|
| 6 | Classes, SysUtils, Test, TestCase;
|
|---|
| 7 |
|
|---|
| 8 | function InitTestCases: TTestCases;
|
|---|
| 9 |
|
|---|
| 10 |
|
|---|
| 11 | implementation
|
|---|
| 12 |
|
|---|
| 13 | uses
|
|---|
| 14 | VCard, Table;
|
|---|
| 15 |
|
|---|
| 16 | const
|
|---|
| 17 | VCardVersion = 'VERSION:2.1';
|
|---|
| 18 | UnixLineEnding = #10;
|
|---|
| 19 | MacLineEnding = #13;
|
|---|
| 20 |
|
|---|
| 21 | function BeginEnd(Text: string; WithVersion: Boolean = True): string;
|
|---|
| 22 | begin
|
|---|
| 23 | Result := VCardBegin + VCardLineEnding;
|
|---|
| 24 | if WithVersion then Result := Result + VCardVersion + VCardLineEnding;
|
|---|
| 25 | Result := Result + Text + VCardEnd + VCardLineEnding;
|
|---|
| 26 | end;
|
|---|
| 27 |
|
|---|
| 28 | function InitTestCases: TTestCases;
|
|---|
| 29 | begin
|
|---|
| 30 | Result := TTestCases.Create;
|
|---|
| 31 | with Result do begin
|
|---|
| 32 | with TTestCaseLoadSave(AddNew('Load and save', TTestCaseLoadSave)) do begin
|
|---|
| 33 | Input := BeginEnd(
|
|---|
| 34 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 35 | 'FN:Name Surname' + VCardLineEnding);
|
|---|
| 36 | Output := Input;
|
|---|
| 37 | end;
|
|---|
| 38 | with TTestCaseLoadSave(AddNew('Long text', TTestCaseLoadSave)) do begin
|
|---|
| 39 | Input := BeginEnd(
|
|---|
| 40 | 'NOTE:This is some long test which is really multi-lined each line is on dif' + VCardLineEnding +
|
|---|
| 41 | ' ferent line so it is on multiple lines.' + VCardLineEnding +
|
|---|
| 42 | VCardLineEnding);
|
|---|
| 43 | Output := Input;
|
|---|
| 44 | end;
|
|---|
| 45 | with TTestCaseLoadSave(AddNew('Multi-line', TTestCaseLoadSave)) do begin
|
|---|
| 46 | Input := BeginEnd(
|
|---|
| 47 | 'NOTE:First line\nsecond line\nempty line\n\nlast line' + VCardLineEnding);
|
|---|
| 48 | Output := Input;
|
|---|
| 49 | end;
|
|---|
| 50 | with TTestCaseLoadSave(AddNew('Quoted-printable load-save', TTestCaseLoadSave)) do begin
|
|---|
| 51 | Input := BeginEnd(
|
|---|
| 52 | 'FN;ENCODING=QUOTED-PRINTABLE:Jm=C3=A9no=20P=C5=99=C3=ADjmen=C3=AD' + VCardLineEnding);
|
|---|
| 53 | Output := Input;
|
|---|
| 54 | end;
|
|---|
| 55 | with TTestCaseLoadSave(AddNew('Quoted-printable load-save multi-line', TTestCaseLoadSave)) do begin
|
|---|
| 56 | Input := BeginEnd(
|
|---|
| 57 | 'FN;ENCODING=QUOTED-PRINTABLE:Jm=C3=A9no=20P=C5=99=C3=ADjmen=C3=ADJm=C3=A9n=' + VCardLineEnding +
|
|---|
| 58 | 'o=20P=C5=99=C3=ADjmen=C3=AD' + VCardLineEnding +
|
|---|
| 59 | VCardLineEnding);
|
|---|
| 60 | Output := Input;
|
|---|
| 61 | end;
|
|---|
| 62 | with TTestCaseLoadSave(AddNew('Base64 load-save (encoding=base64)', TTestCaseLoadSave)) do begin
|
|---|
| 63 | Input := BeginEnd(
|
|---|
| 64 | 'FN;ENCODING=BASE64:VGVzdCBzdHJpbmc=' + VCardLineEnding);
|
|---|
| 65 | Output := Input;
|
|---|
| 66 | end;
|
|---|
| 67 | with TTestCaseLoadSave(AddNew('Base64 load-save (base64)', TTestCaseLoadSave)) do begin
|
|---|
| 68 | Input := BeginEnd(
|
|---|
| 69 | 'FN;BASE64:VGVzdCBzdHJpbmc=' + VCardLineEnding);
|
|---|
| 70 | Output := Input;
|
|---|
| 71 | end;
|
|---|
| 72 | with TTestCaseLoadSave(AddNew('Base64 load-save (encoding=b)', TTestCaseLoadSave)) do begin
|
|---|
| 73 | Input := BeginEnd(
|
|---|
| 74 | 'FN;ENCODING=B:VGVzdCBzdHJpbmc=' + VCardLineEnding);
|
|---|
| 75 | Output := Input;
|
|---|
| 76 | end;
|
|---|
| 77 | with TTestCaseLoadSave(AddNew('Base64 load-save multi-line', TTestCaseLoadSave)) do begin
|
|---|
| 78 | Input := BeginEnd(
|
|---|
| 79 | 'FN;ENCODING=BASE64:U29tZSB2ZXJ5IGxvbmcgc3RyaW5nIFNvbWUgdmVyeSBsb25nIHN0cmlu' + VCardLineEnding +
|
|---|
| 80 | ' ZyBTb21lIHZlcnkgbG9uZyBzdHJpbmcgU29tZSB2ZXJ5IGxvbmcgc3RyaW5n' + VCardLineEnding +
|
|---|
| 81 | VCardLineEnding);
|
|---|
| 82 | Output := Input;
|
|---|
| 83 | end;
|
|---|
| 84 | //AddNew('Image format', TTestCaseLoadSave);
|
|---|
| 85 | with TTestCaseLoadSave(AddNew('Empty', TTestCaseLoadSave)) do begin
|
|---|
| 86 | Input := '';
|
|---|
| 87 | Output := '';
|
|---|
| 88 | end;
|
|---|
| 89 | with TTestCaseLoadSave(AddNew('Begin only', TTestCaseLoadSave)) do begin
|
|---|
| 90 | Input := VCardBegin;
|
|---|
| 91 | Output := '';
|
|---|
| 92 | end;
|
|---|
| 93 | with TTestCaseLoadSave(AddNew('Missing end', TTestCaseLoadSave)) do begin
|
|---|
| 94 | Input := VCardBegin + VCardLineEnding +
|
|---|
| 95 | VCardVersion + VCardLineEnding +
|
|---|
| 96 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 97 | 'FN:Name Surname' + VCardLineEnding;
|
|---|
| 98 | Output := '';
|
|---|
| 99 | end;
|
|---|
| 100 | with TTestCaseLoadSave(AddNew('Missing start', TTestCaseLoadSave)) do begin
|
|---|
| 101 | Input := VCardVersion + VCardLineEnding +
|
|---|
| 102 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 103 | 'FN:Name Surname' + VCardLineEnding +
|
|---|
| 104 | VCardEnd + VCardLineEnding;
|
|---|
| 105 | Output := '';
|
|---|
| 106 | end;
|
|---|
| 107 | with TTestCaseCheckProperty(AddNew('Property FN', TTestCaseCheckProperty)) do begin
|
|---|
| 108 | Index := cfFullName;
|
|---|
| 109 | Value := 'Name Surname';
|
|---|
| 110 | Input := BeginEnd('FN:' + Value + VCardLineEnding);
|
|---|
| 111 | end;
|
|---|
| 112 | with TTestCaseCheckProperty(AddNew('Escaped new lines in text', TTestCaseCheckProperty)) do begin
|
|---|
| 113 | Index := cfNote;
|
|---|
| 114 | Value := 'Line' + #13#10 + 'Line';
|
|---|
| 115 | Input := BeginEnd('NOTE:Line\nLine' + VCardLineEnding);
|
|---|
| 116 | end;
|
|---|
| 117 | with TTestCaseCheckProperty(AddNew('Compound value', TTestCaseCheckProperty)) do begin
|
|---|
| 118 | Index := cfFirstName;
|
|---|
| 119 | Value := 'FirstName';
|
|---|
| 120 | Input := BeginEnd('N:Surname;FirstName;;;' + VCardLineEnding);
|
|---|
| 121 | end;
|
|---|
| 122 | with TTestCaseCheckProperty(AddNew('Quoted-printable special symbols', TTestCaseCheckProperty)) do begin
|
|---|
| 123 | Index := cfFullName;
|
|---|
| 124 | Value := 'Jméno Příjmení';
|
|---|
| 125 | Input := BeginEnd(
|
|---|
| 126 | 'FN;ENCODING=QUOTED-PRINTABLE:Jm=C3=A9no=20P=C5=99=C3=ADjmen=C3=AD' + VCardLineEnding);
|
|---|
| 127 | end;
|
|---|
| 128 | with TTestCaseCheckProperty(AddNew('Base64 special symbols', TTestCaseCheckProperty)) do begin
|
|---|
| 129 | Index := cfFullName;
|
|---|
| 130 | Value := 'Jméno Příjmení';
|
|---|
| 131 | Input := BeginEnd('FN;ENCODING=BASE64:Sm3DqW5vIFDFmcOtam1lbsOt' + VCardLineEnding);
|
|---|
| 132 | end;
|
|---|
| 133 | with TTestCaseLoadSave(AddNew('Remove exact duplicates', TTestCaseLoadSave)) do begin
|
|---|
| 134 | Input := BeginEnd(
|
|---|
| 135 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 136 | 'FN:Name Surname' + VCardLineEnding) +
|
|---|
| 137 | BeginEnd(
|
|---|
| 138 | 'N:Surname2;Name2' + VCardLineEnding +
|
|---|
| 139 | 'FN:Name2 Surname2' + VCardLineEnding) +
|
|---|
| 140 | BeginEnd(
|
|---|
| 141 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 142 | 'FN:Name Surname' + VCardLineEnding) +
|
|---|
| 143 | BeginEnd(
|
|---|
| 144 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 145 | 'FN:Name Surname' + VCardLineEnding +
|
|---|
| 146 | 'NOTE:Note' + VCardLineEnding) +
|
|---|
| 147 | BeginEnd(
|
|---|
| 148 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 149 | 'FN:Name Surname' + VCardLineEnding);
|
|---|
| 150 | Action := akRemoveExactDuplicates;
|
|---|
| 151 | Output := BeginEnd(
|
|---|
| 152 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 153 | 'FN:Name Surname' + VCardLineEnding) +
|
|---|
| 154 | BeginEnd(
|
|---|
| 155 | 'N:Surname2;Name2' + VCardLineEnding +
|
|---|
| 156 | 'FN:Name2 Surname2' + VCardLineEnding) +
|
|---|
| 157 | BeginEnd(
|
|---|
| 158 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 159 | 'FN:Name Surname' + VCardLineEnding +
|
|---|
| 160 | 'NOTE:Note' + VCardLineEnding);
|
|---|
| 161 | end;
|
|---|
| 162 | with TTestCaseLoadSave(AddNew('Normalize Unix line endings', TTestCaseLoadSave)) do begin
|
|---|
| 163 | Input := VCardBegin + UnixLineEnding +
|
|---|
| 164 | VCardVersion + UnixLineEnding +
|
|---|
| 165 | 'N:Surname;Name' + UnixLineEnding +
|
|---|
| 166 | 'FN:Name Surname' + UnixLineEnding +
|
|---|
| 167 | VCardEnd + UnixLineEnding;
|
|---|
| 168 | Output := VCardBegin + VCardLineEnding +
|
|---|
| 169 | VCardVersion + VCardLineEnding +
|
|---|
| 170 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 171 | 'FN:Name Surname' + VCardLineEnding +
|
|---|
| 172 | VCardEnd + VCardLineEnding;
|
|---|
| 173 | end;
|
|---|
| 174 | with TTestCaseLoadSave(AddNew('Normalize Mac line endings', TTestCaseLoadSave)) do begin
|
|---|
| 175 | Input := VCardBegin + MacLineEnding +
|
|---|
| 176 | VCardVersion + MacLineEnding +
|
|---|
| 177 | 'N:Surname;Name' + MacLineEnding +
|
|---|
| 178 | 'FN:Name Surname' + MacLineEnding +
|
|---|
| 179 | VCardEnd + MacLineEnding;
|
|---|
| 180 | Output := VCardBegin + VCardLineEnding +
|
|---|
| 181 | VCardVersion + VCardLineEnding +
|
|---|
| 182 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 183 | 'FN:Name Surname' + VCardLineEnding +
|
|---|
| 184 | VCardEnd + VCardLineEnding;
|
|---|
| 185 | end;
|
|---|
| 186 |
|
|---|
| 187 | with TTestCaseVCardProcessor(AddNew('VCardProcessor - Remove exact duplicates', TTestCaseVCardProcessor)) do begin
|
|---|
| 188 | Processor.RemoveExactDuplicates := True;
|
|---|
| 189 | Input := BeginEnd(
|
|---|
| 190 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 191 | 'FN:Name Surname' + VCardLineEnding) +
|
|---|
| 192 | BeginEnd(
|
|---|
| 193 | 'N:Surname2;Name2' + VCardLineEnding +
|
|---|
| 194 | 'FN:Name2 Surname2' + VCardLineEnding) +
|
|---|
| 195 | BeginEnd(
|
|---|
| 196 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 197 | 'FN:Name Surname' + VCardLineEnding) +
|
|---|
| 198 | BeginEnd(
|
|---|
| 199 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 200 | 'FN:Name Surname' + VCardLineEnding +
|
|---|
| 201 | 'NOTE:Note' + VCardLineEnding) +
|
|---|
| 202 | BeginEnd(
|
|---|
| 203 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 204 | 'FN:Name Surname' + VCardLineEnding);
|
|---|
| 205 | Output := BeginEnd(
|
|---|
| 206 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 207 | 'FN:Name Surname' + VCardLineEnding) +
|
|---|
| 208 | BeginEnd(
|
|---|
| 209 | 'N:Surname2;Name2' + VCardLineEnding +
|
|---|
| 210 | 'FN:Name2 Surname2' + VCardLineEnding) +
|
|---|
| 211 | BeginEnd(
|
|---|
| 212 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 213 | 'FN:Name Surname' + VCardLineEnding +
|
|---|
| 214 | 'NOTE:Note' + VCardLineEnding);
|
|---|
| 215 | end;
|
|---|
| 216 | with TTestCaseVCardProcessor(AddNew('VCardProcessor - Remove phone spaces', TTestCaseVCardProcessor)) do begin
|
|---|
| 217 | Processor.RemovePhoneSpaces := True;
|
|---|
| 218 | Input := BeginEnd('TEL: 123 456 789 ' + VCardLineEnding) +
|
|---|
| 219 | BeginEnd('TEL;CELL:919 191 919' + VCardLineEnding);
|
|---|
| 220 | Output := BeginEnd('TEL:123456789' + VCardLineEnding) +
|
|---|
| 221 | BeginEnd('TEL;CELL:919191919' + VCardLineEnding);
|
|---|
| 222 | end;
|
|---|
| 223 | with TTestCaseVCardProcessor(AddNew('VCardProcessor - Remove photos', TTestCaseVCardProcessor)) do begin
|
|---|
| 224 | Processor.RemovePhotos := True;
|
|---|
| 225 | Input := BeginEnd('N:Surname;Name' + VCardLineEnding +
|
|---|
| 226 | 'FN:Name Surname' + VCardLineEnding +
|
|---|
| 227 | 'PHOTO:dadsa' + VCardLineEnding) +
|
|---|
| 228 | BeginEnd('N:Surname;Name' + VCardLineEnding +
|
|---|
| 229 | 'FN:Name Surname' + VCardLineEnding +
|
|---|
| 230 | 'PHOTO:dadsa' + VCardLineEnding +
|
|---|
| 231 | 'PHOTO:adsadadsa' + VCardLineEnding);
|
|---|
| 232 | Output := BeginEnd('N:Surname;Name' + VCardLineEnding +
|
|---|
| 233 | 'FN:Name Surname' + VCardLineEnding) +
|
|---|
| 234 | BeginEnd('N:Surname;Name' + VCardLineEnding +
|
|---|
| 235 | 'FN:Name Surname' + VCardLineEnding);
|
|---|
| 236 | end;
|
|---|
| 237 | with TTestCaseVCardProcessor(AddNew('VCardProcessor - Order', TTestCaseVCardProcessor)) do begin
|
|---|
| 238 | Processor.Order := True;
|
|---|
| 239 | Input := BeginEnd('N:Surname2;Name2' + VCardLineEnding +
|
|---|
| 240 | 'FN:Name2 Surname2' + VCardLineEnding) +
|
|---|
| 241 | BeginEnd('N:Surname1;Name1' + VCardLineEnding +
|
|---|
| 242 | 'FN:Name1 Surname1' + VCardLineEnding) +
|
|---|
| 243 | BeginEnd('N:Surname3;Name3' + VCardLineEnding +
|
|---|
| 244 | 'FN:Name3 Surname3' + VCardLineEnding);
|
|---|
| 245 | Output := BeginEnd('FN:Name1 Surname1' + VCardLineEnding +
|
|---|
| 246 | 'N:Surname1;Name1' + VCardLineEnding) +
|
|---|
| 247 | BeginEnd('FN:Name2 Surname2' + VCardLineEnding +
|
|---|
| 248 | 'N:Surname2;Name2'+ VCardLineEnding) +
|
|---|
| 249 | BeginEnd('FN:Name3 Surname3' + VCardLineEnding +
|
|---|
| 250 | 'N:Surname3;Name3' + VCardLineEnding);
|
|---|
| 251 | end;
|
|---|
| 252 | with TTestCaseVCardProcessor(AddNew('VCardProcessor - Add phone country code', TTestCaseVCardProcessor)) do begin
|
|---|
| 253 | Processor.AddDefaultPhoneCountryPrefix := True;
|
|---|
| 254 | Processor.DefaultPhoneCountryCode := '+470';
|
|---|
| 255 | Processor.NonPrefixedPhoneLength := 9;
|
|---|
| 256 | Input := BeginEnd('TEL: 123 456 789 ' + VCardLineEnding) +
|
|---|
| 257 | BeginEnd('TEL;CELL:919 191 919' + VCardLineEnding) +
|
|---|
| 258 | BeginEnd('TEL;CELL:+421 919 191 919' + VCardLineEnding) +
|
|---|
| 259 | BeginEnd('TEL;CELL:*#1234' + VCardLineEnding);
|
|---|
| 260 | Output := BeginEnd('TEL:+470 123 456 789 ' + VCardLineEnding) +
|
|---|
| 261 | BeginEnd('TEL;CELL:+470919 191 919' + VCardLineEnding) +
|
|---|
| 262 | BeginEnd('TEL;CELL:+421 919 191 919' + VCardLineEnding) +
|
|---|
| 263 | BeginEnd('TEL;CELL:*#1234' + VCardLineEnding);
|
|---|
| 264 | end;
|
|---|
| 265 | with TTestCaseVCardProcessor(AddNew('VCardProcessor - Convert international call prefix to country code', TTestCaseVCardProcessor)) do begin
|
|---|
| 266 | Processor.ConvertInternationalCallPrefixToCountryCode := True;
|
|---|
| 267 | Processor.DefaultInternationalCallPrefix := '00420';
|
|---|
| 268 | Processor.DefaultPhoneCountryCode := '+470';
|
|---|
| 269 | Input := BeginEnd('TEL:00420123456789' + VCardLineEnding) +
|
|---|
| 270 | BeginEnd('TEL;CELL:00420 919 191 919 ' + VCardLineEnding) +
|
|---|
| 271 | BeginEnd('TEL;CELL:00421919191919' + VCardLineEnding);
|
|---|
| 272 | Output := BeginEnd('TEL:+470123456789' + VCardLineEnding) +
|
|---|
| 273 | BeginEnd('TEL;CELL:+470 919 191 919 ' + VCardLineEnding) +
|
|---|
| 274 | BeginEnd('TEL;CELL:00421919191919' + VCardLineEnding);
|
|---|
| 275 | end;
|
|---|
| 276 |
|
|---|
| 277 | with TTestCaseVCardExportImport(AddNew('Export/Import CSV', TTestCaseVCardExportImport)) do begin
|
|---|
| 278 | Format := tfCsv;
|
|---|
| 279 | HumanReadableHeader := False;
|
|---|
| 280 | Input := BeginEnd(
|
|---|
| 281 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 282 | 'FN:Name Surname' + VCardLineEnding) +
|
|---|
| 283 | BeginEnd(
|
|---|
| 284 | 'N:Surname2;Name2' + VCardLineEnding +
|
|---|
| 285 | 'FN:Name2 Surname2' + VCardLineEnding);
|
|---|
| 286 | Output := Input;
|
|---|
| 287 | end;
|
|---|
| 288 | with TTestCaseVCardExportImport(AddNew('Export/Import CSV human header', TTestCaseVCardExportImport)) do begin
|
|---|
| 289 | Format := tfCsv;
|
|---|
| 290 | HumanReadableHeader := True;
|
|---|
| 291 | Input := BeginEnd(
|
|---|
| 292 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 293 | 'FN:Name Surname' + VCardLineEnding) +
|
|---|
| 294 | BeginEnd(
|
|---|
| 295 | 'N:Surname2;Name2' + VCardLineEnding +
|
|---|
| 296 | 'FN:Name2 Surname2' + VCardLineEnding);
|
|---|
| 297 | Output := Input;
|
|---|
| 298 | end;
|
|---|
| 299 | with TTestCaseVCardExportImport(AddNew('Export/Import MediaWiki', TTestCaseVCardExportImport)) do begin
|
|---|
| 300 | Format := tfMediaWiki;
|
|---|
| 301 | HumanReadableHeader := False;
|
|---|
| 302 | Input := BeginEnd(
|
|---|
| 303 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 304 | 'FN:Name Surname' + VCardLineEnding) +
|
|---|
| 305 | BeginEnd(
|
|---|
| 306 | 'N:Surname2;Name2' + VCardLineEnding +
|
|---|
| 307 | 'FN:Name2 Surname2' + VCardLineEnding);
|
|---|
| 308 | Output := Input;
|
|---|
| 309 | end;
|
|---|
| 310 | with TTestCaseVCardExportImport(AddNew('Export/Import XML', TTestCaseVCardExportImport)) do begin
|
|---|
| 311 | Format := tfXml;
|
|---|
| 312 | HumanReadableHeader := False;
|
|---|
| 313 | Input := BeginEnd(
|
|---|
| 314 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 315 | 'FN:Name Surname' + VCardLineEnding) +
|
|---|
| 316 | BeginEnd(
|
|---|
| 317 | 'N:Surname2;Name2' + VCardLineEnding +
|
|---|
| 318 | 'FN:Name2 Surname2' + VCardLineEnding);
|
|---|
| 319 | Output := Input;
|
|---|
| 320 | end;
|
|---|
| 321 | with TTestCaseVCardExportImport(AddNew('Export/Import JSON', TTestCaseVCardExportImport)) do begin
|
|---|
| 322 | Format := tfJSON;
|
|---|
| 323 | HumanReadableHeader := False;
|
|---|
| 324 | Input := BeginEnd(
|
|---|
| 325 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 326 | 'FN:Name Surname' + VCardLineEnding) +
|
|---|
| 327 | BeginEnd(
|
|---|
| 328 | 'N:Surname2;Name2' + VCardLineEnding +
|
|---|
| 329 | 'FN:Name2 Surname2' + VCardLineEnding);
|
|---|
| 330 | Output := Input;
|
|---|
| 331 | end;
|
|---|
| 332 |
|
|---|
| 333 | with TTestCaseLoadSave(AddNew('Merge same cell phone', TTestCaseLoadSave)) do begin
|
|---|
| 334 | Input := VCardBegin + MacLineEnding +
|
|---|
| 335 | VCardVersion + MacLineEnding +
|
|---|
| 336 | 'N:Surname;Name' + MacLineEnding +
|
|---|
| 337 | 'FN:Name Surname' + MacLineEnding +
|
|---|
| 338 | 'TEL;CELL:123456789' + MacLineEnding +
|
|---|
| 339 | VCardEnd + MacLineEnding +
|
|---|
| 340 |
|
|---|
| 341 | VCardBegin + MacLineEnding +
|
|---|
| 342 | VCardVersion + MacLineEnding +
|
|---|
| 343 | 'N:Surname2;Name' + MacLineEnding +
|
|---|
| 344 | 'FN:Name Surname2' + MacLineEnding +
|
|---|
| 345 | 'TEL;CELL:123456789' + MacLineEnding +
|
|---|
| 346 | VCardEnd + MacLineEnding;
|
|---|
| 347 | Output := VCardBegin + VCardLineEnding +
|
|---|
| 348 | VCardVersion + VCardLineEnding +
|
|---|
| 349 | 'N:Surname;Name' + VCardLineEnding +
|
|---|
| 350 | 'FN:Name Surname' + VCardLineEnding +
|
|---|
| 351 | 'TEL;CELL:123456789' + MacLineEnding +
|
|---|
| 352 | VCardEnd + VCardLineEnding;
|
|---|
| 353 | end;
|
|---|
| 354 | end;
|
|---|
| 355 | end;
|
|---|
| 356 |
|
|---|
| 357 | end.
|
|---|
| 358 |
|
|---|