-
Notifications
You must be signed in to change notification settings - Fork 57
/
Copy pathunit-test.html
251 lines (208 loc) · 22.8 KB
/
unit-test.html
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Unit Test</title>
<link rel="stylesheet" type="text/css" href="tests/qunit-1.14.0.css">
</head>
<body onLoad="loadGrammar()">
<div id="qunit"></div>
<div id="qunit-fixture"></div>
<script src="tests/qunit-1.14.0.js"></script>
<script src="jquery-1.8.2.min.js"></script>
<script src="resources/jquery.ui.widget.min.js"></script><!-- necessary for testing code w/ widgets, like tlc. -->
<!-- specifically for tlc -->
<script src="resources/jsonpath.0.8.0.js"></script>
<script src="resources/tlc.js"></script>
<script src="resources/peg-0.8.0.js"></script>
<script src="includes.js"></script><!-- wiki -->
<script src="tests/tlc.js"></script>
<script src="tests/model.js"></script>
<h3>Version .01</h3>
<h4>What follows is the template that gets translated for tlc.</h4>
<h5>It must be visible because some individual tests check for display properties.</h5>
<div id='sample-template'>
<section id='verb-tests'>
<h6>Used for verb tests</h6>
<!-- append -->
<div data-testtype='output-compare' data-output='bob' data-tlc="bind $var '.name'; apply --append;" data-testname="simple append"></div>
<div data-testtype='output-compare' data-output='10' data-tlc="bind $var '.number'; apply --append;" data-testname="simple append of a number"></div>
<div data-testtype='output-compare' data-output='my name is bob' data-tlc="bind $var '.name'; apply --append;" data-testname="append with existing content">my name is </div>
<!-- prepend -->
<div data-testtype='output-compare' data-output='bob' data-tlc="bind $var '.name'; apply --prepend;" data-testname="simple prepend"></div>
<div data-testtype='output-compare' data-output='10' data-tlc="bind $var '.number'; apply --prepend;" data-testname="simple prepend of a number"></div>
<div data-testtype='output-compare' data-output='bob is my name' data-tlc="bind $var '.name'; apply --prepend;" data-testname="prepend with existing content"> is my name</div>
<!-- empty -->
<div data-testtype='output-compare' data-output='' data-tlc="apply --empty;" data-testname="empty compare">this should be empty</div>
<!-- show/hide -->
<div data-testtype='visible' data-visible='false' data-tlc="apply --hide;" data-testname="hide">this should be hidden</div>
<div data-testtype='visible' data-visible='true' style='display:none;' data-tlc="apply --show;" data-testname="show">this should be visible</div>
<!-- add -->
<div data-testtype='add-class' data-class='simple' data-visible='false' data-tlc="apply --add --class='simple';" data-testname="add class">should have 'simple' class.</div>
<!-- need an 'add tag' test -->
<!-- remove -->
<div data-testtype='remove-class' data-class='simple' data-visible='false' data-tlc="apply --remove --class='simple';" data-testname="remove class">should not have 'simple' class.</div>
<div style='border:1px solid #6CF;' id='this-should-be-empty'>
<div id='this-gets-removed' data-tlc="apply --remove --tag='$tag';">This should not be on the DOM.</div>
<div id='this-gets-removed-too' data-tlc="apply --tag --remove;">This should not be on the DOM either.</div>
</div>
<table>
<tr>
<td><input data-testtype='input-value' data-value='bob' data-tlc="bind $var '.name'; apply --select=$var;" data-testname="select (set input value)"></td>
<td><input type='checkbox' data-testtype='is-checked' data-checked='true' data-tlc="bind $var '.boolean-true'; apply --select=$var;" data-testname="select (uncheck)"> should be checked</td>
<td><input type='checkbox' data-testtype='is-checked' data-checked='false' checked='checked' data-tlc="bind $var '.boolean-false'; apply --select=$var;" data-testname="select (checked)"> should NOT be checked</td>
</tr>
<tr>
<td><select data-testtype='input-value' data-value='bob' data-tlc="bind $var '.name'; apply --select=$var;" data-testname="select (set select option/value">
<option>Choose</option>
<option value='frank'>frank</option>
<option value='bob' data-testtype='is-selected' data-selected='true' data-testname="select (option is selected)">bob</option>
<option value='harry' selected data-testtype='is-selected' data-selected='false' data-testname="select (option is NOT selected)">harry</option>
</select></td>
<td colspan='2'>
<input type='radio' name='something' value='frank' data-tlc="bind $var '.name'; apply --select=$var;" checked data-testtype='is-checked' data-checked='false' data-testname="select (is not checked)" />not selected
<input type='radio' name='something' value='bob' data-tlc="bind $var '.name'; apply --select=$var;" data-testtype='is-checked' data-checked='true' data-testname="select (is checked)" />selected
<input type='radio' name='something' value='harry' data-tlc="bind $var '.name'; apply --select=$var;" />not selected
</td>
</tr>
<tr>
<td colspan='2'>
<input type='radio' name='something' value='gene' data-tlc="bind $var '.name'; apply --inputvalue=$var;" data-testtype='input-value' data-value='bob' data-testname="inputvalue" />value is 'gene' by default. should be 'bob' after tlc.
</td>
<td>
<input type='radio' name='something' value='gene' data-tlc="bind $var '.name'; apply --attrib='data-something';" data-testtype='attrib' data-attrib='data-something' data-attribvalue='bob' data-testname="attrib" />
</td>
</tr>
</table>
<!-- replace -->
<div id='child-gets-replaced' style='border:1px solid #ccc;'><div data-testtype='unique' data-tlc="bind $var '.name'; apply --replace;">This should not be here.</div></div>
<div id='child-gets-replaced2' style='border:1px solid #ccc;'><div data-testtype='unique' data-tlc="bind $var '.tag'; apply --replace;">This should not be here.</div></div>
</section>
<section id='format-tests'>
<h6>Used for format tests</h6>
<div data-testtype='output-compare' data-output='my name is bob' data-tlc="bind $var '.name'; format --prepend='my name is '; apply --append;" data-testname="prepend" ></div>
<div data-testtype='output-compare' data-output='bob is my name' data-tlc="bind $var '.name'; format --append=' is my name'; apply --append;" data-testname="append" ></div>
<div data-testtype='output-compare' data-output='$24.95' data-tlc="bind $var '.price'; format --currency='USD'; apply --append;" data-testname="currency (original # has decimal)" ></div>
<div data-testtype='output-compare' data-output='$10.00' data-tlc="bind $var '.number'; format --currency='USD'; apply --append;" data-testname="currency (no decimal in original #)" ></div>
<div data-testtype='output-compare' data-output='$.71' data-tlc="bind $var '.cents'; format --currency='USD'; apply --append;" data-testname="currency (cents)" ></div>
<div data-testtype='output-compare' data-output='$18.90' data-tlc="bind $var '.decimal'; format --currency='USD'; apply --append;" data-testname="currency (one # after the decimal)" ></div>
<div data-testtype='output-compare' data-output='-$5.23' data-tlc="bind $var '.negative-string'; format --currency='USD'; apply --append;" data-testname="currency (negative #)" ></div>
<div data-testtype='output-compare' data-output='4' data-tlc="bind $var '.small-array'; format --length; apply --append;" data-testname="length (array)" ></div>
<div data-testtype='output-compare' data-output='3' data-tlc="bind $var '.name'; format --length; apply --append;" data-testname="length (string)" ></div>
<div data-testtype='output-compare' data-output='long string to use for testing.' data-tlc="bind $var '.long-string'; format --chop='10'; apply --append;" data-testname="chop at 11" ></div>
<div data-testtype='output-compare' data-output='this is a' data-tlc="bind $var '.long-string'; format --truncate='11'; apply --append;" data-testname="truncate at 11 (gets 9 chars)" ></div>
<div data-testtype='output-compare' data-output='unknown' data-tlc="bind $var '.undefined'; format --default='unknown'; apply --append;" data-testname="set default"></div>
<!-- <div data-testtype='output-compare' data-output='bob' data-tlc="bind $name '.name'; bind $var '.undefined'; format --default=$name; apply --append;" data-testname="set default to var"></div> -->
<div data-testtype='output-compare' data-output='this%20is%20a%20long%20string%20to%20use%20for%20testing.' data-tlc="bind $var '.long-string'; format --uriencode; apply --append;" data-testname="uriencode" ></div>
<div data-testtype='output-compare' data-output='BOB' data-tlc="bind $name '.name'; format --uppercase; apply --append;" data-testname="format uppercase"></div>
<div data-testtype='output-compare' data-output='han' data-tlc="bind $name '.uppercase'; format --lowercase; apply --append;" data-testname="format lowercase"></div>
</section>
<!--
<section id='render-tests'>
<h6>Used for render tests</h6>
<div data-testtype='output-compare' data-output='my name is bob' data-tlc="bind $var '.name'; format --prepend='my name is '; apply --append;" data-testname="prepend" ></div>
<div data-testtype='output-compare' data-output='bob is my name' data-tlc="bind $var '.name'; format --append=' is my name'; apply --append;" data-testname="append" ></div>
<div data-testtype='output-compare' data-output='$24.95' data-tlc="bind $var '.price'; format --currency='USD'; apply --append;" data-testname="currency" ></div>
<div data-testtype='output-compare' data-output='some<br>data' data-tlc="bind $var '.price'; render --crbr; apply --append;" data-testname="currency" ></div>
</section>
-->
<section id='math-tests'>
<h6>Used for math tests</h6>
<div data-testtype='output-compare' data-output='20' data-tlc="bind $var '.number'; math --add='10'; apply --append;" data-testname="add" ></div>
<div data-testtype='output-compare' data-output='14.95' data-tlc="bind $var '.price'; math --sub='10'; apply --append;" data-testname="subtract" ></div>
<div data-testtype='output-compare' data-output='30' data-tlc="bind $var '.number'; math --mult='3'; apply --append;" data-testname="multiply" ></div>
<div data-testtype='output-compare' data-output='5' data-tlc="bind $var '.number'; math --div='2'; apply --append;" data-testname="divide" ></div>
<div data-testtype='output-compare' data-output='25' data-tlc="bind $var '.price'; math --precision='0'; apply --append;" data-testname="precision" ></div>
</section>
<section id='time-tests'>
<h6>Used for time tests</h6>
<div data-testtype='output-compare' data-output='3/25/2014' data-tlc="bind $var '.epochts'; datetime --out='mdy'; apply --append;" data-testname="datetime mdy" ></div>
<div data-testtype='output-compare' data-output='Mar 25 2014 15:43' data-tlc="bind $var '.epochts'; datetime --out='pretty'; apply --append;" data-testname="datetime pretty" ></div>
</section>
<section id='stringify-tests'>
<h6>Used for time tests</h6>
<div data-testtype='string-compare' data-string='{"name":"ron","nickname":"tater salad"}' data-tlc="bind $var '.small-hash'; stringify; apply --append;" data-testname="stringify" ></div>
</section>
<section id='comparison-tests'>
<h6>Used for comparison tests in conjunction with 'is'</h6>
<ol>
<li data-testtype='output-compare' data-output='= bob' data-tlc="bind $var '.name'; if(is $var --eq='bob') {{apply --append;}};" data-testname="eq w/ match" >= </li>
<li data-testtype='output-compare' data-output='= ' data-tlc="bind $var '.name'; if(is $var --eq='bobs') {{apply --append;}};" data-testname="eq w/out match" >= </li>
<li data-testtype='output-compare' data-output='!= ' data-tlc="bind $var '.name'; if(is $var --ne='bob') {{apply --append;}};" data-testname="ne w/ match" >!= </li>
<li data-testtype='output-compare' data-output='!= bob' data-tlc="bind $var '.name'; if(is $var --ne='bobs') {{apply --append;}};" data-testname="ne w/out match" >!= </li>
<li data-testtype='output-compare' data-output='gt 10' data-tlc="bind $var '.number'; if(is $var --gt='9') {{apply --append;}};" data-testname="gt true" >gt </li>
<li data-testtype='output-compare' data-output='gt ' data-tlc="bind $var '.number'; if(is $var --gt='11') {{apply --append;}};" data-testname="gt false " >gt </li>
<li data-testtype='output-compare' data-output='gt 10' data-tlc="bind $price '.price'; bind $var '.number'; if(is $var --lt=$price) {{apply --append;}};" data-testname="lt variable comparison " >gt </li>
<li data-testtype='output-compare' data-output='gte ' data-tlc="bind $var '.undefined'; if(is $var --gte='9') {{bind $bob '.name'; apply --append;}};" data-testname="gte undefined false " >gte </li>
<li data-testtype='output-compare' data-output='gte bob' data-tlc="bind $var '.undefined'; if(is $var --gte='0') {{bind $bob '.name'; apply --append;}};" data-testname="gte undefined true (0)" >gte </li>
<li data-testtype='output-compare' data-output='gte bob' data-tlc="bind $var '.undefined'; if(is $var --gte='-5') {{bind $bob '.name'; apply --append;}};" data-testname="gte undefined true " >gte </li>
<li data-testtype='output-compare' data-output='lt 10' data-tlc="bind $var '.number'; if(is $var --lt='11') {{apply --append;}};" data-testname="lt true" >lt </li>
<li data-testtype='output-compare' data-output='lt ' data-tlc="bind $var '.number'; if(is $var --lt='9') {{apply --append;}};" data-testname="lt false " >lt </li>
<li data-testtype='output-compare' data-output='lte 10' data-tlc="bind $var '.number'; if(is $var --lte='11') {{apply --append;}};" data-testname="lte true" >lte </li>
<li data-testtype='output-compare' data-output='lte ' data-tlc="bind $var '.number'; if(is $var --lte='9') {{apply --append;}};" data-testname="lte false " >lte </li>
<li data-testtype='output-compare' data-output='lte bob' data-tlc="bind $var '.undefined'; if(is $var --lte='9') {{bind $bob '.name'; apply --append;}};" data-testname="lte undefined true " >lte </li>
<li data-testtype='output-compare' data-output='lte bob' data-tlc="bind $var '.undefined'; if(is $var --lte='0') {{bind $bob '.name'; apply --append;}};" data-testname="lte undefined true (0)" >lte </li>
<li data-testtype='output-compare' data-output='lte ' data-tlc="bind $var '.undefined'; if(is $var --lte='-5') {{bind $bob '.name'; apply --append;}};" data-testname="lte undefined false " >lte </li>
<li data-testtype='output-compare' data-output='inteq 10' data-tlc="bind $var '.number'; if(is $var --inteq='10') {{apply --append;}};" data-testname="inteq true " >inteq </li>
<li data-testtype='output-compare' data-output='inteq ' data-tlc="bind $var '.number'; if(is $var --inteq='11') {{apply --append;}};" data-testname="inteq false " >inteq </li>
<li data-testtype='output-compare' data-output='intne ' data-tlc="bind $var '.number'; if(is $var --intne='10') {{apply --append;}};" data-testname="inteq false " >intne </li>
<li data-testtype='output-compare' data-output='intne 10' data-tlc="bind $var '.number'; if(is $var --intne='11') {{apply --append;}};" data-testname="inteq true " >intne </li>
<!-- true -->
<li data-testtype='output-compare' data-output='true true' data-tlc="bind $var '.boolean-true'; if(is $var --true) {{apply --append;}};" data-testname="true - value from .boolean-true" >true </li>
<li data-testtype='output-compare' data-output='true bob' data-tlc="bind $var '.name'; if(is $var --true) {{apply --append;}};" data-testname="true - value from .name" >true </li>
<li data-testtype='output-compare' data-output='true 10' data-tlc="bind $var '.number'; if(is $var --true) {{apply --append;}};" data-testname="true - value from .number" >true </li>
<li data-testtype='output-compare' data-output='true ' data-tlc="bind $var '.boolean-false'; if(is $var --true) {{apply --append;}};" data-testname="true - value from .boolean-false" >true </li>
<li data-testtype='output-compare' data-output='true ' data-tlc="bind $var '.blank'; if(is $var --true) {{apply --append;}};" data-testname="true - value from .blank" >true </li>
<li data-testtype='output-compare' data-output='true ' data-tlc="bind $var '.null'; if(is $var --true) {{apply --append;}};" data-testname="true - value from .null" >true </li>
<!-- false -->
<li data-testtype='output-compare' data-output='false ' data-tlc="bind $var '.boolean-true'; if(is $var --false) {{apply --append;}};" data-testname="false - value from .boolean-true" >false </li>
<li data-testtype='output-compare' data-output='false ' data-tlc="bind $var '.name'; if(is $var --false) {{apply --append;}};" data-testname="false - value from .name" >false </li>
<li data-testtype='output-compare' data-output='false ' data-tlc="bind $var '.number'; if(is $var --false) {{apply --append;}};" data-testname="false - value from .number" >false </li>
<li data-testtype='output-compare' data-output='false false' data-tlc="bind $var '.boolean-false'; if(is $var --false) {{apply --append;}};" data-testname="false - value from .boolean-false" >false </li>
<li data-testtype='output-compare' data-output='false ' data-tlc="bind $var '.blank'; if(is $var --false) {{apply --append;}};" data-testname="false - value from .blank" >false </li>
<li data-testtype='output-compare' data-output='false ' data-tlc="bind $var '.null'; if(is $var --false) {{apply --append;}};" data-testname="false - value from .null" >false </li>
<!-- blank -->
<li data-testtype='output-compare' data-output='blank ' data-tlc="bind $var '.boolean-true'; if(is $var --blank) {{apply --append;}};" data-testname="blank - value from .boolean-true" >blank </li>
<li data-testtype='output-compare' data-output='blank ' data-tlc="bind $var '.name'; if(is $var --blank) {{apply --append;}};" data-testname="blank - value from .name" >blank </li>
<li data-testtype='output-compare' data-output='blank ' data-tlc="bind $var '.number'; if(is $var --blank) {{apply --append;}};" data-testname="blank - value from .number" >blank </li>
<!-- 'false' is currently treated as NOT blank -->
<li data-testtype='output-compare' data-output='blank ' data-tlc="bind $var '.boolean-false'; if(is $var --blank) {{apply --append;}};" data-testname="blank - value from .boolean-false">blank </li>
<li data-testtype='output-compare' data-output='string false blank ' data-tlc="bind $var '.string-false'; if(is $var --blank) {{apply --append;}};" data-testname="blank - value from .string-false">string false blank </li>
<li data-testtype='output-compare' data-output='blank ' data-tlc="bind $var '.blank'; if(is $var --blank) {{apply --append;}};" data-testname="blank - value from .blank" >blank </li>
<li data-testtype='output-compare' data-output='blank ' data-tlc="bind $var '.null'; if(is $var --blank) {{apply --append;}};" data-testname="blank - value from .null" >blank </li>
<!-- notblank -->
<li data-testtype='output-compare' data-output='notblank true' data-tlc="bind $var '.boolean-true'; if(is $var --notblank) {{apply --append;}};" data-testname="notblank - value from .boolean-true" >notblank </li>
<li data-testtype='output-compare' data-output='notblank bob' data-tlc="bind $var '.name'; if(is $var --notblank) {{apply --append;}};" data-testname="notblank - value from .name" >notblank </li>
<li data-testtype='output-compare' data-output='notblank 10' data-tlc="bind $var '.number'; if(is $var --notblank) {{apply --append;}};" data-testname="notblank - value from .number" >notblank </li>
<li data-testtype='output-compare' data-output='notblank false' data-tlc="bind $var '.boolean-false'; if(is $var --notblank) {{apply --append;}};" data-testname="notblank - value from .boolean-false">notblank </li>
<li data-testtype='output-compare' data-output='notblank ' data-tlc="bind $var '.blank'; if(is $var --notblank) {{apply --append;}};" data-testname="notblank - value from .blank" >notblank </li>
<li data-testtype='output-compare' data-output='notblank ' data-tlc="bind $var '.null'; if(is $var --notblank) {{apply --append;}};" data-testname="notblank - value from .null" >notblank </li>
<!-- null -->
<li data-testtype='output-compare' data-output='null ' data-tlc="bind $var '.boolean-true'; if(is $var --null) {{apply --append;}};" data-testname="null - value from .boolean-true" >null </li>
<li data-testtype='output-compare' data-output='null ' data-tlc="bind $var '.name'; if(is $var --null) {{apply --append;}};" data-testname="null - value from .name" >null </li>
<li data-testtype='output-compare' data-output='null ' data-tlc="bind $var '.number'; if(is $var --null) {{apply --append;}};" data-testname="null - value from .number" >null </li>
<li data-testtype='output-compare' data-output='null ' data-tlc="bind $var '.boolean-false'; if(is $var --null) {{apply --append;}};" data-testname="null - value from .boolean-false" >null </li>
<li data-testtype='output-compare' data-output='null ' data-tlc="bind $var '.blank'; if(is $var --null) {{bind $name '.name'; apply --append;}};" data-testname="null - value from .blank" >null </li>
<!-- .name is used for the actual output because testing for a blank against what would output as a blank could give inaccurate results. -->
<li data-testtype='output-compare' data-output='null bob' data-tlc="bind $var '.null'; if(is $var --null) {{bind $name '.name'; apply --append;}};" data-testname="null - value from .null" >null </li>
<!-- notnull -->
<li data-testtype='output-compare' data-output='notnull true' data-tlc="bind $var '.boolean-true'; if(is $var --notnull) {{apply --append;}};" data-testname="notnull - value from .boolean-true" >notnull </li>
<li data-testtype='output-compare' data-output='notnull bob' data-tlc="bind $var '.name'; if(is $var --notnull) {{apply --append;}};" data-testname="notnull - value from .name" >notnull </li>
<li data-testtype='output-compare' data-output='notnull 10' data-tlc="bind $var '.number'; if(is $var --notnull) {{apply --append;}};" data-testname="notnull - value from .number" >notnull </li>
<li data-testtype='output-compare' data-output='notnull false' data-tlc="bind $var '.boolean-false'; if(is $var --notnull) {{apply --append;}};" data-testname="notnull - value from .boolean-false" >notnull </li>
<li data-testtype='output-compare' data-output='notnull bob' data-tlc="bind $var '.blank'; if(is $var --notnull) {{bind $name '.name'; apply --append;}};" data-testname="notnull - value from .blank" >notnull </li>
<!-- .name is used for the actual output because testing for a blank against what would output as a blank could give inaccurate results. -->
<li data-testtype='output-compare' data-output='notnull ' data-tlc="bind $var '.null'; if(is $var --notnull) {{bind $name '.name'; apply --append;}};" data-testname="notnull - value from .null" >notnull </li>
<!-- regex -->
<!-- ### TODO -> NOT DONE YET. need regex, templateidexists and notregex -->
</ol>
</section>
<section id='render-tests'>
<h6>Used for render tests</h6>
<div data-testtype='output-compare' data-output="<h1>This is some html</h1><p>Isn't it wonderful</p>" data-tlc="bind $var '.html'; render --text; apply --append;" data-testname="render as text"></div>
<!-- ### TODO -> need more wiki tests -->
<div data-testtype='output-compare' data-output="This is a wiki h1" data-tlc="bind $var '.wiki'; render --wiki; apply --append;" data-testname="render as wiki"></div>
</section>
</div><!-- /sampleTemplate -->
</body>
</html>