3 class Sabre_DAV_StringUtilTest extends PHPUnit_Framework_TestCase {
6 * @dataProvider dataset
8 function testTextMatch($haystack, $needle, $collation, $matchType, $result) {
10 $this->assertEquals($result, Sabre_DAV_StringUtil::textMatch($haystack, $needle, $collation, $matchType));
17 array('FOOBAR', 'FOO', 'i;octet', 'contains', true),
18 array('FOOBAR', 'foo', 'i;octet', 'contains', false),
19 array('FÖÖBAR', 'FÖÖ', 'i;octet', 'contains', true),
20 array('FÖÖBAR', 'föö', 'i;octet', 'contains', false),
21 array('FOOBAR', 'FOOBAR', 'i;octet', 'equals', true),
22 array('FOOBAR', 'fooBAR', 'i;octet', 'equals', false),
23 array('FOOBAR', 'FOO', 'i;octet', 'starts-with', true),
24 array('FOOBAR', 'foo', 'i;octet', 'starts-with', false),
25 array('FOOBAR', 'BAR', 'i;octet', 'starts-with', false),
26 array('FOOBAR', 'bar', 'i;octet', 'starts-with', false),
27 array('FOOBAR', 'FOO', 'i;octet', 'ends-with', false),
28 array('FOOBAR', 'foo', 'i;octet', 'ends-with', false),
29 array('FOOBAR', 'BAR', 'i;octet', 'ends-with', true),
30 array('FOOBAR', 'bar', 'i;octet', 'ends-with', false),
32 array('FOOBAR', 'FOO', 'i;ascii-casemap', 'contains', true),
33 array('FOOBAR', 'foo', 'i;ascii-casemap', 'contains', true),
34 array('FÖÖBAR', 'FÖÖ', 'i;ascii-casemap', 'contains', true),
35 array('FÖÖBAR', 'föö', 'i;ascii-casemap', 'contains', false),
36 array('FOOBAR', 'FOOBAR', 'i;ascii-casemap', 'equals', true),
37 array('FOOBAR', 'fooBAR', 'i;ascii-casemap', 'equals', true),
38 array('FOOBAR', 'FOO', 'i;ascii-casemap', 'starts-with', true),
39 array('FOOBAR', 'foo', 'i;ascii-casemap', 'starts-with', true),
40 array('FOOBAR', 'BAR', 'i;ascii-casemap', 'starts-with', false),
41 array('FOOBAR', 'bar', 'i;ascii-casemap', 'starts-with', false),
42 array('FOOBAR', 'FOO', 'i;ascii-casemap', 'ends-with', false),
43 array('FOOBAR', 'foo', 'i;ascii-casemap', 'ends-with', false),
44 array('FOOBAR', 'BAR', 'i;ascii-casemap', 'ends-with', true),
45 array('FOOBAR', 'bar', 'i;ascii-casemap', 'ends-with', true),
47 array('FOOBAR', 'FOO', 'i;unicode-casemap', 'contains', true),
48 array('FOOBAR', 'foo', 'i;unicode-casemap', 'contains', true),
49 array('FÖÖBAR', 'FÖÖ', 'i;unicode-casemap', 'contains', true),
50 array('FÖÖBAR', 'föö', 'i;unicode-casemap', 'contains', true),
51 array('FOOBAR', 'FOOBAR', 'i;unicode-casemap', 'equals', true),
52 array('FOOBAR', 'fooBAR', 'i;unicode-casemap', 'equals', true),
53 array('FOOBAR', 'FOO', 'i;unicode-casemap', 'starts-with', true),
54 array('FOOBAR', 'foo', 'i;unicode-casemap', 'starts-with', true),
55 array('FOOBAR', 'BAR', 'i;unicode-casemap', 'starts-with', false),
56 array('FOOBAR', 'bar', 'i;unicode-casemap', 'starts-with', false),
57 array('FOOBAR', 'FOO', 'i;unicode-casemap', 'ends-with', false),
58 array('FOOBAR', 'foo', 'i;unicode-casemap', 'ends-with', false),
59 array('FOOBAR', 'BAR', 'i;unicode-casemap', 'ends-with', true),
60 array('FOOBAR', 'bar', 'i;unicode-casemap', 'ends-with', true),
66 * @expectedException Sabre_DAV_Exception_BadRequest
68 public function testBadCollation() {
70 Sabre_DAV_StringUtil::textMatch('foobar','foo','blabla','contains');
76 * @expectedException Sabre_DAV_Exception_BadRequest
78 public function testBadMatchType() {
80 Sabre_DAV_StringUtil::textMatch('foobar','foo','i;octet','booh');
84 public function testEnsureUTF8_ascii() {
86 $inputString = "harkema";
87 $outputString = "harkema";
91 Sabre_DAV_StringUtil::ensureUTF8($inputString)
96 public function testEnsureUTF8_latin1() {
98 $inputString = "m\xfcnster";
99 $outputString = "münster";
103 Sabre_DAV_StringUtil::ensureUTF8($inputString)
108 public function testEnsureUTF8_utf8() {
110 $inputString = "m\xc3\xbcnster";
111 $outputString = "münster";
115 Sabre_DAV_StringUtil::ensureUTF8($inputString)