mirror of
https://git.friendi.ca/friendica/friendica-addons.git
synced 2025-07-07 08:58:49 +00:00
Initial Release of the calendar plugin
This commit is contained in:
parent
45cc9885fc
commit
7115197a33
561 changed files with 189494 additions and 0 deletions
325
dav/SabreDAV/tests/Sabre/CardDAV/AddressBookQueryParserTest.php
Normal file
325
dav/SabreDAV/tests/Sabre/CardDAV/AddressBookQueryParserTest.php
Normal file
|
@ -0,0 +1,325 @@
|
|||
<?php
|
||||
|
||||
class Sabre_CardDAV_AddressBookQueryParserTest extends PHPUnit_Framework_TestCase {
|
||||
|
||||
function parse($xml) {
|
||||
|
||||
$xml = implode("\n", $xml);
|
||||
$dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
|
||||
|
||||
$q = new Sabre_CardDAV_AddressBookQueryParser($dom);
|
||||
$q->parse();
|
||||
return $q;
|
||||
|
||||
}
|
||||
|
||||
function testFilterBasic() {
|
||||
|
||||
$xml = array(
|
||||
'<?xml version="1.0"?>',
|
||||
'<c:addressbook-query xmlns:c="urn:ietf:params:xml:ns:carddav" xmlns:d="DAV:">',
|
||||
' <d:prop>',
|
||||
' <d:foo />',
|
||||
' </d:prop>',
|
||||
' <c:filter>',
|
||||
' <c:prop-filter name="NICKNAME" />',
|
||||
' </c:filter>',
|
||||
'</c:addressbook-query>'
|
||||
);
|
||||
|
||||
$q = $this->parse($xml);
|
||||
|
||||
$this->assertEquals(
|
||||
array('{DAV:}foo'),
|
||||
$q->requestedProperties
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
array(
|
||||
array(
|
||||
'name' => 'NICKNAME',
|
||||
'test' => 'anyof',
|
||||
'is-not-defined' => false,
|
||||
'param-filters' => array(),
|
||||
'text-matches' => array(),
|
||||
),
|
||||
),
|
||||
$q->filters
|
||||
);
|
||||
|
||||
$this->assertNull($q->limit);
|
||||
$this->assertEquals('anyof', $q->test);
|
||||
|
||||
}
|
||||
|
||||
function testNoFilter() {
|
||||
|
||||
// This is non-standard, but helps working around a KDE bug
|
||||
$xml = array(
|
||||
'<?xml version="1.0"?>',
|
||||
'<c:addressbook-query xmlns:c="urn:ietf:params:xml:ns:carddav" xmlns:d="DAV:">',
|
||||
' <d:prop>',
|
||||
' <d:foo />',
|
||||
' </d:prop>',
|
||||
'</c:addressbook-query>'
|
||||
);
|
||||
|
||||
$q = $this->parse($xml);
|
||||
|
||||
$this->assertEquals(
|
||||
array('{DAV:}foo'),
|
||||
$q->requestedProperties
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
array(),
|
||||
$q->filters
|
||||
);
|
||||
|
||||
$this->assertNull($q->limit);
|
||||
$this->assertEquals('anyof', $q->test);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Sabre_DAV_Exception_BadRequest
|
||||
*/
|
||||
function testFilterDoubleFilter() {
|
||||
|
||||
$xml = array(
|
||||
'<?xml version="1.0"?>',
|
||||
'<c:addressbook-query xmlns:c="urn:ietf:params:xml:ns:carddav" xmlns:d="DAV:">',
|
||||
' <d:prop>',
|
||||
' <d:foo />',
|
||||
' </d:prop>',
|
||||
' <c:filter>',
|
||||
' <c:prop-filter name="NICKNAME" />',
|
||||
' </c:filter>',
|
||||
' <c:filter>',
|
||||
' <c:prop-filter name="NICKNAME" />',
|
||||
' </c:filter>',
|
||||
'</c:addressbook-query>'
|
||||
);
|
||||
|
||||
$q = $this->parse($xml);
|
||||
|
||||
}
|
||||
/**
|
||||
* @expectedException Sabre_DAV_Exception_BadRequest
|
||||
*/
|
||||
function testFilterCorruptTest() {
|
||||
|
||||
$xml = array(
|
||||
'<?xml version="1.0"?>',
|
||||
'<c:addressbook-query xmlns:c="urn:ietf:params:xml:ns:carddav" xmlns:d="DAV:">',
|
||||
' <d:prop>',
|
||||
' <d:foo />',
|
||||
' </d:prop>',
|
||||
' <c:filter test="foo">',
|
||||
' <c:prop-filter name="NICKNAME" />',
|
||||
' </c:filter>',
|
||||
'</c:addressbook-query>'
|
||||
);
|
||||
|
||||
$q = $this->parse($xml);
|
||||
|
||||
}
|
||||
|
||||
function testPropFilter() {
|
||||
|
||||
$xml = array(
|
||||
'<?xml version="1.0"?>',
|
||||
'<c:addressbook-query xmlns:c="urn:ietf:params:xml:ns:carddav" xmlns:d="DAV:">',
|
||||
' <d:prop>',
|
||||
' <d:foo />',
|
||||
' </d:prop>',
|
||||
' <c:filter test="allof">',
|
||||
' <c:prop-filter name="NICKNAME" />',
|
||||
' <c:prop-filter name="EMAIL" test="allof" />',
|
||||
' <c:prop-filter name="FN">',
|
||||
' <c:is-not-defined />',
|
||||
' </c:prop-filter>',
|
||||
' </c:filter>',
|
||||
' <c:limit><c:nresults>4</c:nresults></c:limit>',
|
||||
'</c:addressbook-query>'
|
||||
);
|
||||
|
||||
$q = $this->parse($xml);
|
||||
|
||||
$this->assertEquals(
|
||||
array(
|
||||
array(
|
||||
'name' => 'NICKNAME',
|
||||
'test' => 'anyof',
|
||||
'is-not-defined' => false,
|
||||
'param-filters' => array(),
|
||||
'text-matches' => array(),
|
||||
),
|
||||
array(
|
||||
'name' => 'EMAIL',
|
||||
'test' => 'allof',
|
||||
'is-not-defined' => false,
|
||||
'param-filters' => array(),
|
||||
'text-matches' => array(),
|
||||
),
|
||||
array(
|
||||
'name' => 'FN',
|
||||
'test' => 'anyof',
|
||||
'is-not-defined' => true,
|
||||
'param-filters' => array(),
|
||||
'text-matches' => array(),
|
||||
),
|
||||
),
|
||||
$q->filters
|
||||
);
|
||||
|
||||
$this->assertEquals(4,$q->limit);
|
||||
$this->assertEquals('allof', $q->test);
|
||||
|
||||
}
|
||||
|
||||
function testParamFilter() {
|
||||
|
||||
$xml = array(
|
||||
'<?xml version="1.0"?>',
|
||||
'<c:addressbook-query xmlns:c="urn:ietf:params:xml:ns:carddav" xmlns:d="DAV:">',
|
||||
' <d:prop>',
|
||||
' <d:foo />',
|
||||
' </d:prop>',
|
||||
' <c:filter>',
|
||||
' <c:prop-filter name="NICKNAME">',
|
||||
' <c:param-filter name="BLA" />',
|
||||
' <c:param-filter name="BLA2">',
|
||||
' <c:is-not-defined />',
|
||||
' </c:param-filter>',
|
||||
' </c:prop-filter>',
|
||||
' </c:filter>',
|
||||
'</c:addressbook-query>'
|
||||
);
|
||||
|
||||
$q = $this->parse($xml);
|
||||
|
||||
$this->assertEquals(
|
||||
array(
|
||||
array(
|
||||
'name' => 'NICKNAME',
|
||||
'test' => 'anyof',
|
||||
'is-not-defined' => false,
|
||||
'param-filters' => array(
|
||||
array(
|
||||
'name' => 'BLA',
|
||||
'is-not-defined' => false,
|
||||
'text-match' => null
|
||||
),
|
||||
array(
|
||||
'name' => 'BLA2',
|
||||
'is-not-defined' => true,
|
||||
'text-match' => null
|
||||
),
|
||||
),
|
||||
'text-matches' => array(),
|
||||
),
|
||||
),
|
||||
$q->filters
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
function testTextMatch() {
|
||||
|
||||
$xml = array(
|
||||
'<?xml version="1.0"?>',
|
||||
'<c:addressbook-query xmlns:c="urn:ietf:params:xml:ns:carddav" xmlns:d="DAV:">',
|
||||
' <d:prop>',
|
||||
' <d:foo />',
|
||||
' </d:prop>',
|
||||
' <c:filter>',
|
||||
' <c:prop-filter name="NICKNAME">',
|
||||
' <c:text-match>evert</c:text-match>',
|
||||
' <c:text-match collation="i;octet">evert</c:text-match>',
|
||||
' <c:text-match negate-condition="yes">rene</c:text-match>',
|
||||
' <c:text-match match-type="starts-with">e</c:text-match>',
|
||||
' <c:param-filter name="BLA">',
|
||||
' <c:text-match>foo</c:text-match>',
|
||||
' </c:param-filter>',
|
||||
' </c:prop-filter>',
|
||||
' </c:filter>',
|
||||
'</c:addressbook-query>'
|
||||
);
|
||||
|
||||
$q = $this->parse($xml);
|
||||
|
||||
$this->assertEquals(
|
||||
array(
|
||||
array(
|
||||
'name' => 'NICKNAME',
|
||||
'test' => 'anyof',
|
||||
'is-not-defined' => false,
|
||||
'param-filters' => array(
|
||||
array(
|
||||
'name' => 'BLA',
|
||||
'is-not-defined' => false,
|
||||
'text-match' => array(
|
||||
'negate-condition' => false,
|
||||
'collation' => 'i;unicode-casemap',
|
||||
'match-type' => 'contains',
|
||||
'value' => 'foo',
|
||||
),
|
||||
),
|
||||
),
|
||||
'text-matches' => array(
|
||||
array(
|
||||
'negate-condition' => false,
|
||||
'collation' => 'i;unicode-casemap',
|
||||
'match-type' => 'contains',
|
||||
'value' => 'evert',
|
||||
),
|
||||
array(
|
||||
'negate-condition' => false,
|
||||
'collation' => 'i;octet',
|
||||
'match-type' => 'contains',
|
||||
'value' => 'evert',
|
||||
),
|
||||
array(
|
||||
'negate-condition' => true,
|
||||
'collation' => 'i;unicode-casemap',
|
||||
'match-type' => 'contains',
|
||||
'value' => 'rene',
|
||||
),
|
||||
array(
|
||||
'negate-condition' => false,
|
||||
'collation' => 'i;unicode-casemap',
|
||||
'match-type' => 'starts-with',
|
||||
'value' => 'e',
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
$q->filters
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Sabre_DAV_Exception_BadRequest
|
||||
*/
|
||||
function testBadTextMatch() {
|
||||
|
||||
$xml = array(
|
||||
'<?xml version="1.0"?>',
|
||||
'<c:addressbook-query xmlns:c="urn:ietf:params:xml:ns:carddav" xmlns:d="DAV:">',
|
||||
' <d:prop>',
|
||||
' <d:foo />',
|
||||
' </d:prop>',
|
||||
' <c:filter>',
|
||||
' <c:prop-filter name="NICKNAME">',
|
||||
' <c:text-match match-type="foo">evert</c:text-match>',
|
||||
' </c:prop-filter>',
|
||||
' </c:filter>',
|
||||
'</c:addressbook-query>'
|
||||
);
|
||||
|
||||
$q = $this->parse($xml);
|
||||
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue