-
-
Notifications
You must be signed in to change notification settings - Fork 9.4k
/
WebLinkExtensionTest.php
92 lines (72 loc) · 3.27 KB
/
WebLinkExtensionTest.php
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Bridge\Twig\Tests\Extension;
use Fig\Link\Link;
use PHPUnit\Framework\TestCase;
use Symfony\Bridge\Twig\Extension\WebLinkExtension;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
/**
* @author Kévin Dunglas <dunglas@gmail.com>
*/
class WebLinkExtensionTest extends TestCase
{
/**
* @var Request
*/
private $request;
/**
* @var WebLinkExtension
*/
private $extension;
protected function setUp(): void
{
$this->request = new Request();
$requestStack = new RequestStack();
$requestStack->push($this->request);
$this->extension = new WebLinkExtension($requestStack);
}
public function testLink()
{
$this->assertEquals('/foo.css', $this->extension->link('/foo.css', 'preload', ['as' => 'style', 'nopush' => true]));
$link = (new Link('preload', '/foo.css'))->withAttribute('as', 'style')->withAttribute('nopush', true);
$this->assertEquals([$link], array_values($this->request->attributes->get('_links')->getLinks()));
}
public function testPreload()
{
$this->assertEquals('/foo.css', $this->extension->preload('/foo.css', ['as' => 'style', 'crossorigin' => true]));
$link = (new Link('preload', '/foo.css'))->withAttribute('as', 'style')->withAttribute('crossorigin', true);
$this->assertEquals([$link], array_values($this->request->attributes->get('_links')->getLinks()));
}
public function testDnsPrefetch()
{
$this->assertEquals('/foo.css', $this->extension->dnsPrefetch('/foo.css', ['as' => 'style', 'crossorigin' => true]));
$link = (new Link('dns-prefetch', '/foo.css'))->withAttribute('as', 'style')->withAttribute('crossorigin', true);
$this->assertEquals([$link], array_values($this->request->attributes->get('_links')->getLinks()));
}
public function testPreconnect()
{
$this->assertEquals('/foo.css', $this->extension->preconnect('/foo.css', ['as' => 'style', 'crossorigin' => true]));
$link = (new Link('preconnect', '/foo.css'))->withAttribute('as', 'style')->withAttribute('crossorigin', true);
$this->assertEquals([$link], array_values($this->request->attributes->get('_links')->getLinks()));
}
public function testPrefetch()
{
$this->assertEquals('/foo.css', $this->extension->prefetch('/foo.css', ['as' => 'style', 'crossorigin' => true]));
$link = (new Link('prefetch', '/foo.css'))->withAttribute('as', 'style')->withAttribute('crossorigin', true);
$this->assertEquals([$link], array_values($this->request->attributes->get('_links')->getLinks()));
}
public function testPrerender()
{
$this->assertEquals('/foo.css', $this->extension->prerender('/foo.css', ['as' => 'style', 'crossorigin' => true]));
$link = (new Link('prerender', '/foo.css'))->withAttribute('as', 'style')->withAttribute('crossorigin', true);
$this->assertEquals([$link], array_values($this->request->attributes->get('_links')->getLinks()));
}
}