Completed
Push — master ( ae5e03...0447ee )
by Jeroen
10:35 queued 04:37
created

KunstmaanAdminExtensionTest.php (1 issue)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
namespace Kunstmaan\AdminBundle\Tests\DependencyInjection;
4
5
use Kunstmaan\AdminBundle\DependencyInjection\KunstmaanAdminExtension;
6
use Symfony\Component\DependencyInjection\Extension\ExtensionInterface;
7
use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractExtensionTestCase;
8
9
/**
10
 * Class KunstmaanAdminExtensionTest
11
 */
12
class KunstmaanAdminExtensionTest extends AbstractExtensionTestCase
13
{
14
    /**
15
     * @return ExtensionInterface[]
0 ignored issues
show
Consider making the return type a bit more specific; maybe use KunstmaanAdminExtension[].

This check looks for the generic type array as a return type and suggests a more specific type. This type is inferred from the actual code.

Loading history...
16
     */
17
    protected function getContainerExtensions()
18
    {
19
        return [new KunstmaanAdminExtension()];
20
    }
21
22
    public function testCorrectParametersHaveBeenSet()
23
    {
24
        $this->load([
25
            'dashboard_route' => true,
26
            'admin_password' => 'omgchangethis',
27
            'menu_items' => [
28
                [
29
                    'route' => 'route66',
30
                    'label' => 'Route 66',
31
                ],
32
            ],
33
            'website_title' => 'Example title',
34
            'multi_language' => true,
35
            'required_locales' => 'nl|fr|en',
36
            'default_locale' => 'nl',
37
        ]);
38
39
        $this->assertContainerBuilderHasParameter('version_checker.url', 'https://cms.kunstmaan.be/version-check');
40
        $this->assertContainerBuilderHasParameter('version_checker.timeframe', 60 * 60 * 24);
41
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.admin_locales');
42
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.default_admin_locale');
43
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.session_security.ip_check');
44
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.session_security.user_agent_check');
45
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.google_signin.enabled');
46
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.google_signin.client_id');
47
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.google_signin.client_secret');
48
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.google_signin.hosted_domains');
49
    }
50
51
    /**
52
     * @group legacy
53
     * @expectedDeprecation Not providing a value for the "kunstmaan_admin.website_title" config is deprecated since KunstmaanAdminBundle 5.2, this config value will be required in KunstmaanAdminBundle 6.0.
54
     */
55
    public function testWebsiteTitleWithParameterSet()
56
    {
57
        $this->setParameter('websitetitle', 'Mywebsite');
58
59
        $this->load($this->getRequiredConfig('website_title'));
60
61
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.website_title', 'Mywebsite');
62
    }
63
64
    public function testWebsiteTitleWithParameterAndConfigSet()
65
    {
66
        $this->setParameter('websitetitle', 'Mywebsite');
67
68
        $this->load(array_merge($this->getRequiredConfig(), ['website_title' => 'My real website']));
69
70
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.website_title', 'My real website');
71
    }
72
73
    /**
74
     * @group legacy
75
     * @expectedDeprecation Not providing a value for the "kunstmaan_admin.multi_language" config is deprecated since KunstmaanAdminBundle 5.2, this config value will be required in KunstmaanAdminBundle 6.0.
76
     */
77
    public function testMultiLanguageWithParameterSet()
78
    {
79
        $this->setParameter('multilanguage', true);
80
81
        $this->load($this->getRequiredConfig('multi_language'));
82
83
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.multi_language', true);
84
    }
85
86 View Code Duplication
    public function testMultiLanguageWithParameterAndConfigSet()
87
    {
88
        $this->setParameter('multilanguage', false);
89
90
        $this->load(array_merge($this->getRequiredConfig(), ['multi_language' => true]));
91
92
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.multi_language', true);
93
    }
94
95
    /**
96
     * @group legacy
97
     */
98 View Code Duplication
    public function testMultiLanguageScalarParameter()
99
    {
100
        $this->setParameter('multilanguage', true);
101
102
        $this->load(array_merge($this->getRequiredConfig(), ['multi_language' => 'randomvalue']));
103
104
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.multi_language', true);
105
    }
106
107
    /**
108
     * @group legacy
109
     * @expectedDeprecation Not providing a value for the "kunstmaan_admin.required_locales" config is deprecated since KunstmaanAdminBundle 5.2, this config value will be required in KunstmaanAdminBundle 6.0.
110
     */
111
    public function testRequiredLocalesWithParameterSet()
112
    {
113
        $this->setParameter('requiredlocales', 'nl|en');
114
115
        $this->load($this->getRequiredConfig('required_locales'));
116
117
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.required_locales', 'nl|en');
118
    }
119
120
    public function testRequiredLocalesWithParameterAndConfigSet()
121
    {
122
        $this->setParameter('requiredlocales', 'nl|en');
123
124
        $this->load(array_merge($this->getRequiredConfig(), ['required_locales' => 'nl|en|fr']));
125
126
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.required_locales', 'nl|en|fr');
127
    }
128
129
    /**
130
     * @group legacy
131
     * @expectedDeprecation Not providing a value for the "kunstmaan_admin.default_locale" config is deprecated since KunstmaanAdminBundle 5.2, this config value will be required in KunstmaanAdminBundle 6.0.
132
     */
133
    public function testDefaultLocaleWithParameterSet()
134
    {
135
        $this->setParameter('defaultlocale', 'en');
136
137
        $this->load($this->getRequiredConfig('default_locale'));
138
139
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.default_locale', 'en');
140
    }
141
142
    public function testDefaultLocaleWithParameterAndConfigSet()
143
    {
144
        $this->setParameter('defaultlocale', 'en');
145
146
        $this->load(array_merge($this->getRequiredConfig(), ['default_locale' => 'nl']));
147
148
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.default_locale', 'nl');
149
    }
150
151
    /**
152
     * @group legacy
153
     * @expectedDeprecation Not providing a value for the "kunstmaan_admin.website_title" config is deprecated since KunstmaanAdminBundle 5.2, this config value will be required in KunstmaanAdminBundle 6.0.
154
     * @expectedDeprecation Not providing a value for the "kunstmaan_admin.multi_language" config is deprecated since KunstmaanAdminBundle 5.2, this config value will be required in KunstmaanAdminBundle 6.0.
155
     * @expectedDeprecation Not providing a value for the "kunstmaan_admin.required_locales" config is deprecated since KunstmaanAdminBundle 5.2, this config value will be required in KunstmaanAdminBundle 6.0.
156
     * @expectedDeprecation Not providing a value for the "kunstmaan_admin.default_locale" config is deprecated since KunstmaanAdminBundle 5.2, this config value will be required in KunstmaanAdminBundle 6.0.
157
     */
158
    public function testLegacyParameters()
159
    {
160
        $this->load();
161
162
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.website_title', '');
163
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.multi_language', '');
164
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.required_locales', '');
165
        $this->assertContainerBuilderHasParameter('kunstmaan_admin.default_locale', '');
166
    }
167
168
    protected function setUp()
169
    {
170
        parent::setUp();
171
172
        // Some parameters required for the admin extension
173
        $this->container->setParameter('kernel.logs_dir', '/somewhere/over/the/rainbow');
174
        $this->container->setParameter('kernel.environment', 'staging');
175
    }
176
177
    private function getRequiredConfig(string $excludeKey = null)
178
    {
179
        $requiredConfig = [
180
            'website_title' => 'Example title',
181
            'multi_language' => true,
182
            'required_locales' => 'nl|fr|en',
183
            'default_locale' => 'nl',
184
        ];
185
186
        if (array_key_exists($excludeKey, $requiredConfig)) {
187
            unset($requiredConfig[$excludeKey]);
188
        }
189
190
        return $requiredConfig;
191
    }
192
}
193