|
5 | 5 | */
|
6 | 6 | var assert = require('assert');
|
7 | 7 | var util = require('util');
|
8 |
| -var parseDOM = require('../lib/html-to-dom'); |
| 8 | +var jsdomify = require('jsdomify').default; |
9 | 9 | var htmlparser = require('htmlparser2');
|
| 10 | +var parseDOM = require('../lib/html-to-dom'); |
| 11 | +var formatDOM = require('../lib/html-to-dom-client'); |
| 12 | +var helpers = require('./helpers/'); |
10 | 13 | var data = require('./data');
|
11 | 14 |
|
12 | 15 | /**
|
13 |
| - * Tests for `parseDOM`. |
| 16 | + * Tests for HTML to DOM parser. |
14 | 17 | */
|
15 |
| -describe('html-to-dom parser', function() { |
16 |
| - |
17 |
| - it('works the same as `require("htmlparser2").parseDOM`', function() { |
18 |
| - var html = data.html.complex; |
19 |
| - // use `util.inspect` to resolve circular references |
20 |
| - assert.equal( |
21 |
| - util.inspect(parseDOM(html), { showHidden: true, depth: null }), |
22 |
| - util.inspect(htmlparser.parseDOM(html), { showHidden: true, depth: null }) |
23 |
| - ); |
| 18 | +describe('html-to-dom', function() { |
| 19 | + |
| 20 | + /** |
| 21 | + * Node environment. |
| 22 | + */ |
| 23 | + describe('server parser', function() { |
| 24 | + |
| 25 | + it('works the same as `require("htmlparser2").parseDOM`', function() { |
| 26 | + var html = data.html.complex; |
| 27 | + // use `util.inspect` to resolve circular references |
| 28 | + assert.equal( |
| 29 | + util.inspect(parseDOM(html), { showHidden: true, depth: null }), |
| 30 | + util.inspect(htmlparser.parseDOM(html), { showHidden: true, depth: null }) |
| 31 | + ); |
| 32 | + }); |
| 33 | + |
| 34 | + }); |
| 35 | + |
| 36 | + /** |
| 37 | + * Browser environment. |
| 38 | + */ |
| 39 | + describe('client parser', function() { |
| 40 | + |
| 41 | + // setup mock browser environment |
| 42 | + before(function() { |
| 43 | + jsdomify.create(); |
| 44 | + }); |
| 45 | + |
| 46 | + // teardown mock browser environment |
| 47 | + after(function() { |
| 48 | + jsdomify.destroy(); |
| 49 | + }); |
| 50 | + |
| 51 | + it('formats the nodes like `htmlparser2.parseDOM`', function() { |
| 52 | + var html = data.html.attributes + data.html.nested + data.html.comment + data.html.script; |
| 53 | + var root = document.createElement('div'); |
| 54 | + root.innerHTML = html; |
| 55 | + var clientNodes = formatDOM(root.childNodes); |
| 56 | + var serverNodes = parseDOM(html); |
| 57 | + helpers.deepEqualCircular(clientNodes, serverNodes); |
| 58 | + }); |
| 59 | + |
24 | 60 | });
|
25 | 61 |
|
26 | 62 | });
|
0 commit comments