]> git.mxchange.org Git - friendica-addons.git/blob - dav/SabreDAV/tests/Sabre/DAV/StringUtilTest.php
b87e79cd7c56a7ac66df5a256b5874370c1e8139
[friendica-addons.git] / dav / SabreDAV / tests / Sabre / DAV / StringUtilTest.php
1 <?php
2
3 class Sabre_DAV_StringUtilTest extends PHPUnit_Framework_TestCase {
4
5     /**
6      * @dataProvider dataset
7      */
8     function testTextMatch($haystack, $needle, $collation, $matchType, $result) {
9
10         $this->assertEquals($result, Sabre_DAV_StringUtil::textMatch($haystack, $needle, $collation, $matchType));
11
12     }
13
14     function dataset() {
15
16         return array(
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),
31
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),
46
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),
61         );
62
63     }
64
65     /**
66      * @expectedException Sabre_DAV_Exception_BadRequest
67      */
68     public function testBadCollation() {
69
70         Sabre_DAV_StringUtil::textMatch('foobar','foo','blabla','contains');
71
72     }
73
74
75     /**
76      * @expectedException Sabre_DAV_Exception_BadRequest
77      */
78     public function testBadMatchType() {
79
80         Sabre_DAV_StringUtil::textMatch('foobar','foo','i;octet','booh');
81
82     }
83
84     public function testEnsureUTF8_ascii() {
85
86         $inputString = "harkema";
87         $outputString = "harkema";
88
89         $this->assertEquals(
90             $outputString,
91             Sabre_DAV_StringUtil::ensureUTF8($inputString)
92         );
93
94     }
95
96     public function testEnsureUTF8_latin1() {
97
98         $inputString = "m\xfcnster";
99         $outputString = "münster";
100
101         $this->assertEquals(
102             $outputString,
103             Sabre_DAV_StringUtil::ensureUTF8($inputString)
104         );
105
106     }
107
108     public function testEnsureUTF8_utf8() {
109
110         $inputString = "m\xc3\xbcnster";
111         $outputString = "münster";
112
113         $this->assertEquals(
114             $outputString,
115             Sabre_DAV_StringUtil::ensureUTF8($inputString)
116         );
117
118     }
119
120 }