1 | var assert = require("assert"),
|
2 | form = require("../index"),
|
3 | filter = form.filter;
|
4 |
|
5 | module.exports = {
|
6 | 'filter : trim': function() {
|
7 | var request = { body: { field: "\r\n value \t" }};
|
8 | form(filter("field").trim())(request, {});
|
9 | assert.equal(request.form.field, "value");
|
10 | },
|
11 |
|
12 | 'filter : ltrim': function() {
|
13 | var request = { body: { field: "\r\n value \t" }};
|
14 | form(filter("field").ltrim())(request, {});
|
15 | assert.equal(request.form.field, "value \t");
|
16 | },
|
17 |
|
18 | 'filter : rtrim': function() {
|
19 | var request = { body: { field: "\r\n value \t" }};
|
20 | form(filter("field").rtrim())(request, {});
|
21 | assert.equal(request.form.field, "\r\n value");
|
22 | },
|
23 |
|
24 | 'filter : ifNull': function() {
|
25 |
|
26 | var request = { body: {} };
|
27 | form(filter("field").ifNull("value"))(request, {});
|
28 | assert.equal(request.form.field, "value");
|
29 |
|
30 |
|
31 | var request = { body: { field: "" }};
|
32 | form(filter("field").ifNull("value"))(request, {});
|
33 | assert.equal(request.form.field, "value");
|
34 |
|
35 |
|
36 | var request = { body: { field: null }};
|
37 | form(filter("field").ifNull("value"))(request, {});
|
38 | assert.equal(request.form.field, "value");
|
39 |
|
40 |
|
41 | var request = { body: { field: undefined }};
|
42 | form(filter("field").ifNull("value"))(request, {});
|
43 | assert.equal(request.form.field, "value");
|
44 |
|
45 |
|
46 | var request = { body: { field: false }};
|
47 | form(filter("field").ifNull("value"))(request, {});
|
48 | assert.equal(request.form.field, false);
|
49 |
|
50 |
|
51 | var request = { body: { field: 0 }};
|
52 | form(filter("field").ifNull("value"))(request, {});
|
53 | assert.equal(request.form.field, 0);
|
54 | },
|
55 |
|
56 | 'filter : toFloat': function() {
|
57 | var request = { body: { field: "50.01" }};
|
58 | form(filter("field").toFloat())(request, {});
|
59 | assert.ok(typeof request.form.field == "number");
|
60 | assert.equal(request.form.field, 50.01);
|
61 |
|
62 | var request = { body: { field: "fail" }};
|
63 | form(filter("field").toFloat())(request, {});
|
64 | assert.ok(typeof request.form.field == "number");
|
65 | assert.ok(isNaN(request.form.field));
|
66 | },
|
67 |
|
68 | 'filter : toInt': function() {
|
69 | var request = { body: { field: "50.01" }};
|
70 | form(filter("field").toInt())(request, {});
|
71 | assert.ok(typeof request.form.field == "number");
|
72 | assert.equal(request.form.field, 50);
|
73 |
|
74 | var request = { body: { field: "fail" }};
|
75 | form(filter("field").toInt())(request, {});
|
76 | assert.ok(typeof request.form.field == "number");
|
77 | assert.ok(isNaN(request.form.field));
|
78 | },
|
79 |
|
80 | 'filter : toBoolean': function() {
|
81 |
|
82 | var request = { body: {
|
83 | field1: true,
|
84 | field2: "true",
|
85 | field3: "hi",
|
86 | field4: new Date(),
|
87 | field5: 50,
|
88 | field6: -1,
|
89 | field7: "3000"
|
90 | }};
|
91 | form(
|
92 | filter("field1").toBoolean(),
|
93 | filter("field2").toBoolean(),
|
94 | filter("field3").toBoolean(),
|
95 | filter("field4").toBoolean(),
|
96 | filter("field5").toBoolean(),
|
97 | filter("field6").toBoolean(),
|
98 | filter("field7").toBoolean()
|
99 | )(request, {});
|
100 | "1234567".split("").forEach(function(i) {
|
101 | var name = "field" + i;
|
102 | assert.strictEqual(typeof request.form[name], "boolean");
|
103 | assert.strictEqual(request.form[name], true);
|
104 | });
|
105 |
|
106 |
|
107 | var request = { body: {
|
108 | field1: false,
|
109 | field2: "false",
|
110 | field3: null,
|
111 | field4: undefined,
|
112 | field5: 0,
|
113 | field6: "0",
|
114 | field7: ""
|
115 | }};
|
116 | form(
|
117 | filter("field1").toBoolean(),
|
118 | filter("field2").toBoolean(),
|
119 | filter("field3").toBoolean(),
|
120 | filter("field4").toBoolean(),
|
121 | filter("field5").toBoolean(),
|
122 | filter("field6").toBoolean(),
|
123 | filter("field7").toBoolean()
|
124 | )(request, {});
|
125 | "1234567".split("").forEach(function(i) {
|
126 | var name = "field" + i;
|
127 | assert.strictEqual(typeof request.form[name], "boolean");
|
128 | assert.strictEqual(request.form[name], false);
|
129 | });
|
130 | },
|
131 |
|
132 | 'filter : toBooleanStrict': function() {
|
133 |
|
134 | var request = { body: {
|
135 | field1: true,
|
136 | field2: "true",
|
137 | field3: 1,
|
138 | field4: "1"
|
139 | }};
|
140 | form(
|
141 | filter("field1").toBooleanStrict(),
|
142 | filter("field2").toBooleanStrict(),
|
143 | filter("field3").toBooleanStrict(),
|
144 | filter("field4").toBooleanStrict()
|
145 | )(request, {});
|
146 | "1234".split("").forEach(function(i) {
|
147 | var name = "field" + i;
|
148 | assert.strictEqual(typeof request.form[name], "boolean");
|
149 | assert.strictEqual(request.form[name], true);
|
150 | });
|
151 |
|
152 |
|
153 | var request = { body: {
|
154 | field1: false,
|
155 | field2: "false",
|
156 | field3: null,
|
157 | field4: undefined,
|
158 | field5: 0,
|
159 | field6: "0",
|
160 | field7: "",
|
161 | field8: new Date(),
|
162 | field9: 50,
|
163 | field0: -1,
|
164 | fielda: "3000"
|
165 | }};
|
166 | form(
|
167 | filter("field1").toBooleanStrict(),
|
168 | filter("field2").toBooleanStrict(),
|
169 | filter("field3").toBooleanStrict(),
|
170 | filter("field4").toBooleanStrict(),
|
171 | filter("field5").toBooleanStrict(),
|
172 | filter("field6").toBooleanStrict(),
|
173 | filter("field7").toBooleanStrict(),
|
174 | filter("field8").toBooleanStrict(),
|
175 | filter("field9").toBooleanStrict(),
|
176 | filter("field0").toBooleanStrict(),
|
177 | filter("fielda").toBooleanStrict()
|
178 | )(request, {});
|
179 | "1234567890a".split("").forEach(function(i) {
|
180 | var name = "field" + i;
|
181 | assert.strictEqual(typeof request.form[name], "boolean");
|
182 | assert.strictEqual(request.form[name], false);
|
183 | });
|
184 | },
|
185 |
|
186 | 'filter : entityEncode': function() {
|
187 |
|
188 | var request = { body: { field: "&\"<>hello!" }};
|
189 | form(filter("field").entityEncode())(request, {});
|
190 | assert.equal(request.form.field, "&"<>hello!");
|
191 | },
|
192 |
|
193 | 'filter : entityDecode': function() {
|
194 | var request = { body: { field: "&"<>hello!" }};
|
195 | form(filter("field").entityDecode())(request, {});
|
196 | assert.equal(request.form.field, "&\"<>hello!");
|
197 | },
|
198 |
|
199 | 'filter : toUpper': function() {
|
200 | var request = { body: { field: "hellö!" }};
|
201 | form(filter("field").toUpper())(request, {});
|
202 | assert.equal(request.form.field, "HELLÖ!");
|
203 | },
|
204 |
|
205 | 'filter : toUpper : object': function() {
|
206 | var request = { body: { email: { key: '1' }}};
|
207 | form(filter("email").toUpper())(request, {});
|
208 | assert.strictEqual(request.form.email, '[OBJECT OBJECT]');
|
209 | },
|
210 |
|
211 | 'filter : toUpper : array': function() {
|
212 | var request = { body: { email: ['MyEmaiL1@example.com', 'myemail2@example.org'] }};
|
213 | form(filter("email").toUpper())(request, {});
|
214 | assert.strictEqual(request.form.email, 'MYEMAIL1@EXAMPLE.COM');
|
215 | },
|
216 |
|
217 | 'filter : toLower': function() {
|
218 | var request = { body: { field: "HELLÖ!" }};
|
219 | form(filter("field").toLower())(request, {});
|
220 | assert.equal(request.form.field, "hellö!");
|
221 | },
|
222 |
|
223 | 'filter : toLower : object': function() {
|
224 | var request = { body: { email: { key: '1' }}};
|
225 | form(filter("email").toLower())(request, {});
|
226 | assert.strictEqual(request.form.email, '[object object]');
|
227 | },
|
228 |
|
229 | 'filter : toLower : array': function() {
|
230 | var request = { body: { email: ['MyEmaiL1@example.com', 'myemail2@example.org'] }};
|
231 | form(filter("email").toLower())(request, {});
|
232 | assert.strictEqual(request.form.email, 'myemail1@example.com');
|
233 | },
|
234 |
|
235 | 'filter : truncate': function() {
|
236 | var request = { body: {
|
237 | field1: "1234567890",
|
238 | field2: "",
|
239 | field3: "123",
|
240 | field4: "123456",
|
241 | field5: "1234567890"
|
242 | }};
|
243 | form(
|
244 | filter("field1").truncate(3),
|
245 | filter("field2").truncate(3),
|
246 | filter("field3").truncate(3),
|
247 | filter("field4").truncate(5),
|
248 | filter("field5").truncate(7)
|
249 | )(request, {});
|
250 | assert.equal(request.form.field1, "...");
|
251 | assert.equal(request.form.field2, "");
|
252 | assert.equal(request.form.field3, "123");
|
253 | assert.equal(request.form.field4, "12...");
|
254 | assert.equal(request.form.field5, "1234...");
|
255 | },
|
256 |
|
257 | 'filter : truncate : object': function() {
|
258 | var request = { body: { email: { key: '1', length: 100 }}};
|
259 | form(filter("email").truncate(10))(request, {});
|
260 | assert.strictEqual(request.form.email, '[object...');
|
261 | },
|
262 |
|
263 | 'filter : truncate : array': function() {
|
264 | var request = { body: { email: ['myemail1@example.com', 'myemail2@example.org'] }};
|
265 | form(filter("email").truncate(11))(request, {});
|
266 | assert.strictEqual(request.form.email, 'myemail1...');
|
267 | },
|
268 |
|
269 | 'filter : custom': function() {
|
270 | var request = { body: { field: "value!" }};
|
271 | form(filter("field").custom(function(value) {
|
272 | return "!!!";
|
273 | }))(request, {});
|
274 | assert.equal(request.form.field, "!!!");
|
275 | }
|
276 |
|
277 | }; |
\ | No newline at end of file |