-
Notifications
You must be signed in to change notification settings - Fork 10
/
PrettyTest.php
122 lines (105 loc) · 2.67 KB
/
PrettyTest.php
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
namespace Tale\Test\Jade;
use Tale\Jade\Compiler;
use Tale\Jade\Renderer;
use Tale\Jade\Parser;
class PrettyTest extends \PHPUnit_Framework_TestCase
{
/** @var \Tale\Jade\Renderer */
private $renderer;
public function setUp()
{
$this->renderer = new Renderer([
'adapter_options' => [
'path' => __DIR__.'/cache/pretty',
],
'pretty' => true,
'paths' => [__DIR__.'/views/pretty']
]);
}
public function testBasic()
{
$phtml = <<<'PHTML'
<!DOCTYPE html>
<html<?php $__value = isset($lang) ? $lang : false; if (!\Tale\Jade\Compiler\is_null_or_false($__value)) echo ' lang='.\Tale\Jade\Compiler\build_value($__value, '"', true); unset($__value);?>>
<head>
<title>
<?=htmlentities(isset($title) ? $title : '', \ENT_QUOTES, 'UTF-8')?>
</title>
<link rel="stylesheet" href="/some-style.css">
</head>
<body>
<h1>
Some Header
</h1>
<p>
Some multiline
text that will just span
over as many lines as it fucking likes!
</p>
<h2>
A node with a single zero
</h2>
<p>
0
</p>
<script src="/some-script.css"></script>
</body>
</html>
PHTML;
$this->assertEquals(str_replace("\r", '', $phtml), $this->renderer->compileFile(
'basic'
));
}
public function testSingle()
{
$phtml = <<<'PHTML'
<div class="container">
<div class="row">
<div class="col-md-6 col-sm-3">
<p>
Some content
</p>
</div>
<div class="col-md-6 col-sm-3">
<p>
Some content
</p>
</div>
<div class="col-md-6 col-sm-3">
<p>
Some content
</p>
</div>
</div>
</div>
PHTML;
$this->assertEquals(str_replace("\r", '', $phtml), $this->renderer->compileFile(
'single'
));
}
public function testForcedInlineTags()
{
$phtml = <<<'PHTML'
<?php $content = "This is some Content.\n\n This comment contains own whitespace to preserve."?>
<some-container>
<pre><?=htmlentities(isset($content) ? $content : '', \ENT_QUOTES, 'UTF-8')?></pre>
<pre>Some <strong>interpolated content</strong></pre>
<div>
<?=htmlentities(isset($content) ? $content : '', \ENT_QUOTES, 'UTF-8')?>
</div>
<div>
Some
<strong>
interpolated content
</strong>
</div>
<code><?=htmlentities(isset($content) ? $content : '', \ENT_QUOTES, 'UTF-8')?></code>
<code>Some <strong>interpolated content</strong></code>
</some-container>
PHTML;
$this->assertEquals(str_replace("\r", '', $phtml), $this->renderer->compileFile(
'forced-inline'
));
}
}