Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F117880457
test.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
5 KB
Referenced Files
None
Subscribers
None
test.php
View Options
<?php
//run using "php -d enable_dl=On -d extension=./kolabformat.so test.php"
include
(
"kolabformat.php"
);
function
assertequal
(
$got
,
$expect
,
$name
)
{
if
(
$got
==
$expect
)
{
print
"OK - $name
\n
"
;
return
true
;
}
else
{
print
"FAIL - $name
\n
"
;
print
"-- Expected "
.
var_export
(
$expect
,
true
)
.
", got "
.
var_export
(
$got
,
true
)
.
" --
\n
"
;
return
false
;
}
}
function
assertcontains
(
$haystack
,
$needle
,
$name
)
{
// remove whitespace
$haystack
=
preg_replace
(
'/
\s
/ims'
,
''
,
$haystack
);
$needle
=
preg_replace
(
'/
\s
/ims'
,
''
,
$needle
);
return
assertequal
(
substr
(
strstr
(
$haystack
,
$needle
),
0
,
strlen
(
$needle
)),
$needle
,
$name
);
}
function
asserttrue
(
$arg
,
$name
)
{
return
assertequal
(
$arg
,
true
,
$name
);
}
function
assertfalse
(
$arg
,
$name
)
{
return
assertequal
(
$arg
,
false
,
$name
);
}
function
array2vector
(
$arr
)
{
$vec
=
new
vectors
;
foreach
((
array
)
$arr
as
$val
)
$vec
->
push
(
$val
);
return
$vec
;
}
/////// Test Event
$e
=
new
Event
();
$e
->
setCreated
(
new
cDateTime
(
2012
,
3
,
14
,
9
,
5
,
30
));
$e
->
setStart
(
new
cDateTime
(
2012
,
7
,
31
));
$d
=
new
cDateTime
(
2009
,
10
,
12
);
assertequal
(
$e
->
exceptionDates
()->
size
(),
0
,
"Event::exceptionDates()"
);
$e
->
addExceptionDate
(
$d
);
assertequal
(
$e
->
exceptionDates
()->
size
(),
1
,
"Event::addExceptionDate()"
);
$r
=
new
RecurrenceRule
();
$r
->
setFrequency
(
RecurrenceRule
::
Minutely
);
$bysec
=
new
vectori
();
$bysec
->
push
(
1
);
$bysec
->
push
(
3
);
$r
->
setBySecond
(
$bysec
);
$e
->
setRecurrenceRule
(
$r
);
$xml
=
kolabformat
::
writeEvent
(
$e
);
#print $xml;
assertcontains
(
$xml
,
'<dtstart><date>2012-07-31</date></dtstart>'
,
"Event::setStart() with date only"
);
assertcontains
(
$xml
,
'<created><date-time>2012-03-14T09:05:30Z</date-time></created>'
,
"Event::setCreated() with date-time"
);
assertcontains
(
$xml
,
'<rrule><recur><freq>MINUTELY</freq>'
,
"RecurrenceRule::setFrequency()"
);
assertcontains
(
$xml
,
'<rrule><recur><freq>MINUTELY</freq><bysecond>1</bysecond><bysecond>3</bysecond></recur></rrule>'
,
"RecurrenceRule::setBySecond()"
);
assertcontains
(
$xml
,
'<exdate><date>2009-10-12</date></exdate>'
,
"Event Recurrence Exceptions"
);
$e1
=
kolabformat
::
readEvent
(
$xml
,
false
);
assertequal
(
$xml
,
kolabformat
::
writeEvent
(
$e1
),
"kolabformat::readEvent() => kolabformat::writeEvent()"
);
$s
=
$e1
->
start
();
assertequal
(
sprintf
(
'%d-%d-%d'
,
$s
->
year
(),
$s
->
month
(),
$s
->
day
()),
'2012-7-31'
,
"Event::start()"
);
$r
=
$e1
->
recurrenceRule
();
assertequal
(
$r
->
frequency
(),
RecurrenceRule
::
Minutely
,
"RecurrenceRule::frequency()"
);
assertequal
(
$r
->
bysecond
()->
size
(),
2
,
"RecurrenceRule::bysecond()"
);
assertequal
(
$e1
->
exceptionDates
()->
size
(),
1
,
"Read Event::exceptionDates()"
);
/////// Test Contact
$c
=
new
Contact
;
$c
->
setName
(
"Contact-FN"
);
$nc
=
new
NameComponents
;
$nc
->
setSurnames
(
array2vector
(
"Surname"
));
$nc
->
setGiven
(
array2vector
(
"Given"
));
$nc
->
setAdditional
(
array2vector
(
array
(
"Middle1"
,
"Middle2"
)));
$nc
->
setPrefixes
(
array2vector
(
"Prefix"
));
#$nc->setSuffixes(new vectors);
assertcontains
(
$nc
->
surnames
()->
size
(),
1
,
"NameComponents::setSurnames()"
);
assertcontains
(
$nc
->
given
()->
size
(),
1
,
"NameComponents::setGiven()"
);
assertcontains
(
$nc
->
additional
()->
size
(),
2
,
"NameComponents::setAdditional()"
);
assertcontains
(
$nc
->
prefixes
()->
size
(),
1
,
"NameComponents::setPrefixes()"
);
assertcontains
(
$nc
->
suffixes
()->
size
(),
0
,
"NameComponents::suffixes()"
);
$c
->
setNameComponents
(
$nc
);
$pic
=
"R0lGODlhEgASAIAAAMDAwAAAACH5BAEAAAAALAAAAAASABIAQAIPhI+py+0Po5y02ouz3pwXADs="
;
$c
->
setPhoto
(
base64_decode
(
$pic
),
'image/gif'
);
$c
->
setGPSpos
(
array2vector
(
"geo:46.952585,7.43766"
));
$bd
=
new
cDateTime
(
1980
,
8
,
1
);
$c
->
setBDay
(
$bd
);
$vcs
=
new
vectorcs
;
$vcs
->
push
(
new
CustomProperty
(
"initials"
,
"KF"
));
$c
->
setCustomProperties
(
$vcs
);
$xml
=
kolabformat
::
writeContact
(
$c
);
#print $xml;
assertcontains
(
$xml
,
"<uid><uri>urn:uuid:"
,
"Generate Contact UID as urn::uuid"
);
assertcontains
(
$xml
,
"<n><surname>Surname</surname><given>Given</given><additional>Middle1</additional><additional>Middle2</additional><prefix>Prefix</prefix></n>"
,
"Contact::setNameComponents()"
);
assertcontains
(
$xml
,
"<photo><uri>data:image/gif;base64,$pic</uri></photo>"
,
"Contact::setPhoto()"
);
assertcontains
(
$xml
,
"<bday><date>19800801</date></bday>"
,
"Contact::setBDay()"
);
assertcontains
(
$xml
,
"<geo><uri>geo:46.952585,7.43766</uri></geo>"
,
"Contact::setGPSpos()"
);
$c1
=
kolabformat
::
readContact
(
$xml
,
false
);
assertequal
(
$xml
,
kolabformat
::
writeContact
(
$c1
),
"kolabformat::readContact() => kolabformat::writeContact()"
);
assertequal
(
$c1
->
photoMimetype
(),
"image/gif"
,
"Contact::photoMimetype()"
);
assertequal
(
$c1
->
uid
(),
kolabformat
::
getSerializedUID
(),
"kolabformat::getSerializedUID()"
);
$c1
->
setBDay
(
new
cDateTime
);
$xml
=
kolabformat
::
writeContact
(
$c
);
assertfalse
(
strpos
(
$xml
,
'<bday><date>'
),
"Unset BDay with empty cDateTime"
);
/////// Test DistList
$dl
=
new
DistList
;
$dl
->
setName
(
"DalistÄÖŸ"
);
$m
=
new
vectormember
;
$a
=
new
Member
;
$a
->
setName
(
"Member-A"
);
$a
->
setEmail
(
"a@localhost"
);
$a
->
setUid
(
"x-mem-a"
);
$m
->
push
(
$a
);
$b
=
new
Member
;
$b
->
setName
(
"Member-B"
);
$b
->
setEmail
(
"b@localhost"
);
$b
->
setUid
(
"x-mem-b"
);
$m
->
push
(
$b
);
assertequal
(
$m
->
size
(),
2
,
"vectormember::size()"
);
$dl
->
setMembers
(
$m
);
$xml
=
kolabformat
::
writeDistlist
(
$dl
);
#print $xml;
assertcontains
(
$xml
,
'<fn><text>DalistÄÖŸ</text></fn>'
,
"kolabformat::writeDistlist(): FN (UTF-8)"
);
assertcontains
(
$xml
,
'<uri>mailto:Member%2DB%3Cb%40localhost%3E</uri>'
,
"kolabformat::writeDistlist(): mailto uri"
);
assertcontains
(
$xml
,
'<member><parameters><x-uid><uri>x-mem-b</uri></x-uid></parameters>'
,
"kolabformat::writeDistlist(): member x-uid"
);
?>
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sun, Apr 5, 11:22 PM (1 w, 5 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18823748
Default Alt Text
test.php (5 KB)
Attached To
Mode
rLKX libkolabxml
Attached
Detach File
Event Timeline