diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-13 22:10:42 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-13 22:10:42 +0100 |
| commit | aac776b1711d1e286812035a28108c622e73994a (patch) | |
| tree | 366673f18143771fabbadb0fcef86d638ce33f43 /tests/html | |
| parent | 2fb7a36230b167aac99fe8d43959833bd3b244dd (diff) | |
Add simplification of nodes
Diffstat (limited to 'tests/html')
| -rw-r--r-- | tests/html/ast.tests.js | 8 | ||||
| -rw-r--r-- | tests/html/simplify.tests.js | 36 |
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")])])); + }); +}); |
