| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?php
- namespace Illuminate\Tests\Integration\Http\Middleware;
- use Illuminate\Encryption\Encrypter;
- use Illuminate\Http\Request;
- use Orchestra\Testbench\TestCase;
- class VerifyCsrfTokenExceptTest extends TestCase
- {
- private $stub;
- private $request;
- protected function setUp(): void
- {
- parent::setUp();
- $this->stub = new VerifyCsrfTokenExceptStub(app(), new Encrypter(Encrypter::generateKey('AES-128-CBC')));
- $this->request = Request::create('http://example.com/foo/bar', 'POST');
- }
- public function testItCanExceptPaths()
- {
- $this->assertMatchingExcept(['/foo/bar']);
- $this->assertMatchingExcept(['foo/bar']);
- $this->assertNonMatchingExcept(['/bar/foo']);
- }
- public function testItCanExceptWildcardPaths()
- {
- $this->assertMatchingExcept(['/foo/*']);
- $this->assertNonMatchingExcept(['/bar*']);
- }
- public function testItCanExceptFullUrlPaths()
- {
- $this->assertMatchingExcept(['http://example.com/foo/bar']);
- $this->assertMatchingExcept(['http://example.com/foo/bar/']);
- $this->assertNonMatchingExcept(['https://example.com/foo/bar/']);
- $this->assertNonMatchingExcept(['http://foobar.com/']);
- }
- public function testItCanExceptFullUrlWildcardPaths()
- {
- $this->assertMatchingExcept(['http://example.com/*']);
- $this->assertMatchingExcept(['*example.com*']);
- $this->request = Request::create('https://example.com', 'POST');
- $this->assertMatchingExcept(['*example.com']);
- }
- private function assertMatchingExcept(array $except, $bool = true)
- {
- $this->assertSame($bool, $this->stub->setExcept($except)->checkInExceptArray($this->request));
- }
- private function assertNonMatchingExcept(array $except)
- {
- return $this->assertMatchingExcept($except, false);
- }
- }
|