Skip to content

Commit 9f310cb

Browse files
authored
Merge pull request #418 from FriendsOfSymfony/test-matcher
add test for anonymous request matcher
2 parents 6c2c567 + 9606059 commit 9f310cb

File tree

1 file changed

+89
-0
lines changed

1 file changed

+89
-0
lines changed
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the FOSHttpCache package.
5+
*
6+
* (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespace FOS\HttpCache\Tests\Unit\UserContext;
13+
14+
use FOS\HttpCache\UserContext\AnonymousRequestMatcher;
15+
use Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration;
16+
use PHPUnit\Framework\TestCase;
17+
use Symfony\Component\HttpFoundation\Request;
18+
19+
class AnonymousRequestMatcherTest extends TestCase
20+
{
21+
use MockeryPHPUnitIntegration;
22+
23+
public function testMatchAnonymousRequest()
24+
{
25+
$request = new Request();
26+
27+
$requestMatcher = new AnonymousRequestMatcher([
28+
'user_identifier_headers' => ['Cookie', 'Authorization'],
29+
'session_name_prefix' => false,
30+
]);
31+
32+
$this->assertTrue($requestMatcher->matches($request));
33+
}
34+
35+
public function testNoMatchIfCookie()
36+
{
37+
$request = new Request();
38+
$request->headers->set('Cookie', 'foo=bar');
39+
$request->cookies->set('foo', 'bar');
40+
41+
$requestMatcher = new AnonymousRequestMatcher([
42+
'user_identifier_headers' => ['Cookie', 'Authorization'],
43+
'session_name_prefix' => false,
44+
]);
45+
46+
$this->assertFalse($requestMatcher->matches($request));
47+
}
48+
49+
public function testNoMatchIfSession()
50+
{
51+
$request = new Request();
52+
$request->headers->set('Cookie', 'PHPSESSID7e476fc9f29f69d2ad6f11dbcd663b42=25f6d9c5a843e3c948cd26902385a527');
53+
$request->cookies->set('PHPSESSID7e476fc9f29f69d2ad6f11dbcd663b42', '25f6d9c5a843e3c948cd26902385a527');
54+
55+
$requestMatcher = new AnonymousRequestMatcher([
56+
'user_identifier_headers' => ['Authorization'],
57+
'session_name_prefix' => 'PHPSESSID',
58+
]);
59+
60+
$this->assertFalse($requestMatcher->matches($request));
61+
}
62+
63+
public function testMatchIfNoSessionCookie()
64+
{
65+
$request = new Request();
66+
$request->headers->set('Cookie', 'foo=bar');
67+
$request->cookies->set('foo', 'bar');
68+
69+
$requestMatcher = new AnonymousRequestMatcher([
70+
'user_identifier_headers' => ['Authorization'],
71+
'session_name_prefix' => 'PHPSESSID',
72+
]);
73+
74+
$this->assertTrue($requestMatcher->matches($request));
75+
}
76+
77+
public function testNoMatchIfAuthenticationHeader()
78+
{
79+
$request = new Request();
80+
$request->headers->set('Authorization', 'foo: bar');
81+
82+
$requestMatcher = new AnonymousRequestMatcher([
83+
'user_identifier_headers' => ['Cookie', 'Authorization'],
84+
'session_name_prefix' => false,
85+
]);
86+
87+
$this->assertFalse($requestMatcher->matches($request));
88+
}
89+
}

0 commit comments

Comments
 (0)