UNPKG

2.31 kBJavaScriptView Raw
1var assert = require('assert'),
2 cleaner = require('./index.js');
3
4// test that text is unchanged
5assert.equal(cleaner.clean('Foo Bar'), 'Foo Bar');
6
7// test that extra whitespace is removed
8assert.equal(cleaner.clean('Foo Bar'), 'Foo Bar');
9assert.equal(cleaner.clean('Foo\nBar'), 'Foo Bar');
10
11// test that uppercase tags and attributes are lowercased
12assert.equal(cleaner.clean('<FOO BAR="QUX">Bam</FOO>'), '<foo bar="qux">Bam</foo>');
13
14// test that deprecated tags are removed
15assert.equal(cleaner.clean('foo <font="arial">bar</font>'), 'foo bar');
16
17// test that trailing slash is removed from empty element tag
18assert.equal(cleaner.clean('<br />'), '<br>');
19assert.equal(cleaner.clean('<br/>'), '<br>');
20assert.equal(cleaner.clean('<br>'), '<br>');
21assert.equal(cleaner.clean('<br />', {'close-empty-tags': true}), '<br/>');
22assert.equal(cleaner.clean('<br/>', {'close-empty-tags': true}), '<br/>');
23assert.equal(cleaner.clean('<br>', {'close-empty-tags': true}), '<br/>');
24
25// test that legacy attributes are removed
26assert.equal(cleaner.clean('<foo color="red">'), '<foo>');
27
28// test that comments are removed
29assert.equal(cleaner.clean('foo<!-- bar -->'), 'foo<!-- bar -->');
30assert.equal(cleaner.clean('foo<!-- bar -->', {'remove-comments': true}), 'foo');
31
32// test that line breaks are added before and after block element tags
33assert.equal(cleaner.clean('foo<div></div>foo'), 'foo\n<div>\n</div>\nfoo');
34assert.equal(cleaner.clean('foo<div></div>foo', {'pretty': false}), 'foo<div></div>foo');
35
36// test that line break is added after br element tag
37assert.equal(cleaner.clean('foo<br>foo'), 'foo<br>\nfoo');
38assert.equal(cleaner.clean('foo<br>foo', {'break-after-br': false}), 'foo<br>foo');
39assert.equal(cleaner.clean('foo<br>foo', {'pretty': false}), 'foo<br>foo');
40
41// test that nested tags are indented after block element tags
42assert.equal(cleaner.clean('<div>bar</div>'), '<div>\n bar\n</div>');
43assert.equal(cleaner.clean('<div><div>bar</div></div>'), '<div>\n <div>\n bar\n </div>\n</div>');
44assert.equal(cleaner.clean('<div>bar</div>', {'indent': ' '}), '<div>\n bar\n</div>');
45assert.equal(cleaner.clean('<div>bar</div>', {'pretty': false}), '<div>bar</div>');
46
47// test that output is trimmed
48assert.equal(cleaner.clean(' Foo\n'), 'Foo');
49
50process.stdout.write('all tests passed\n');