• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

api-platform / core / 13830112524

13 Mar 2025 08:24AM UTC coverage: 23.51% (+15.0%) from 8.519%
13830112524

push

github

web-flow
feat(httpcache): add more cache directives to AddHeadersProcessor (#7008)

16 of 46 new or added lines in 2 files covered. (34.78%)

1 existing line in 1 file now uncovered.

11387 of 48434 relevant lines covered (23.51%)

54.74 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/HttpCache/Tests/State/AddHeadersProcessorTest.php
1
<?php
2

3
/*
4
 * This file is part of the API Platform project.
5
 *
6
 * (c) Kévin Dunglas <dunglas@gmail.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
declare(strict_types=1);
13

14
namespace ApiPlatform\HttpCache\Tests\State;
15

16
use ApiPlatform\HttpCache\State\AddHeadersProcessor;
17
use ApiPlatform\Metadata\Get;
18
use ApiPlatform\State\ProcessorInterface;
19
use PHPUnit\Framework\TestCase;
20
use Symfony\Component\HttpFoundation\Request;
21
use Symfony\Component\HttpFoundation\Response;
22

23
class AddHeadersProcessorTest extends TestCase
24
{
25
    public function testAddHeadersFromGlobalConfiguration(): void
26
    {
27
        $operation = new Get();
×
NEW
28
        $response = new Response('content');
×
NEW
29
        $request = new Request();
×
30
        $context = ['request' => $request];
×
31
        $decorated = $this->createMock(ProcessorInterface::class);
×
32
        $decorated->method('process')->willReturn($response);
×
33
        $processor = new AddHeadersProcessor($decorated, etag: true, maxAge: 100, sharedMaxAge: 200, vary: ['Accept', 'Accept-Encoding'], public: true, staleWhileRevalidate: 10, staleIfError: 10);
×
34

UNCOV
35
        $processor->process($response, $operation, [], $context);
×
36

NEW
37
        self::assertSame('max-age=100, public, s-maxage=200, stale-if-error=10, stale-while-revalidate=10', $response->headers->get('cache-control'));
×
NEW
38
        self::assertSame('"55f2b31a6acfaa64"', $response->headers->get('etag'));
×
NEW
39
        self::assertSame(['Accept', 'Accept-Encoding'], $response->headers->all('vary'));
×
40
    }
41

42
    public function testAddHeadersFromOperationConfiguration(): void
43
    {
NEW
44
        $operation = new Get(
×
NEW
45
            cacheHeaders: [
×
NEW
46
                'public' => false,
×
NEW
47
                'max_age' => 250,
×
NEW
48
                'shared_max_age' => 500,
×
NEW
49
                'stale_while_revalidate' => 30,
×
NEW
50
                'stale_if_error' => 15,
×
NEW
51
                'vary' => ['Authorization', 'Accept-Language'],
×
NEW
52
                'must_revalidate' => true,
×
NEW
53
                'proxy_revalidate' => true,
×
NEW
54
                'no_cache' => true,
×
NEW
55
                'no_store' => true,
×
NEW
56
                'no_transform' => true,
×
NEW
57
                'immutable' => true,
×
NEW
58
            ],
×
NEW
59
        );
×
NEW
60
        $response = new Response('content');
×
NEW
61
        $request = new Request();
×
NEW
62
        $context = ['request' => $request];
×
NEW
63
        $decorated = $this->createMock(ProcessorInterface::class);
×
NEW
64
        $decorated->method('process')->willReturn($response);
×
NEW
65
        $processor = new AddHeadersProcessor($decorated);
×
66

NEW
67
        $processor->process($response, $operation, [], $context);
×
68

NEW
69
        self::assertSame('immutable, max-age=250, must-revalidate, no-store, no-transform, private, proxy-revalidate, stale-if-error=15, stale-while-revalidate=30', $response->headers->get('cache-control'));
×
NEW
70
        self::assertSame(['Authorization', 'Accept-Language'], $response->headers->all('vary'));
×
71
    }
72
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc