-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Expand file tree
/
Copy pathBadgeTest.php
More file actions
109 lines (92 loc) · 3.5 KB
/
Copy pathBadgeTest.php
File metadata and controls
109 lines (92 loc) · 3.5 KB
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<?php
namespace EasyCorp\Bundle\EasyAdminBundle\Tests\Functional\Component;
use EasyCorp\Bundle\EasyAdminBundle\Tests\Functional\AbstractFieldFunctionalTest;
/**
* Rendering tests for the <twig:ea:Badge> component.
*/
class BadgeTest extends AbstractFieldFunctionalTest
{
private function renderBadge(string $template): string
{
return static::getContainer()->get('twig')->createTemplate($template)->render();
}
public function testDefaultVariantIsSecondary(): void
{
self::assertSame(
'<span class="badge badge-secondary">Hello</span>',
$this->renderBadge('<twig:ea:Badge>Hello</twig:ea:Badge>')
);
}
public function testNamedVariant(): void
{
self::assertSame(
'<span class="badge badge-success">OK</span>',
$this->renderBadge('<twig:ea:Badge variant="success">OK</twig:ea:Badge>')
);
}
public function testUnknownVariantIsRenderedAsCustomVariant(): void
{
self::assertSame(
'<span class="badge badge-currency">EUR</span>',
$this->renderBadge('<twig:ea:Badge variant="currency">EUR</twig:ea:Badge>')
);
}
public function testEmptyVariantRendersNoVariantClass(): void
{
self::assertSame(
'<span class="badge">x</span>',
$this->renderBadge('<twig:ea:Badge variant="">x</twig:ea:Badge>')
);
}
public function testSmallSize(): void
{
self::assertSame(
'<span class="badge badge-secondary badge-sm">x</span>',
$this->renderBadge('<twig:ea:Badge size="sm">x</twig:ea:Badge>')
);
}
public function testRadiusFull(): void
{
self::assertSame(
'<span class="badge badge-secondary ea-rounded-full">x</span>',
$this->renderBadge('<twig:ea:Badge radius="full">x</twig:ea:Badge>')
);
}
public function testNoRadiusClassByDefault(): void
{
self::assertStringNotContainsString('ea-rounded', $this->renderBadge('<twig:ea:Badge>x</twig:ea:Badge>'));
}
public function testExtraAttributesAreMerged(): void
{
self::assertSame(
'<span class="badge badge-info" title="hello">x</span>',
$this->renderBadge('<twig:ea:Badge variant="info" title="hello">x</twig:ea:Badge>')
);
}
public function testCustomClassIsMergedWithDefaults(): void
{
self::assertSame(
'<span class="badge badge-info my-badge">x</span>',
$this->renderBadge('<twig:ea:Badge variant="info" class="my-badge">x</twig:ea:Badge>')
);
}
public function testLeadingIconIsRenderedBeforeLabel(): void
{
$html = $this->renderBadge('<twig:ea:Badge variant="info" icon="fa-star">Label</twig:ea:Badge>');
self::assertStringContainsString('class="icon"', $html);
self::assertLessThan(strpos($html, 'Label'), strpos($html, 'class="icon"'));
}
public function testTrailingIconIsRenderedAfterLabel(): void
{
$html = $this->renderBadge('<twig:ea:Badge variant="info" endIcon="fa-star">Label</twig:ea:Badge>');
self::assertStringContainsString('class="icon"', $html);
self::assertGreaterThan(strpos($html, 'Label'), strpos($html, 'class="icon"'));
}
public function testLink(): void
{
self::assertSame(
'<a class="badge badge-secondary" href="https://example.com">x</a>',
$this->renderBadge('<twig:ea:Badge href="https://example.com">x</twig:ea:Badge>')
);
}
}