/
bootstrap.phpt
85 lines (61 loc) · 2.12 KB
/
bootstrap.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
85
<?php
require __DIR__ . '/../vendor/autoload.php';
use Tester\Assert;
use GoogleClosureCompiler\Compiler;
Tester\Environment::setup();
date_default_timezone_set('Europe/Prague');
//------------------------------------------------ TESTS ------------------------------------------------
$testName = 'advanced-optimization';
$compiler = getCompiler()
->setJsCode(getFileContent($testName))
->setCompilationLevel(Compiler::COMPILATION_LEVEL_ADVANCED_OPTIMIZATIONS);
matchJsFile($testName, $compiler);
$testName = 'pretty-output';
$compiler = getCompiler()
->setJsCode(getFileContent($testName))
->setFormattingType(Compiler::FORMATTING_PRETTY_PRINT);
matchJsFile($testName, $compiler);
$testName = 'simple-optimization';
$compiler = getCompiler()
->setJsCode(getFileContent($testName));
matchJsFile($testName, $compiler);
$testName = 'whitespace-only-optimization';
$compiler = getCompiler()
->setJsCode(getFileContent($testName))
->setCompilationLevel(Compiler::COMPILATION_LEVEL_WHITESPACE_ONLY);
matchJsFile($testName, $compiler);
$response = getCompiler()
->setJsCode(getFileContent($testName))
->setOutputFileName('test.js')
->compile();
$response
? Assert::true( (bool) $response->getOutputFilePath())
: Assert::fail('Failed to connect to closure compiler');
$response = getCompiler()
->setJsCode('alert(;')
->compile();
$response
? Assert::true( (bool) $response->hasErrors())
: Assert::fail('Failed to connect to closure compiler');
$response = getCompiler()
->setJsCode("a; alert('a');")
->compile();
$response
? Assert::true( (bool) $response->hasWarnings())
: Assert::fail('Failed to connect to closure compiler');
//------------------------------------------------ HELPERS ------------------------------------------------
function matchJsFile(string $name, Compiler $compiler)
{
$result = $compiler->compile();
$result
? Assert::matchFile('expected/' . $name .'.js', $result->getCompiledCode())
: Assert::fail('Failed to connect to closure compiler');
}
function getFileContent(string $name): string
{
return file_get_contents('actual/' . $name . '.js');
}
function getCompiler(): Compiler
{
return new Compiler;
}