-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathdataelement-tests.js
95 lines (89 loc) · 2.86 KB
/
dataelement-tests.js
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
var should = require('should');
var helpers = require('./helpers');
describe('dataElement', function () {
it('as string', function() {
var dataCount = 0;
helpers.parseString('<?php echo "<html></html>" ?>', {
php: function(value) {
value.should.equal(' echo "<html></html>" ');
dataCount++;
}
}, {
dataElements: {
php: {
start: '<?php',
end: '?>'
}
}
});
dataCount.should.equal(1);
});
it('as regex', function() {
var dataCount = 0, openCount = 0, closeCount = 0;
helpers.parseString('<foo><?= "<div>$var</div>" ?></foo>', {
openElement: function(name) {
name.should.equal('foo');
openCount++;
},
closeElement: function(name) {
name.should.equal('foo');
closeCount++;
},
phpEcho: function(value) {
openCount.should.equal(1);
closeCount.should.equal(0);
value.should.equal(' "<div>$var</div>" ');
dataCount++;
}
}, {
dataElements: {
phpEcho: {
start: /^<\?=/,
end: /\?>/
}
}
});
dataCount.should.equal(1);
openCount.should.equal(1);
closeCount.should.equal(1);
});
it('as function', function() {
var dataCount = 0;
helpers.parseString('<!-- test --><?php\nfoo\n?>', {
comment: function (value) {
value.should.equal(' test ');
dataCount++;
},
php: function(value) {
value.should.deepEqual({
value: '\nfoo\n',
length: '\nfoo\n'.length
});
dataCount++;
}
}, {
dataElements: {
php: {
start: function (substring) {
return substring.slice(0, 5) === '<?php' ? 5 : -1;
},
data: function (substring) {
substring.should.equal('\nfoo\n?>');
dataCount++;
var index = substring.indexOf('?>');
return {
value: substring.slice(0, index),
length: substring.slice(0, index).length
};
},
end: function (substring) {
substring.should.equal('?>');
dataCount++;
return 2;
}
}
}
});
dataCount.should.equal(4);
});
});