UNPKG

1.95 kBJavaScriptView Raw
1var Lab = require('lab');
2var VM = require('../lib/vm');
3
4var assert = require('chai').assert;
5
6exports.assertHtml = function(template, src, result, options, callback) {
7 src = src.join('\n');
8 var env = {};
9 var context = {
10 items: [1,2,3],
11 idHelper: 'notice',
12 outputNumber: 1337,
13 helloWorld: 'Hello World from @env',
14 showFirst: function(force) {
15 if (force !== undefined) {
16 return force;
17 }
18 return false;
19 },
20 x: 0,
21 message: function(m1, m2){
22 if (!m2) {
23 return m1;
24 }
25 return [m1, m2].join(' ');
26 },
27 helloBlock: function(callback) {
28 return this.helloWorld + ' ' + callback() + ' ' + this.helloWorld;
29 },
30 block: function(callback) {
31 return VM.safe(callback());
32 },
33 content: function() {
34 switch (arguments.length) {
35 case 0:
36 return env[''];
37 case 1:
38 return env[arguments[0]];
39 case 2:
40 var arg = arguments[0];
41 if (!arg) {
42 return arguments[1]();
43 }
44 return env[arg] || arguments[1]();
45 }
46 },
47 evilMethod: function() {
48 return '<script>do_something_evil();</script>';
49 }
50 };
51 assert.deepEqual(template.render(src, context, options), result);
52 if (callback) {
53 callback();
54 }
55};
56
57exports.assertSyntaxError = function(template, src, result, options, callback) {
58 src = src.join('\n');
59 var context = {
60 idHelper: 'notice',
61 outputNumber: 1337,
62 helloWorld: 'Hello World from @env',
63 showFirst: function(force) {
64 if (force !== undefined) {
65 return force;
66 }
67 return false;
68 },
69 x: 0,
70 message: function(v){ return v; },
71 helloBlock: function(callback) {
72 return this.helloWorld + ' ' + callback() + ' ' + this.helloWorld;
73 }
74 };
75 assert.throw(function() {
76 template.render(src, context, options);
77 }, result);
78
79 if (callback) {
80 callback();
81 }
82
83};