Completed
Push — 3.x ( 06cb47...ee8105 )
by Grégoire
06:40 queued 02:46
created

testAssetsCanBeAddedAndRemoved()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 66
Code Lines 54

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 66
rs 9.3191
c 0
b 0
f 0
cc 1
eloc 54
nc 1
nop 0

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
/*
4
 * This file is part of the Sonata Project package.
5
 *
6
 * (c) Thomas Rabaix <[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 Sonata\AdminBundle\Tests\DependencyInjection;
13
14
use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractExtensionTestCase;
15
use Sonata\AdminBundle\Bridge\Exporter\AdminExporter;
16
use Sonata\AdminBundle\DependencyInjection\SonataAdminExtension;
17
18
class SonataAdminExtensionTest extends AbstractExtensionTestCase
19
{
20
    public function testHasServiceDefinitionForLockExtension()
21
    {
22
        $this->container->setParameter('kernel.bundles', []);
23
        $this->load(['options' => ['lock_protection' => true]]);
24
        $this->assertContainerBuilderHasService('sonata.admin.lock.extension');
25
    }
26
27
    public function testNotHasServiceDefinitionForLockExtension()
28
    {
29
        $this->container->setParameter('kernel.bundles', []);
30
        $this->load(['options' => ['lock_protection' => false]]);
31
        $this->assertContainerBuilderNotHasService('sonata.admin.lock.extension');
32
    }
33
34
    public function testLoadsExporterServiceDefinitionWhenExporterBundleIsRegistered()
35
    {
36
        $this->container->setParameter('kernel.bundles', ['SonataExporterBundle' => 'whatever']);
37
        $this->load();
38
        $this->assertContainerBuilderHasService(
39
            'sonata.admin.admin_exporter',
40
            AdminExporter::class
41
        );
42
    }
43
44
    public function testHasSecurityRoleParameters()
45
    {
46
        $this->container->setParameter('kernel.bundles', []);
47
        $this->load();
48
49
        $this->assertContainerBuilderHasParameter('sonata.admin.configuration.security.role_admin');
50
        $this->assertContainerBuilderHasParameter('sonata.admin.configuration.security.role_super_admin');
51
    }
52
53
    public function testExtraStylesheetsGetAdded()
54
    {
55
        $this->container->setParameter('kernel.bundles', []);
56
        $this->load([
57
            'assets' => [
58
                'extra_stylesheets' => [
59
                    'foo/bar.css',
60
                    'bar/quux.css',
61
                ],
62
            ],
63
        ]);
64
        $stylesheets = $this->container->getDefinition('sonata.admin.pool')->getArgument(3)['stylesheets'];
65
66
        $this->assertEquals($stylesheets, [
67
            'bundles/sonatacore/vendor/bootstrap/dist/css/bootstrap.min.css',
68
            'bundles/sonatacore/vendor/components-font-awesome/css/font-awesome.min.css',
69
            'bundles/sonatacore/vendor/ionicons/css/ionicons.min.css',
70
            'bundles/sonataadmin/vendor/admin-lte/dist/css/AdminLTE.min.css',
71
            'bundles/sonataadmin/vendor/admin-lte/dist/css/skins/skin-black.min.css',
72
            'bundles/sonataadmin/vendor/iCheck/skins/square/blue.css',
73
            'bundles/sonatacore/vendor/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css',
74
            'bundles/sonataadmin/vendor/jqueryui/themes/base/jquery-ui.css',
75
            'bundles/sonatacore/vendor/select2/select2.css',
76
            'bundles/sonatacore/vendor/select2-bootstrap-css/select2-bootstrap.min.css',
77
            'bundles/sonataadmin/vendor/x-editable/dist/bootstrap3-editable/css/bootstrap-editable.css',
78
            'bundles/sonataadmin/css/styles.css',
79
            'bundles/sonataadmin/css/layout.css',
80
            'bundles/sonataadmin/css/tree.css',
81
            'foo/bar.css',
82
            'bar/quux.css',
83
        ]);
84
    }
85
86
    public function testRemoveStylesheetsGetRemoved()
87
    {
88
        $this->container->setParameter('kernel.bundles', []);
89
        $this->load([
90
            'assets' => [
91
                'remove_stylesheets' => [
92
                    'bundles/sonataadmin/vendor/admin-lte/dist/css/skins/skin-black.min.css',
93
                    'bundles/sonataadmin/vendor/jqueryui/themes/base/jquery-ui.css',
94
                ],
95
            ],
96
        ]);
97
98
        $stylesheets = $this->container->getDefinition('sonata.admin.pool')->getArgument(3)['stylesheets'];
99
100
        $this->assertEquals($stylesheets, [
101
            'bundles/sonatacore/vendor/bootstrap/dist/css/bootstrap.min.css',
102
            'bundles/sonatacore/vendor/components-font-awesome/css/font-awesome.min.css',
103
            'bundles/sonatacore/vendor/ionicons/css/ionicons.min.css',
104
            'bundles/sonataadmin/vendor/admin-lte/dist/css/AdminLTE.min.css',
105
            'bundles/sonataadmin/vendor/iCheck/skins/square/blue.css',
106
            'bundles/sonatacore/vendor/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css',
107
            'bundles/sonatacore/vendor/select2/select2.css',
108
            'bundles/sonatacore/vendor/select2-bootstrap-css/select2-bootstrap.min.css',
109
            'bundles/sonataadmin/vendor/x-editable/dist/bootstrap3-editable/css/bootstrap-editable.css',
110
            'bundles/sonataadmin/css/styles.css',
111
            'bundles/sonataadmin/css/layout.css',
112
            'bundles/sonataadmin/css/tree.css',
113
        ]);
114
    }
115
116
    public function testExtraJavascriptsGetAdded()
117
    {
118
        $this->container->setParameter('kernel.bundles', []);
119
        $this->load([
120
            'assets' => [
121
                'extra_javascripts' => [
122
                    'foo/bar.js',
123
                    'bar/quux.js',
124
                ],
125
            ],
126
        ]);
127
        $javascripts = $this->container->getDefinition('sonata.admin.pool')->getArgument(3)['javascripts'];
128
129
        $this->assertEquals($javascripts, [
130
            'bundles/sonatacore/vendor/jquery/dist/jquery.min.js',
131
            'bundles/sonataadmin/vendor/jquery.scrollTo/jquery.scrollTo.min.js',
132
            'bundles/sonatacore/vendor/moment/min/moment.min.js',
133
            'bundles/sonataadmin/vendor/jqueryui/ui/minified/jquery-ui.min.js',
134
            'bundles/sonataadmin/vendor/jqueryui/ui/minified/i18n/jquery-ui-i18n.min.js',
135
            'bundles/sonatacore/vendor/bootstrap/dist/js/bootstrap.min.js',
136
            'bundles/sonatacore/vendor/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js',
137
            'bundles/sonataadmin/vendor/jquery-form/jquery.form.js',
138
            'bundles/sonataadmin/jquery/jquery.confirmExit.js',
139
            'bundles/sonataadmin/vendor/x-editable/dist/bootstrap3-editable/js/bootstrap-editable.min.js',
140
            'bundles/sonatacore/vendor/select2/select2.min.js',
141
            'bundles/sonataadmin/vendor/admin-lte/dist/js/app.min.js',
142
            'bundles/sonataadmin/vendor/iCheck/icheck.min.js',
143
            'bundles/sonataadmin/vendor/slimScroll/jquery.slimscroll.min.js',
144
            'bundles/sonataadmin/vendor/waypoints/lib/jquery.waypoints.min.js',
145
            'bundles/sonataadmin/vendor/waypoints/lib/shortcuts/sticky.min.js',
146
            'bundles/sonataadmin/vendor/readmore-js/readmore.min.js',
147
            'bundles/sonataadmin/vendor/masonry/dist/masonry.pkgd.min.js',
148
            'bundles/sonataadmin/Admin.js',
149
            'bundles/sonataadmin/treeview.js',
150
            'foo/bar.js',
151
            'bar/quux.js',
152
        ]);
153
    }
154
155
    public function testRemoveJavascriptsGetRemoved()
156
    {
157
        $this->container->setParameter('kernel.bundles', []);
158
        $this->load([
159
            'assets' => [
160
                'remove_javascripts' => [
161
                    'bundles/sonataadmin/vendor/readmore-js/readmore.min.js',
162
                    'bundles/sonataadmin/jquery/jquery.confirmExit.js',
163
                ],
164
            ],
165
        ]);
166
        $javascripts = $this->container->getDefinition('sonata.admin.pool')->getArgument(3)['javascripts'];
167
168
        $this->assertEquals($javascripts, [
169
            'bundles/sonatacore/vendor/jquery/dist/jquery.min.js',
170
            'bundles/sonataadmin/vendor/jquery.scrollTo/jquery.scrollTo.min.js',
171
            'bundles/sonatacore/vendor/moment/min/moment.min.js',
172
            'bundles/sonataadmin/vendor/jqueryui/ui/minified/jquery-ui.min.js',
173
            'bundles/sonataadmin/vendor/jqueryui/ui/minified/i18n/jquery-ui-i18n.min.js',
174
            'bundles/sonatacore/vendor/bootstrap/dist/js/bootstrap.min.js',
175
            'bundles/sonatacore/vendor/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js',
176
            'bundles/sonataadmin/vendor/jquery-form/jquery.form.js',
177
            'bundles/sonataadmin/vendor/x-editable/dist/bootstrap3-editable/js/bootstrap-editable.min.js',
178
            'bundles/sonatacore/vendor/select2/select2.min.js',
179
            'bundles/sonataadmin/vendor/admin-lte/dist/js/app.min.js',
180
            'bundles/sonataadmin/vendor/iCheck/icheck.min.js',
181
            'bundles/sonataadmin/vendor/slimScroll/jquery.slimscroll.min.js',
182
            'bundles/sonataadmin/vendor/waypoints/lib/jquery.waypoints.min.js',
183
            'bundles/sonataadmin/vendor/waypoints/lib/shortcuts/sticky.min.js',
184
            'bundles/sonataadmin/vendor/masonry/dist/masonry.pkgd.min.js',
185
            'bundles/sonataadmin/Admin.js',
186
            'bundles/sonataadmin/treeview.js',
187
        ]);
188
    }
189
190
    public function testAssetsCanBeAddedAndRemoved()
191
    {
192
        $this->container->setParameter('kernel.bundles', []);
193
        $this->load([
194
            'assets' => [
195
                'extra_stylesheets' => [
196
                    'foo/bar.css',
197
                    'bar/quux.css',
198
                ],
199
                'remove_stylesheets' => [
200
                    'bundles/sonataadmin/vendor/admin-lte/dist/css/skins/skin-black.min.css',
201
                    'bundles/sonataadmin/vendor/jqueryui/themes/base/jquery-ui.css',
202
                ],
203
                'extra_javascripts' => [
204
                    'foo/bar.js',
205
                    'bar/quux.js',
206
                ],
207
                'remove_javascripts' => [
208
                    'bundles/sonataadmin/vendor/readmore-js/readmore.min.js',
209
                    'bundles/sonataadmin/jquery/jquery.confirmExit.js',
210
                ],
211
            ],
212
        ]);
213
        $stylesheets = $this->container->getDefinition('sonata.admin.pool')->getArgument(3)['stylesheets'];
214
        $javascripts = $this->container->getDefinition('sonata.admin.pool')->getArgument(3)['javascripts'];
215
216
        $this->assertEquals($stylesheets, [
217
            'bundles/sonatacore/vendor/bootstrap/dist/css/bootstrap.min.css',
218
            'bundles/sonatacore/vendor/components-font-awesome/css/font-awesome.min.css',
219
            'bundles/sonatacore/vendor/ionicons/css/ionicons.min.css',
220
            'bundles/sonataadmin/vendor/admin-lte/dist/css/AdminLTE.min.css',
221
            'bundles/sonataadmin/vendor/iCheck/skins/square/blue.css',
222
            'bundles/sonatacore/vendor/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css',
223
            'bundles/sonatacore/vendor/select2/select2.css',
224
            'bundles/sonatacore/vendor/select2-bootstrap-css/select2-bootstrap.min.css',
225
            'bundles/sonataadmin/vendor/x-editable/dist/bootstrap3-editable/css/bootstrap-editable.css',
226
            'bundles/sonataadmin/css/styles.css',
227
            'bundles/sonataadmin/css/layout.css',
228
            'bundles/sonataadmin/css/tree.css',
229
            'foo/bar.css',
230
            'bar/quux.css',
231
        ]);
232
233
        $this->assertEquals($javascripts, [
234
            'bundles/sonatacore/vendor/jquery/dist/jquery.min.js',
235
            'bundles/sonataadmin/vendor/jquery.scrollTo/jquery.scrollTo.min.js',
236
            'bundles/sonatacore/vendor/moment/min/moment.min.js',
237
            'bundles/sonataadmin/vendor/jqueryui/ui/minified/jquery-ui.min.js',
238
            'bundles/sonataadmin/vendor/jqueryui/ui/minified/i18n/jquery-ui-i18n.min.js',
239
            'bundles/sonatacore/vendor/bootstrap/dist/js/bootstrap.min.js',
240
            'bundles/sonatacore/vendor/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js',
241
            'bundles/sonataadmin/vendor/jquery-form/jquery.form.js',
242
            'bundles/sonataadmin/vendor/x-editable/dist/bootstrap3-editable/js/bootstrap-editable.min.js',
243
            'bundles/sonatacore/vendor/select2/select2.min.js',
244
            'bundles/sonataadmin/vendor/admin-lte/dist/js/app.min.js',
245
            'bundles/sonataadmin/vendor/iCheck/icheck.min.js',
246
            'bundles/sonataadmin/vendor/slimScroll/jquery.slimscroll.min.js',
247
            'bundles/sonataadmin/vendor/waypoints/lib/jquery.waypoints.min.js',
248
            'bundles/sonataadmin/vendor/waypoints/lib/shortcuts/sticky.min.js',
249
            'bundles/sonataadmin/vendor/masonry/dist/masonry.pkgd.min.js',
250
            'bundles/sonataadmin/Admin.js',
251
            'bundles/sonataadmin/treeview.js',
252
            'foo/bar.js',
253
            'bar/quux.js',
254
        ]);
255
    }
256
257
    protected function getContainerExtensions()
258
    {
259
        return [new SonataAdminExtension()];
260
    }
261
}
262