File size: 2,023 Bytes
d2897cd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php

namespace Mautic\ApiBundle\Tests\Helper;

use Mautic\ApiBundle\Helper\RequestHelper;
use PHPUnit\Framework\TestCase;
use Symfony\Component\HttpFoundation\HeaderBag;
use Symfony\Component\HttpFoundation\Request;

class RequestHelperTest extends TestCase
{
    /**
     * @var \PHPUnit\Framework\MockObject\MockObject|Request
     */
    private \PHPUnit\Framework\MockObject\MockObject $request;

    protected function setUp(): void
    {
        $this->request = $this->createMock(Request::class);
    }

    public function testIsBasicAuthWithValidBasicAuth(): void
    {
        $this->request->headers = new HeaderBag(['Authorization' => 'Basic dXNlcm5hbWU6cGFzc3dvcmQ=']);

        $this->assertTrue(RequestHelper::hasBasicAuth($this->request));
    }

    public function testIsBasicAuthWithInvalidBasicAuth(): void
    {
        $this->request->headers = new HeaderBag(['Authorization' => 'Invalid Basic Auth value']);

        $this->assertFalse(RequestHelper::hasBasicAuth($this->request));
    }

    public function testIsBasicAuthWithMissingBasicAuth(): void
    {
        $this->request->headers = new HeaderBag([]);

        $this->assertFalse(RequestHelper::hasBasicAuth($this->request));
    }

    public function testIsApiRequestWithOauthUrl(): void
    {
        $this->request->expects($this->once())
            ->method('getRequestUri')
            ->willReturn('/oauth/v2/token');

        $this->assertTrue(RequestHelper::isApiRequest($this->request));
    }

    public function testIsApiRequestWithApiUrl(): void
    {
        $this->request->expects($this->once())
            ->method('getRequestUri')
            ->willReturn('/api/contacts');

        $this->assertTrue(RequestHelper::isApiRequest($this->request));
    }

    public function testIsNotApiRequest(): void
    {
        $this->request->expects($this->once())
            ->method('getRequestUri')
            ->willReturn('/s/dashboard');

        $this->assertFalse(RequestHelper::isApiRequest($this->request));
    }
}