BreadcrumbsExtensionTest   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 60
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 8

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 2
c 2
b 0
f 1
lcom 1
cbo 8
dl 0
loc 60
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
B testRenderDefaultBreadcrumbsAndTemplate() 0 30 1
B testRenderCustomBreadcrumbsAndTemplate() 0 26 1
1
<?php
2
3
/*
4
 * This file is part of the BreadcrumbsBundle.
5
 *
6
 * (c) Yonel Ceruto <[email protected]>
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
namespace Tests\Twig;
13
14
use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
15
use Symfony\Component\DependencyInjection\ContainerBuilder;
16
use Yceruto\Bundle\BreadcrumbsBundle\Breadcrumbs;
17
use Yceruto\Bundle\BreadcrumbsBundle\BreadcrumbsBuilder;
18
use Yceruto\Bundle\BreadcrumbsBundle\DependencyInjection\BreadcrumbsExtension;
19
use Yceruto\Bundle\BreadcrumbsBundle\Twig\BreadcrumbsExtension as TwigBreadcrumbsExtension;
20
21
class BreadcrumbsExtensionTest extends TestCase
22
{
23
    public function testRenderDefaultBreadcrumbsAndTemplate()
24
    {
25
        $breadcrumbs = new Breadcrumbs();
26
        $breadcrumbs->add('/', 'home');
27
28
        $breadcrumbsBuilder = $this->getMockBuilder('Yceruto\Bundle\BreadcrumbsBundle\BreadcrumbsBuilder')
29
            ->disableOriginalConstructor()
30
            ->getMock();
31
        $breadcrumbsBuilder->method('createFromRequest')
32
            ->willReturn($breadcrumbs);
33
34
        $container = new ContainerBuilder();
35
        $container->setParameter('kernel.debug', false);
36
        $container->set('breadcrumbs_builder', $breadcrumbsBuilder);
37
38
        $extension = new BreadcrumbsExtension();
39
        $extension->load(array(), $container);
40
41
        /* @var BreadcrumbsBuilder $breadcrumbsBuilder */
42
        $twigExtension = new TwigBreadcrumbsExtension($breadcrumbsBuilder);
43
        $this->assertEquals('breadcrumbs_extension', $twigExtension->getName());
44
        $this->assertInternalType('array', $twigExtension->getFunctions());
45
46
        $loader = new \Twig_Loader_Filesystem();
47
        $loader->addPath(__DIR__.'/Fixtures/Resources/views', 'Breadcrumbs');
48
        $environment = new \Twig_Environment($loader);
49
50
        $content = $twigExtension->renderBreadcrumbs($environment);
51
        $this->assertContains('<ol class="breadcrumb"><li class="active">Home</li></ol>', $content);
52
    }
53
54
    public function testRenderCustomBreadcrumbsAndTemplate()
55
    {
56
        $breadcrumbsBuilder = $this->getMockBuilder('Yceruto\Bundle\BreadcrumbsBundle\BreadcrumbsBuilder')
57
            ->disableOriginalConstructor()
58
            ->getMock();
59
60
        $container = new ContainerBuilder();
61
        $container->setParameter('kernel.debug', false);
62
        $container->set('breadcrumbs_builder', $breadcrumbsBuilder);
63
64
        $extension = new BreadcrumbsExtension();
65
        $extension->load(array(), $container);
66
67
        $breadcrumbs = new Breadcrumbs();
68
        $breadcrumbs->add('/', 'home');
69
70
        /* @var BreadcrumbsBuilder $breadcrumbsBuilder */
71
        $twigExtension = new TwigBreadcrumbsExtension($breadcrumbsBuilder);
72
73
        $loader = new \Twig_Loader_Filesystem();
74
        $loader->addPath(__DIR__.'/Fixtures/Resources/BreadcrumbsBundle/views', 'Breadcrumbs');
75
        $environment = new \Twig_Environment($loader);
76
77
        $content = $twigExtension->renderBreadcrumbs($environment, $breadcrumbs);
78
        $this->assertContains('<ol class="custom-breadcrumb"><li class="active">HOME</li></ol>', $content);
79
    }
80
}
81