@@ -147,19 +147,38 @@ procedure TTestTemplateFor.TestDataSet;
147
147
var
148
148
ds: TDataSet;
149
149
begin
150
+ // traditional
150
151
ds := CreateMockUsersTable();
151
152
try
152
153
Assert.AreEqual(' joe pete jane ' , //
153
154
Template.Eval(' <% for i in _ %><% _['' name'' ] %> <%end%>' , ds));
154
155
finally
155
156
ds.Free;
156
157
end ;
158
+ // index in
159
+ ds := CreateMockUsersTable();
160
+ try
161
+ Assert.AreEqual(' 0 1 2 ' , //
162
+ Template.Eval(' <% for i in _ %><% i %> <%end%>' , ds));
163
+ finally
164
+ ds.Free;
165
+ end ;
166
+ // index of
167
+ ds := CreateMockUsersTable();
168
+ try
169
+ Assert.AreEqual(' joe pete jane ' , //
170
+ Template.Eval(' <% for i of _ %><% i['' name'' ] %> <%end%>' , ds));
171
+ finally
172
+ ds.Free;
173
+ end ;
174
+
157
175
end ;
158
176
159
177
procedure TTestTemplateFor.TestDataSetWithEvent ;
160
178
var
161
179
ds: TDataSet;
162
180
begin
181
+ // traditional
163
182
ds := CreateMockUsersTable();
164
183
try
165
184
Assert.AreEqual(' <ul><li>joe</li><li>pete</li><li>jane</li></ul>' , //
@@ -175,6 +194,40 @@ procedure TTestTemplateFor.TestDataSetWithEvent;
175
194
finally
176
195
ds.Free;
177
196
end ;
197
+
198
+ // using index in
199
+ ds := CreateMockUsersTable();
200
+ try
201
+ Assert.AreEqual(' <ul><li>0</li><li>1</li><li>2</li></ul>' , //
202
+ Template.Eval(' <% for i in _ %><li><% i %></li><% onbegin%><ul><%onend%></ul><%end%>' , ds));
203
+
204
+ ds.Delete();
205
+ ds.Delete();
206
+ ds.Delete();
207
+
208
+ Assert.AreEqual(' <h1>No values</h1>' , //
209
+ Template.Eval(' <% for i in _ %><li><% i %></li><% onbegin%><ul><%onend%></ul><% onempty%><h1>No values</h1><%end%>' , ds));
210
+
211
+ finally
212
+ ds.Free;
213
+ end ;
214
+
215
+ // using index of
216
+ ds := CreateMockUsersTable();
217
+ try
218
+ Assert.AreEqual(' <ul><li>joe</li><li>pete</li><li>jane</li></ul>' , //
219
+ Template.Eval(' <% for i of _ %><li><% i['' name'' ] %></li><% onbegin%><ul><%onend%></ul><%end%>' , ds));
220
+
221
+ ds.Delete();
222
+ ds.Delete();
223
+ ds.Delete();
224
+
225
+ Assert.AreEqual(' <h1>No values</h1>' , //
226
+ Template.Eval(' <% for i in _ %><li><% ['' name'' ] %></li><% onbegin%><ul><%onend%></ul><% onempty%><h1>No values</h1><%end%>' , ds));
227
+
228
+ finally
229
+ ds.Free;
230
+ end ;
178
231
end ;
179
232
180
233
procedure TTestTemplateFor.TestDataSetCount ;
0 commit comments