/* Copyright 2015 CrushPaper.com. This file is part of CrushPaper. CrushPaper is free software: you can redistribute it and/or modify it under the terms of version 3 of the GNU Affero General Public License as published by the Free Software Foundation. CrushPaper is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with CrushPaper. If not, see <http://www.gnu.org/licenses/>. */ package com.crushpaper; import static org.junit.Assert.assertEquals; import java.io.ByteArrayInputStream; import java.io.IOException; import java.nio.charset.Charset; import org.junit.Test; /** Test for JsMinifier. */ public class JsMinifierTest { String minify(String toMinify) throws IOException { final JsMinifier minifier = new JsMinifier(); return minifier.minify( new ByteArrayInputStream(toMinify.getBytes(Charset .forName("UTF-8")))).toString(); } @Test public void test() throws IOException { assertEquals(minify(" "), ""); assertEquals(minify(" "), ""); assertEquals(minify(" "), ""); assertEquals(minify("a"), "a"); assertEquals(minify(" a"), "a"); assertEquals(minify(" a"), "a"); assertEquals(minify(" a"), "a"); assertEquals(minify("a "), "a "); assertEquals(minify(" a "), "a "); assertEquals(minify(" a "), "a "); assertEquals(minify(" a "), "a "); assertEquals(minify("/**/"), ""); assertEquals(minify("/* */"), ""); assertEquals(minify("/*a*/"), ""); assertEquals(minify("/* a */"), ""); assertEquals(minify("/**//**/"), ""); assertEquals(minify("/* *//* */"), ""); assertEquals(minify("/*a*//*a*/"), ""); assertEquals(minify("/* a *//* a */"), ""); assertEquals(minify("/**/b/**/"), "b"); assertEquals(minify("/* */b/* */"), "b"); assertEquals(minify("/*a*/b/*a*/"), "b"); assertEquals(minify("/* a */b/* a */"), "b"); assertEquals(minify("/**/ b /**/"), "b "); assertEquals(minify("/* */ b /* */"), "b "); assertEquals(minify("/*a*/ b /*a*/"), "b "); assertEquals(minify("/* a */ b /* a */"), "b "); assertEquals(minify("\n"), "\n"); assertEquals(minify(" \n "), "\n"); assertEquals(minify(" \n "), "\n"); assertEquals(minify(" \n \n"), "\n\n"); assertEquals(minify("a\n"), "a\n"); assertEquals(minify(" a\n "), "a\n"); assertEquals(minify(" a\n "), "a\n"); assertEquals(minify(" a\n \n"), "a\n\n"); assertEquals(minify("a\nb"), "a\nb"); assertEquals(minify(" a\n b"), "a\nb"); assertEquals(minify(" a\n b"), "a\nb"); assertEquals(minify(" a\n b\n"), "a\nb\n"); assertEquals(minify("//"), ""); assertEquals(minify("//\n"), "\n"); assertEquals(minify("a//"), "a"); assertEquals(minify("a//\n"), "a\n"); assertEquals(minify("//b"), ""); assertEquals(minify("//b\n"), "\n"); assertEquals(minify("a//b"), "a"); assertEquals(minify("a//b\n"), "a\n"); assertEquals(minify("a//b\nc"), "a\nc"); assertEquals(minify("a/**///b"), "a"); assertEquals(minify("a/**/ //b"), "a "); assertEquals(minify("/**/ //b"), ""); assertEquals(minify("/**/ a//b"), "a"); assertEquals(minify("/**/ a //b"), "a "); assertEquals(minify("/**/\n"), "\n"); assertEquals(minify("/**/\na"), "\na"); assertEquals(minify("///**/\na"), "\na"); assertEquals(minify("/*a\n*/\nb"), "\n\nb"); assertEquals(minify("/*\n*/\n"), "\n\n"); assertEquals(minify("/a"), "/a"); assertEquals(minify("/"), "/"); assertEquals(minify("/\n"), "/\n"); assertEquals(minify("'/'\n"), "'/'\n"); assertEquals(minify("'//'\n"), "'//'\n"); assertEquals(minify("'/*'\n"), "'/*'\n"); assertEquals(minify("'/**/'\n"), "'/**/'\n"); assertEquals(minify("a'/'b\n"), "a'/'b\n"); assertEquals(minify("a'//'b\n"), "a'//'b\n"); assertEquals(minify("a'/*'b\n"), "a'/*'b\n"); assertEquals(minify("a'/**/'b\n"), "a'/**/'b\n"); assertEquals(minify("a'\\''b\n"), "a'\\''b\n"); assertEquals(minify("a'c\\'d'b\n"), "a'c\\'d'b\n"); assertEquals(minify("\"/\"\n"), "\"/\"\n"); assertEquals(minify("\"//\"\n"), "\"//\"\n"); assertEquals(minify("\"/*\"\n"), "\"/*\"\n"); assertEquals(minify("\"/**/\"\n"), "\"/**/\"\n"); assertEquals(minify("a\"/\"b\n"), "a\"/\"b\n"); assertEquals(minify("a\"//\"b\n"), "a\"//\"b\n"); assertEquals(minify("a\"/*\"b\n"), "a\"/*\"b\n"); assertEquals(minify("a\"/**/\"b\n"), "a\"/**/\"b\n"); assertEquals(minify("a\"\\\"\"b\n"), "a\"\\\"\"b\n"); assertEquals(minify("a\"c\\\"d\"b\n"), "a\"c\\\"d\"b\n"); assertEquals(minify("\"\"//"), "\"\""); assertEquals(minify("\"\\\"\"//"), "\"\\\"\""); assertEquals(minify("\"\"//"), "\"\""); assertEquals(minify("\"\\\"\"//"), "\"\\\"\""); assertEquals(minify("a//\n b"), "a\nb"); } }