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
|
var assert = require("assert");
var test = require("../testing").test;
var html = require("../../lib/html");
var htmlPaths = require("../../lib/html-paths");
var fragment = html.fragment;
var element = html.element;
var text = html.text;
var pathToNode = html.pathToNode;
describe("simplify", function() {
test("successive fresh elements are not collapsed", function() {
var path = htmlPaths.elements([
htmlPaths.element("p", {}, {fresh: true})]);
var original = fragment([
pathToNode(path, [text("Hello")]),
pathToNode(path, [text(" there")])]);
assert.deepEqual(
html.simplify(original),
original);
});
test("successive plain non-fresh elements are collapsed if they have the same tag name", function() {
var path = htmlPaths.elements([
htmlPaths.element("p", {}, {fresh: false})]);
assert.deepEqual(
html.simplify(fragment([
pathToNode(path, [text("Hello")]),
pathToNode(path, [text(" there")])])),
fragment([
pathToNode(path, [text("Hello"), text(" there")])]));
});
test("non-fresh can collapse into preceding non-fresh element", function() {
var freshPath = htmlPaths.elements([
htmlPaths.element("p", {}, {fresh: true})]);
var nonFreshPath = htmlPaths.elements([
htmlPaths.element("p", {}, {fresh: false})]);
assert.deepEqual(
html.simplify(fragment([
pathToNode(freshPath, [text("Hello")]),
pathToNode(nonFreshPath, [text(" there")])])),
fragment([
pathToNode(freshPath, [text("Hello"), text(" there")])]));
});
});
|