[Pkg-javascript-commits] [uglifyjs] 89/190: Add some tests for comment-filters through api

Antonio Terceiro terceiro at moszumanska.debian.org
Sun Aug 7 23:17:16 UTC 2016


This is an automated email from the git hooks/post-receive script.

terceiro pushed a commit to annotated tag upstream/2.7.0
in repository uglifyjs.

commit 70e5b6f15b130eb1366ff81e0a8a7f187e9cf427
Author: Anthony Van de Gejuchte <anthonyvdgent at gmail.com>
Date:   Tue Jan 19 14:00:22 2016 +0100

    Add some tests for comment-filters through api
    
    Also never bother comment options to filter comment5/shebang comments
    as they have their custom filter.
---
 lib/output.js                |  4 ++--
 test/mocha/comment-filter.js | 45 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+), 2 deletions(-)

diff --git a/lib/output.js b/lib/output.js
index f10c918..dceece3 100644
--- a/lib/output.js
+++ b/lib/output.js
@@ -444,11 +444,11 @@ function OutputStream(options) {
                 });
             } else if (c.test) {
                 comments = comments.filter(function(comment){
-                    return c.test(comment.value) || comment.type == "comment5";
+                    return comment.type == "comment5" || c.test(comment.value);
                 });
             } else if (typeof c == "function") {
                 comments = comments.filter(function(comment){
-                    return c(self, comment) || comment.type == "comment5";
+                    return comment.type == "comment5" || c(self, comment);
                 });
             }
 
diff --git a/test/mocha/comment-filter.js b/test/mocha/comment-filter.js
new file mode 100644
index 0000000..ea2ec2e
--- /dev/null
+++ b/test/mocha/comment-filter.js
@@ -0,0 +1,45 @@
+var UglifyJS = require('../../');
+var assert = require("assert");
+
+describe("comment filters", function() {
+    it("Should be able to filter comments by passing regex", function() {
+        var ast = UglifyJS.parse("/*!test1*/\n/*test2*/\n//!test3\n//test4\n<!--test5\n<!--!test6\n-->test7\n-->!test8");
+        assert.strictEqual(ast.print_to_string({comments: /^!/}), "/*!test1*/\n//!test3\n//!test6\n//!test8\n");
+    });
+
+    it("Should be able to filter comments by passing a function", function() {
+        var ast = UglifyJS.parse("/*TEST 123*/\n//An other comment\n//8 chars.");
+        var f = function(node, comment) {
+            return comment.value.length === 8;
+        };
+
+        assert.strictEqual(ast.print_to_string({comments: f}), "/*TEST 123*/\n//8 chars.\n");
+    });
+
+    it("Should be able to get the comment and comment type when using a function", function() {
+        var ast = UglifyJS.parse("/*!test1*/\n/*test2*/\n//!test3\n//test4\n<!--test5\n<!--!test6\n-->test7\n-->!test8");
+        var f = function(node, comment) {
+            return comment.type == "comment1" || comment.type == "comment3";
+        };
+
+        assert.strictEqual(ast.print_to_string({comments: f}), "//!test3\n//test4\n//test5\n//!test6\n");
+    });
+
+    it("Should be able to filter comments by passing a boolean", function() {
+        var ast = UglifyJS.parse("/*!test1*/\n/*test2*/\n//!test3\n//test4\n<!--test5\n<!--!test6\n-->test7\n-->!test8");
+
+        assert.strictEqual(ast.print_to_string({comments: true}), "/*!test1*/\n/*test2*/\n//!test3\n//test4\n//test5\n//!test6\n//test7\n//!test8\n");
+        assert.strictEqual(ast.print_to_string({comments: false}), "");
+    });
+
+    it("Should never be able to filter comment5 (shebangs)", function() {
+        var ast = UglifyJS.parse("#!Random comment\n//test1\n/*test2*/");
+        var f = function(node, comment) {
+            assert.strictEqual(comment.type === "comment5", false);
+
+            return true;
+        };
+
+        assert.strictEqual(ast.print_to_string({comments: f}), "#!Random comment\n//test1\n/*test2*/\n");
+    });
+});

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/uglifyjs.git



More information about the Pkg-javascript-commits mailing list