aboutsummaryrefslogtreecommitdiff
path: root/tests/html
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-13 22:10:42 +0100
committerMichael Williamson <mike@zwobble.org>2015-10-13 22:10:42 +0100
commitaac776b1711d1e286812035a28108c622e73994a (patch)
tree366673f18143771fabbadb0fcef86d638ce33f43 /tests/html
parent2fb7a36230b167aac99fe8d43959833bd3b244dd (diff)
Add simplification of nodes
Diffstat (limited to 'tests/html')
-rw-r--r--tests/html/ast.tests.js8
-rw-r--r--tests/html/simplify.tests.js36
2 files changed, 40 insertions, 4 deletions
diff --git a/tests/html/ast.tests.js b/tests/html/ast.tests.js
index c851377..c2a1479 100644
--- a/tests/html/ast.tests.js
+++ b/tests/html/ast.tests.js
@@ -7,14 +7,14 @@ var html = require("../../lib/html");
describe("HTML ast", function() {
test("nested fragments are collapsed", function() {
assert.deepEqual(
- html.fragment([html.fragment([html.text("Hello")])]),
- html.fragment([html.text("Hello")]));
+ html.fragment([html.text("Hello")]),
+ html.fragment([html.fragment([html.text("Hello")])]));
});
test("children of elements are collapsed", function() {
assert.deepEqual(
- html.element("p", {}, [html.fragment([html.text("Hello")])]),
- html.element("p", {}, [html.text("Hello")]));
+ html.element("p", {}, [html.text("Hello")]),
+ html.element("p", {}, [html.fragment([html.text("Hello")])]));
});
});
diff --git a/tests/html/simplify.tests.js b/tests/html/simplify.tests.js
new file mode 100644
index 0000000..7893663
--- /dev/null
+++ b/tests/html/simplify.tests.js
@@ -0,0 +1,36 @@
+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")])]));
+ });
+});