ScriptTest   A
last analyzed

Complexity

Total Complexity 16

Size/Duplication

Total Lines 267
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 16
lcom 0
cbo 1
dl 0
loc 267
rs 10
c 0
b 0
f 0

8 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 4 1
A testAppend() 0 29 3
A testPrepend() 0 29 3
A testInline() 0 29 3
A testRemove() 0 23 2
A testTransportVar() 0 17 1
A testConcat() 0 29 2
A testInvalid() 0 15 1
1
<?php
2
namespace Redaxscript\Tests\Head;
3
4
use org\bovigo\vfs\vfsStream as Stream;
5
use Redaxscript\Head;
6
use Redaxscript\Tests\TestCaseAbstract;
7
8
/**
9
 * ScriptTest
10
 *
11
 * @since 3.0.0
12
 *
13
 * @package Redaxscript
14
 * @category Tests
15
 * @author Henry Ruhs
16
 * @author Balázs Szilágyi
17
 *
18
 * @covers Redaxscript\Head\HeadAbstract
19
 * @covers Redaxscript\Head\Script
20
 */
21
22
class ScriptTest extends TestCaseAbstract
23
{
24
	/**
25
	 * setUp
26
	 *
27
	 * @since 3.0.0
28
	 */
29
30
	public function setUp() : void
31
	{
32
		Stream::setup('root', 0777, $this->getJSON('tests' . DIRECTORY_SEPARATOR. 'unit-provider' . DIRECTORY_SEPARATOR. 'Head' . DIRECTORY_SEPARATOR. 'ScriptTest_setUp.json'));
33
	}
34
35
	/**
36
	 * testAppend
37
	 *
38
	 * @since 3.0.0
39
	 *
40
	 * @param array $coreArray
41
	 * @param array $moduleArray
42
	 * @param string $expect
43
	 *
44
	 * @dataProvider providerAutoloader
45
	 */
46
47
	public function testAppend(array $coreArray = [], array $moduleArray = [], string $expect = null) : void
48
	{
49
		/* setup */
50
51
		$script = Head\Script::getInstance();
52
		$script->init('append');
53
54
		/* process core */
55
56
		foreach ($coreArray as $key => $value)
57
		{
58
			$script->append($value);
59
		}
60
61
		/* process module */
62
63
		foreach ($moduleArray as $key => $value)
64
		{
65
			$script->appendFile($value);
66
		}
67
68
		/* actual */
69
70
		$actual = $script;
71
72
		/* compare */
73
74
		$this->assertEquals($expect, $this->normalizeNewline($actual));
75
	}
76
77
	/**
78
	 * testPrepend
79
	 *
80
	 * @since 3.0.0
81
	 *
82
	 * @param array $coreArray
83
	 * @param array $moduleArray
84
	 * @param string $expect
85
	 *
86
	 * @dataProvider providerAutoloader
87
	 */
88
89
	public function testPrepend(array $coreArray = [], array $moduleArray = [], string $expect = null) : void
90
	{
91
		/* setup */
92
93
		$script = Head\Script::getInstance();
94
		$script->init('prepend');
95
96
		/* process core */
97
98
		foreach ($coreArray as $value)
99
		{
100
			$script->prepend($value);
101
		}
102
103
		/* process module */
104
105
		foreach ($moduleArray as $key => $value)
106
		{
107
			$script->prependFile($value);
108
		}
109
110
		/* actual */
111
112
		$actual = $script;
113
114
		/* compare */
115
116
		$this->assertEquals($expect, $this->normalizeNewline($actual));
117
	}
118
119
	/**
120
	 * testInline
121
	 *
122
	 * @since 3.0.0
123
	 *
124
	 * @param array $coreArray
125
	 * @param array $moduleArray
126
	 * @param string $expect
127
	 *
128
	 * @dataProvider providerAutoloader
129
	 */
130
131
	public function testInline(array $coreArray = [], array $moduleArray = [], string $expect = null) : void
132
	{
133
		/* setup */
134
135
		$script = Head\Script::getInstance();
136
		$script->init('inline');
137
138
		/* process core */
139
140
		foreach ($coreArray as $value)
141
		{
142
			$script->appendInline($value);
143
		}
144
145
		/* process module */
146
147
		foreach ($moduleArray as $value)
148
		{
149
			$script->prependInline($value);
150
		}
151
152
		/* actual */
153
154
		$actual = $script;
155
156
		/* compare */
157
158
		$this->assertEquals($expect, $actual);
159
	}
160
161
	/**
162
	 * testRemove
163
	 *
164
	 * @since 3.0.0
165
	 *
166
	 * @param array $coreArray
167
	 * @param string $deleteFile
168
	 * @param string $expect
169
	 *
170
	 * @dataProvider providerAutoloader
171
	 */
172
173
	public function testRemove(array $coreArray = [], string $deleteFile = null, string $expect = null) : void
174
	{
175
		/* setup */
176
177
		$script = Head\Script::getInstance();
178
		$script->init('remove');
179
180
		/* process core */
181
182
		foreach ($coreArray as $key => $value)
183
		{
184
			$script->append($value);
185
		}
186
		$script->removeFile($deleteFile);
187
188
		/* actual */
189
190
		$actual = $script;
191
192
		/* compare */
193
194
		$this->assertEquals($expect, $this->normalizeNewline($actual));
195
	}
196
197
	/**
198
	 * testTransportVar
199
	 *
200
	 * @since 3.0.0
201
	 *
202
	 * @param array $transportArray
203
	 * @param string $expect
204
	 *
205
	 * @dataProvider providerAutoloader
206
	 */
207
208
	public function testTransportVar(array $transportArray = [], string $expect = null) : void
209
	{
210
		/* setup */
211
212
		$script = Head\Script::getInstance();
213
		$script
214
			->init('transport')
215
			->transportVar($transportArray['key'], $transportArray['value']);
216
217
		/* actual */
218
219
		$actual = $script;
220
221
		/* compare */
222
223
		$this->assertEquals($expect, $actual);
224
	}
225
226
	/**
227
	 * testConcat
228
	 *
229
	 * @since 3.0.0
230
	 *
231
	 * @param array $concatArray
232
	 * @param string $expect
233
	 *
234
	 * @dataProvider providerAutoloader
235
	 */
236
237
	public function testConcat(array $concatArray = [], string $expect = null) : void
238
	{
239
		/* setup */
240
241
		$optionArray =
242
		[
243
			'directory' => Stream::url('root' . DIRECTORY_SEPARATOR . 'cache' . DIRECTORY_SEPARATOR . 'scripts')
244
		];
245
		$script = Head\Script::getInstance();
246
		$script->init('concat');
247
248
		/* process concat */
249
250
		foreach ($concatArray as $key => $value)
251
		{
252
			$script->append($value);
253
		}
254
		$script
255
			->concat($optionArray)
256
			->concat($optionArray);
257
258
		/* actual */
259
260
		$actual = $script;
261
262
		/* compare */
263
264
		$this->assertEquals($expect, $this->normalizeNewline($actual));
265
	}
266
267
	/**
268
	 * testInvalid
269
	 *
270
	 * @since 3.0.0
271
	 */
272
273
	public function testInvalid() : void
274
	{
275
		/* setup */
276
277
		$script = Head\Script::getInstance();
278
		$script->init('invalid');
279
280
		/* actual */
281
282
		$actual = $script;
283
284
		/* compare */
285
286
		$this->assertEquals('<!-- Redaxscript\Head\Script\Invalid -->', $actual);
287
	}
288
}
289