xref: /plugin/davcal/vendor/sabre/http/tests/HTTP/FunctionsTest.php (revision a1a3b6794e0e143a4a8b51d3185ce2d339be61ab)
1*a1a3b679SAndreas Boehler<?php
2*a1a3b679SAndreas Boehler
3*a1a3b679SAndreas Boehlernamespace Sabre\HTTP;
4*a1a3b679SAndreas Boehler
5*a1a3b679SAndreas Boehlerclass FunctionsTest extends \PHPUnit_Framework_TestCase {
6*a1a3b679SAndreas Boehler
7*a1a3b679SAndreas Boehler    /**
8*a1a3b679SAndreas Boehler     * @dataProvider getHeaderValuesData
9*a1a3b679SAndreas Boehler     */
10*a1a3b679SAndreas Boehler    function testGetHeaderValues($input, $output) {
11*a1a3b679SAndreas Boehler
12*a1a3b679SAndreas Boehler        $this->assertEquals(
13*a1a3b679SAndreas Boehler            $output,
14*a1a3b679SAndreas Boehler            getHeaderValues($input)
15*a1a3b679SAndreas Boehler        );
16*a1a3b679SAndreas Boehler
17*a1a3b679SAndreas Boehler    }
18*a1a3b679SAndreas Boehler
19*a1a3b679SAndreas Boehler    function getHeaderValuesData() {
20*a1a3b679SAndreas Boehler
21*a1a3b679SAndreas Boehler        return [
22*a1a3b679SAndreas Boehler            [
23*a1a3b679SAndreas Boehler                "a",
24*a1a3b679SAndreas Boehler                ["a"]
25*a1a3b679SAndreas Boehler            ],
26*a1a3b679SAndreas Boehler            [
27*a1a3b679SAndreas Boehler                "a,b",
28*a1a3b679SAndreas Boehler                ["a", "b"]
29*a1a3b679SAndreas Boehler            ],
30*a1a3b679SAndreas Boehler            [
31*a1a3b679SAndreas Boehler                "a, b",
32*a1a3b679SAndreas Boehler                ["a", "b"]
33*a1a3b679SAndreas Boehler            ],
34*a1a3b679SAndreas Boehler            [
35*a1a3b679SAndreas Boehler                ["a, b"],
36*a1a3b679SAndreas Boehler                ["a", "b"]
37*a1a3b679SAndreas Boehler            ],
38*a1a3b679SAndreas Boehler            [
39*a1a3b679SAndreas Boehler                ["a, b", "c", "d,e"],
40*a1a3b679SAndreas Boehler                ["a", "b", "c", "d", "e"]
41*a1a3b679SAndreas Boehler            ],
42*a1a3b679SAndreas Boehler        ];
43*a1a3b679SAndreas Boehler
44*a1a3b679SAndreas Boehler    }
45*a1a3b679SAndreas Boehler
46*a1a3b679SAndreas Boehler    /**
47*a1a3b679SAndreas Boehler     * @dataProvider preferData
48*a1a3b679SAndreas Boehler     */
49*a1a3b679SAndreas Boehler    function testPrefer($input, $output) {
50*a1a3b679SAndreas Boehler
51*a1a3b679SAndreas Boehler        $this->assertEquals(
52*a1a3b679SAndreas Boehler            $output,
53*a1a3b679SAndreas Boehler            parsePrefer($input)
54*a1a3b679SAndreas Boehler        );
55*a1a3b679SAndreas Boehler
56*a1a3b679SAndreas Boehler    }
57*a1a3b679SAndreas Boehler
58*a1a3b679SAndreas Boehler    function preferData() {
59*a1a3b679SAndreas Boehler
60*a1a3b679SAndreas Boehler        return [
61*a1a3b679SAndreas Boehler            [
62*a1a3b679SAndreas Boehler                'foo; bar',
63*a1a3b679SAndreas Boehler                ['foo' => true]
64*a1a3b679SAndreas Boehler            ],
65*a1a3b679SAndreas Boehler            [
66*a1a3b679SAndreas Boehler                'foo; bar=""',
67*a1a3b679SAndreas Boehler                ['foo' => true]
68*a1a3b679SAndreas Boehler            ],
69*a1a3b679SAndreas Boehler            [
70*a1a3b679SAndreas Boehler                'foo=""; bar',
71*a1a3b679SAndreas Boehler                ['foo' => true]
72*a1a3b679SAndreas Boehler            ],
73*a1a3b679SAndreas Boehler            [
74*a1a3b679SAndreas Boehler                'FOO',
75*a1a3b679SAndreas Boehler                ['foo' => true]
76*a1a3b679SAndreas Boehler            ],
77*a1a3b679SAndreas Boehler            [
78*a1a3b679SAndreas Boehler                'respond-async',
79*a1a3b679SAndreas Boehler                ['respond-async' => true]
80*a1a3b679SAndreas Boehler            ],
81*a1a3b679SAndreas Boehler            [
82*a1a3b679SAndreas Boehler
83*a1a3b679SAndreas Boehler                ['respond-async, wait=100', 'handling=lenient'],
84*a1a3b679SAndreas Boehler                ['respond-async' => true, 'wait' => 100, 'handling' => 'lenient']
85*a1a3b679SAndreas Boehler            ],
86*a1a3b679SAndreas Boehler            [
87*a1a3b679SAndreas Boehler
88*a1a3b679SAndreas Boehler                ['respond-async, wait=100, handling=lenient'],
89*a1a3b679SAndreas Boehler                ['respond-async' => true, 'wait' => 100, 'handling' => 'lenient']
90*a1a3b679SAndreas Boehler            ],
91*a1a3b679SAndreas Boehler            // Old values
92*a1a3b679SAndreas Boehler            [
93*a1a3b679SAndreas Boehler
94*a1a3b679SAndreas Boehler                'return-asynch, return-representation',
95*a1a3b679SAndreas Boehler                ['respond-async' => true, 'return' => 'representation'],
96*a1a3b679SAndreas Boehler            ],
97*a1a3b679SAndreas Boehler            [
98*a1a3b679SAndreas Boehler
99*a1a3b679SAndreas Boehler                'return-minimal',
100*a1a3b679SAndreas Boehler                ['return' => 'minimal'],
101*a1a3b679SAndreas Boehler            ],
102*a1a3b679SAndreas Boehler            [
103*a1a3b679SAndreas Boehler
104*a1a3b679SAndreas Boehler                'strict',
105*a1a3b679SAndreas Boehler                ['handling' => 'strict'],
106*a1a3b679SAndreas Boehler            ],
107*a1a3b679SAndreas Boehler            [
108*a1a3b679SAndreas Boehler
109*a1a3b679SAndreas Boehler                'lenient',
110*a1a3b679SAndreas Boehler                ['handling' => 'lenient'],
111*a1a3b679SAndreas Boehler            ],
112*a1a3b679SAndreas Boehler            // Invalid token
113*a1a3b679SAndreas Boehler            [
114*a1a3b679SAndreas Boehler                ['foo=%bar%'],
115*a1a3b679SAndreas Boehler                [],
116*a1a3b679SAndreas Boehler            ]
117*a1a3b679SAndreas Boehler        ];
118*a1a3b679SAndreas Boehler
119*a1a3b679SAndreas Boehler    }
120*a1a3b679SAndreas Boehler
121*a1a3b679SAndreas Boehler}
122