/
AssetsExtensionTest.phpt
84 lines (61 loc) · 2.16 KB
/
AssetsExtensionTest.phpt
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
<?php
namespace h4kuna\Assets\DI;
use h4kuna\Assets,
Nette\Utils,
Tester\Assert;
$container = require __DIR__ . '/../../bootsrap.php';
function configuratorFactory($neon, $subDirOff = FALSE)
{
$configurator = new \Nette\Configurator;
$tmp = __DIR__ . '/../../temp/test';
Utils\FileSystem::delete($tmp);
Utils\FileSystem::createDir($tmp);
$wwwDir = $tmp . '/../www';
$subWww = $wwwDir . '/temp';
@chmod($subWww, 0755);
Utils\FileSystem::delete($subWww);
Utils\FileSystem::createDir($subWww);
if ($subDirOff) {
chmod($subWww, 0000);
}
$configurator->enableDebugger($tmp);
$configurator->addParameters([
'wwwDir' => $wwwDir
]);
$configurator->setTempDirectory($tmp);
$configurator->addConfig(__DIR__ . '/assets/assets.neon');
$configurator->addConfig(__DIR__ . '/assets/' . $neon);
return $configurator->createContainer();
}
Assert::exception(function() {
configuratorFactory('external-download-faild.neon');
}, Assets\DownloadFaildFromExternalUrlException::class);
Assert::exception(function() {
configuratorFactory('permission-denied.neon', TRUE);
}, Assets\DirectoryIsNotWriteableException::class);
Assert::exception(function() {
configuratorFactory('bad-token.neon');
}, Assets\CompareTokensException::class);
Assert::exception(function() {
configuratorFactory('file-not-found.neon');
}, Assets\FileNotFoundException::class);
Assert::exception(function() {
configuratorFactory('fs-main.neon', TRUE);
}, Assets\DirectoryIsNotWriteableException::class);
test(function() {
touch(__DIR__ . '/assets/main.js', 123456789);
$container = configuratorFactory('fs-main.neon');
$file = $container->getByType(Assets\File::class);
/* @var $file \h4kuna\Assets\File */
Assert::same('/temp/main.js?123456789', $file->createUrl('temp/main.js'));
});
test(function() {
touch(__DIR__ . '/assets/main.js', 123456789);
$container = configuratorFactory('fs-main-alias.neon');
$file = $container->getByType(Assets\File::class);
/* @var $file \h4kuna\Assets\File */
Assert::same('/temp/app/index.js?123456789', $file->createUrl('temp/app/index.js'));
});
Assert::exception(function() {
configuratorFactory('duplicity.neon');
}, Assets\DuplicityAssetNameException::class);