XHTMLModeTest.php
4.68 KB
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<?php
/**
* PHPTAL templating engine
*
* PHP Version 5
*
* @category HTML
* @package PHPTAL
* @author Laurent Bedubourg <lbedubourg@motion-twin.com>
* @author Kornel Lesiński <kornel@aardvarkmedia.co.uk>
* @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License
* @version SVN: $Id: XHTMLModeTest.php 649 2009-06-14 21:56:35Z kornel $
* @link http://phptal.org/
*/
require_once dirname(__FILE__)."/config.php";
class XHTMLModeTest extends PHPTAL_TestCase
{
function testEmpty()
{
$tpl = $this->newPHPTAL();
$tpl->setSource('<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title tal:content="nonexistant | nothing" />
<base href="http://example.com/"></base>
<basefont face="Helvetica" />
<meta name="test" content=""></meta>
<link rel="test"></link>
</head>
<body>
<br/>
<br />
<br></br>
<hr/>
<img src="test"></img>
<form>
<textarea />
<textarea tal:content="\'\'" />
<textarea tal:content="nonexistant | nothing" />
</form>
</body>
</html>');
$res = $tpl->execute();
$res = trim_string($res);
$exp = trim_string('<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<base href="http://example.com/" />
<basefont face="Helvetica" />
<meta name="test" content="" />
<link rel="test" />
</head>
<body>
<br />
<br />
<br />
<hr />
<img src="test" />
<form>
<textarea></textarea>
<textarea></textarea>
<textarea></textarea>
</form>
</body>
</html>');
$this->assertEquals($exp, $res);
}
function testBoolean()
{
$tpl = $this->newPHPTAL();
$tpl->setSource('
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<input type="checkbox" checked="checked"></input>
<input type="text" tal:attributes="readonly \'readonly\'"/>
<input type="radio" tal:attributes="checked php:true; readonly \'readonly\'"/>
<input type="radio" tal:attributes="checked php:false; readonly bogus | nothing"/>
<select>
<option selected="unexpected value"/>
<option tal:repeat="n php:range(0,5)" tal:attributes="selected repeat/n/odd"/>
</select>
<script defer="defer"></script>
<script tal:attributes="defer number:1"></script>
</body>
</html>');
$res = $tpl->execute();
$res = trim_string($res);
$exp = trim_string('<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<input type="checkbox" checked="checked" />
<input type="text" readonly="readonly" />
<input type="radio" checked="checked" readonly="readonly" />
<input type="radio" />
<select>
<option selected="selected"></option>
<option></option><option selected="selected"></option><option></option><option selected="selected"></option><option></option><option selected="selected"></option> </select>
<script defer="defer"></script>
<script defer="defer"></script>
</body>
</html>');
$this->assertEquals($exp, $res);
}
function testBooleanOrNothing()
{
$tpl = $this->newPHPTAL()->setSource('
<select>
<option tal:repeat="option options" tal:attributes="value option/value;
selected option/isSelected | nothing" tal:content="option/label"/>
</select>');
$tpl->options = array(
array(
'label' => 'Option1',
'value' => 1
),
array(
'label' => 'Option2',
'value' => 2,
'isSelected' => true
),
array(
'label' => 'Option3',
'value' => 3
)
);
$this->assertEquals(trim_string('<select>
<option value="1">Option1</option>
<option value="2" selected="selected">Option2</option>
<option value="3">Option3</option>
</select>'), trim_string($tpl->execute()));
}
}