@ -78,13 +78,14 @@ class BirthdayServiceTest extends TestCase {
* @ dataProvider providesVCards
* @ param string $expectedSummary
* @ param string $expectedDTStart
* @ param string $expectedRrule
* @ param string $expectedFieldType
* @ param string $expectedUnknownYear
* @ param string $expectedOriginalYear
* @ param string | null $expectedReminder
* @ param string | null $data
*/
public function testBuildBirthdayFromContact ( $expectedSummary , $expectedDTStart , $expectedFieldType , $expectedUnknownYear , $expectedOriginalYear , $expectedReminder , $data , $fieldType , $prefix , $supports4Bytes , $configuredReminder ) : void {
public function testBuildBirthdayFromContact ( $expectedSummary , $expectedDTStart , $expectedRrule , $expected FieldType , $expectedUnknownYear , $expectedOriginalYear , $expectedReminder , $data , $fieldType , $prefix , $supports4Bytes , $configuredReminder ) : void {
$this -> dbConnection -> method ( 'supports4ByteText' ) -> willReturn ( $supports4Bytes );
$cal = $this -> service -> buildDateFromContact ( $data , $fieldType , $prefix , $configuredReminder );
@ -94,7 +95,7 @@ class BirthdayServiceTest extends TestCase {
$this -> assertInstanceOf ( 'Sabre\VObject\Component\VCalendar' , $cal );
$this -> assertEquals ( '-//IDN nextcloud.com//Birthday calendar//EN' , $cal -> PRODID -> getValue ());
$this -> assertTrue ( isset ( $cal -> VEVENT ));
$this -> assertEquals ( 'FREQ=YEARLY' , $cal -> VEVENT -> RRULE -> getValue ());
$this -> assertEquals ( $expectedRrule , $cal -> VEVENT -> RRULE -> getValue ());
$this -> assertEquals ( $expectedSummary , $cal -> VEVENT -> SUMMARY -> getValue ());
$this -> assertEquals ( $expectedDTStart , $cal -> VEVENT -> DTSTART -> getValue ());
$this -> assertEquals ( $expectedFieldType , $cal -> VEVENT -> { 'X-NEXTCLOUD-BC-FIELD-TYPE' } -> getValue ());
@ -410,35 +411,36 @@ class BirthdayServiceTest extends TestCase {
public function providesVCards () {
return [
// $expectedSummary, $expectedDTStart, $expectedFieldType, $expectedUnknownYear, $expectedOriginalYear, $expectedReminder, $data, $fieldType, $prefix, $supports4Byte, $configuredReminder
[ null , null , null , null , null , null , 'yasfewf' , '' , '' , true , null ],
[ null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY: \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:someday \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ '🎂 12345 (1900)' , '19700101' , 'BDAY' , '0' , '1900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:19000101 \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ '🎂 12345 (1900)' , '19701231' , 'BDAY' , '0' , '1900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:19001231 \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ 'Death of 12345 (1900)' , '19701231' , 'DEATHDATE' , '0' , '1900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n DEATHDATE:19001231 \r \n END:VCARD \r \n " , 'DEATHDATE' , '-death' , true , null ],
[ 'Death of 12345 (1900)' , '19701231' , 'DEATHDATE' , '0' , '1900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n DEATHDATE:19001231 \r \n END:VCARD \r \n " , 'DEATHDATE' , '-death' , false , null ],
[ '💍 12345 (1900)' , '19701231' , 'ANNIVERSARY' , '0' , '1900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n ANNIVERSARY:19001231 \r \n END:VCARD \r \n " , 'ANNIVERSARY' , '-anniversary' , true , null ],
[ '12345 (⚭1900)' , '19701231' , 'ANNIVERSARY' , '0' , '1900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n ANNIVERSARY:19001231 \r \n END:VCARD \r \n " , 'ANNIVERSARY' , '-anniversary' , false , null ],
[ '🎂 12345' , '19701231' , 'BDAY' , '1' , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:--1231 \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ '🎂 12345' , '19701231' , 'BDAY' , '1' , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY;X-APPLE-OMIT-YEAR=1604:16041231 \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:;VALUE=text:circa 1800 \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n N:12345;;;; \r \n BDAY:20031231 \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ '🎂 12345 (900)' , '19701231' , 'BDAY' , '0' , '900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:09001231 \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ '12345 (*1900)' , '19700101' , 'BDAY' , '0' , '1900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:19000101 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , null ],
[ '12345 (*1900)' , '19701231' , 'BDAY' , '0' , '1900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:19001231 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , null ],
[ '12345 *' , '19701231' , 'BDAY' , '1' , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:--1231 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , null ],
[ '12345 *' , '19701231' , 'BDAY' , '1' , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY;X-APPLE-OMIT-YEAR=1604:16041231 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , null ],
[ null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:;VALUE=text:circa 1800 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , null ],
[ null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n N:12345;;;; \r \n BDAY:20031231 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , null ],
[ '12345 (*900)' , '19701231' , 'BDAY' , '0' , '900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:09001231 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , null ],
[ '12345 (*1900)' , '19701231' , 'BDAY' , '0' , '1900' , 'PT9H' , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:19001231 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , 'PT9H' ],
[ '12345 (*1900)' , '19701231' , 'BDAY' , '0' , '1900' , '-PT15H' , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:19001231 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , '-PT15H' ],
[ '12345 (*1900)' , '19701231' , 'BDAY' , '0' , '1900' , '-P6DT15H' , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:19001231 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , '-P6DT15H' ],
[ null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:19000101 \r \n X-NC-EXCLUDE-FROM-BIRTHDAY-CALENDAR;TYPE=boolean:true \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n X-NC-EXCLUDE-FROM-BIRTHDAY-CALENDAR;TYPE=boolean:true \r \n DEATHDATE:19001231 \r \n END:VCARD \r \n " , 'DEATHDATE' , '-death' , true , null ],
[ null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n ANNIVERSARY:19001231 \r \n X-NC-EXCLUDE-FROM-BIRTHDAY-CALENDAR;TYPE=boolean:true \r \n END:VCARD \r \n " , 'ANNIVERSARY' , '-anniversary' , true , null ],
// $expectedSummary, $expectedDTStart, $expectedRrule, $expectedFieldType, $expectedUnknownYear, $expectedOriginalYear, $expectedReminder, $data, $fieldType, $prefix, $supports4Byte, $configuredReminder
[ null , null , null , null , null , null , null , 'yasfewf' , '' , '' , true , null ],
[ null , null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ null , null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY: \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ null , null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:someday \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ '🎂 12345 (1900)' , '19700101' , 'FREQ=YEARLY' , 'BDAY' , '0' , '1900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:19000101 \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ '🎂 12345 (1900)' , '19701231' , 'FREQ=YEARLY' , 'BDAY' , '0' , '1900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:19001231 \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ 'Death of 12345 (1900)' , '19701231' , 'FREQ=YEARLY' , 'DEATHDATE' , '0' , '1900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n DEATHDATE:19001231 \r \n END:VCARD \r \n " , 'DEATHDATE' , '-death' , true , null ],
[ 'Death of 12345 (1900)' , '19701231' , 'FREQ=YEARLY' , 'DEATHDATE' , '0' , '1900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n DEATHDATE:19001231 \r \n END:VCARD \r \n " , 'DEATHDATE' , '-death' , false , null ],
[ '💍 12345 (1900)' , '19701231' , 'FREQ=YEARLY' , 'ANNIVERSARY' , '0' , '1900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n ANNIVERSARY:19001231 \r \n END:VCARD \r \n " , 'ANNIVERSARY' , '-anniversary' , true , null ],
[ '12345 (⚭1900)' , '19701231' , 'FREQ=YEARLY' , 'ANNIVERSARY' , '0' , '1900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n ANNIVERSARY:19001231 \r \n END:VCARD \r \n " , 'ANNIVERSARY' , '-anniversary' , false , null ],
[ '🎂 12345' , '19701231' , 'FREQ=YEARLY' , 'BDAY' , '1' , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:--1231 \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ '🎂 12345' , '19701231' , 'FREQ=YEARLY' , 'BDAY' , '1' , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY;X-APPLE-OMIT-YEAR=1604:16041231 \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ null , null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:;VALUE=text:circa 1800 \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ null , null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n N:12345;;;; \r \n BDAY:20031231 \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ '🎂 12345 (900)' , '19701231' , 'FREQ=YEARLY' , 'BDAY' , '0' , '900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:09001231 \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ '12345 (*1900)' , '19700101' , 'FREQ=YEARLY' , 'BDAY' , '0' , '1900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:19000101 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , null ],
[ '12345 (*1900)' , '19701231' , 'FREQ=YEARLY' , 'BDAY' , '0' , '1900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:19001231 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , null ],
[ '12345 *' , '19701231' , 'FREQ=YEARLY' , 'BDAY' , '1' , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:--1231 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , null ],
[ '12345 *' , '19701231' , 'FREQ=YEARLY' , 'BDAY' , '1' , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY;X-APPLE-OMIT-YEAR=1604:16041231 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , null ],
[ null , null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:;VALUE=text:circa 1800 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , null ],
[ null , null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n N:12345;;;; \r \n BDAY:20031231 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , null ],
[ '12345 (*900)' , '19701231' , 'FREQ=YEARLY' , 'BDAY' , '0' , '900' , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:09001231 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , null ],
[ '12345 (*1900)' , '19701231' , 'FREQ=YEARLY' , 'BDAY' , '0' , '1900' , 'PT9H' , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:19001231 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , 'PT9H' ],
[ '12345 (*1900)' , '19701231' , 'FREQ=YEARLY' , 'BDAY' , '0' , '1900' , '-PT15H' , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:19001231 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , '-PT15H' ],
[ '12345 (*1900)' , '19701231' , 'FREQ=YEARLY' , 'BDAY' , '0' , '1900' , '-P6DT15H' , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:19001231 \r \n END:VCARD \r \n " , 'BDAY' , '' , false , '-P6DT15H' ],
[ null , null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:19000101 \r \n X-NC-EXCLUDE-FROM-BIRTHDAY-CALENDAR;TYPE=boolean:true \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
[ null , null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n X-NC-EXCLUDE-FROM-BIRTHDAY-CALENDAR;TYPE=boolean:true \r \n DEATHDATE:19001231 \r \n END:VCARD \r \n " , 'DEATHDATE' , '-death' , true , null ],
[ null , null , null , null , null , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n ANNIVERSARY:19001231 \r \n X-NC-EXCLUDE-FROM-BIRTHDAY-CALENDAR;TYPE=boolean:true \r \n END:VCARD \r \n " , 'ANNIVERSARY' , '-anniversary' , true , null ],
[ '🎂 12345 (1902)' , '19720229' , 'FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=-1' , 'BDAY' , '0' , null , null , " BEGIN:VCARD \r \n VERSION:3.0 \r \n PRODID:-//Sabre//Sabre VObject 4.1.1//EN \r \n UID:12345 \r \n FN:12345 \r \n N:12345;;;; \r \n BDAY:19020229 \r \n END:VCARD \r \n " , 'BDAY' , '' , true , null ],
];
}
}