/*
* Copyright 2005 Joe Walker
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.directwebremoting.impl;
import java.io.IOException;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* JUnit
* @author Joe Walker [joe at getahead dot ltd dot uk]
*/
public class LegacyCompressorTest
{
@Test
public void testCompress()
{
assertEquals(LegacyCompressor.compress(" aaa \n aa \n", LegacyCompressor.COMPRESS_TRIM_LINES), "aaa\naa\n");
assertEquals(LegacyCompressor.compress("//aaa//bbbb\nxx //aaa\n", LegacyCompressor.COMPRESS_STRIP_SL_COMMENTS), "\nxx \n");
assertEquals(LegacyCompressor.compress("a/*\n*/a\n", LegacyCompressor.COMPRESS_STRIP_ML_COMMENTS), "a \na\n");
assertEquals(LegacyCompressor.compress("a\n\na\n", LegacyCompressor.COMPRESS_STRIP_BLANKLINES), "a\na\n");
assertEquals(LegacyCompressor.compress("a\nb\n", LegacyCompressor.COMPRESS_REMOVE_NEWLINES), "a b \n");
}
@Test
public void testStripSpaces()
{
assertEquals(LegacyCompressor.trimLines("\n"), "\n");
assertEquals(LegacyCompressor.trimLines(null), null);
assertEquals(LegacyCompressor.trimLines("a a\n"), "a a\n");
assertEquals(LegacyCompressor.trimLines("aaa\n"), "aaa\n");
assertEquals(LegacyCompressor.trimLines(" a a \n"), "a a\n");
assertEquals(LegacyCompressor.trimLines(" aaa \n"), "aaa\n");
assertEquals(LegacyCompressor.trimLines(" aaa \n aa \n"), "aaa\naa\n");
}
@Test
public void testStripSingleLineComments()
{
assertEquals(LegacyCompressor.stripSingleLineComments("\n"), "\n");
assertEquals(LegacyCompressor.stripSingleLineComments(null), null);
assertEquals(LegacyCompressor.stripSingleLineComments("a\n"), "a\n");
assertEquals(LegacyCompressor.stripSingleLineComments("/a\n"), "/a\n");
assertEquals(LegacyCompressor.stripSingleLineComments("/a/a\n"), "/a/a\n");
assertEquals(LegacyCompressor.stripSingleLineComments("/ /\n"), "/ /\n");
assertEquals(LegacyCompressor.stripSingleLineComments("//\n"), "\n");
assertEquals(LegacyCompressor.stripSingleLineComments("//aaa\n"), "\n");
assertEquals(LegacyCompressor.stripSingleLineComments("//aaa\naaa\n"), "\naaa\n");
assertEquals(LegacyCompressor.stripSingleLineComments("//aaa//bbbb\naaa\n"), "\naaa\n");
assertEquals(LegacyCompressor.stripSingleLineComments("//aaa//bbbb\nxx //aaa\n"), "\nxx \n");
}
@Test
public void testStripMultiLineComments()
{
assertEquals(LegacyCompressor.stripMultiLineComments("\n"), "\n");
assertEquals(LegacyCompressor.stripMultiLineComments(null), null);
assertEquals(LegacyCompressor.stripMultiLineComments("a\n"), "a\n");
assertEquals(LegacyCompressor.stripMultiLineComments("/a\n"), "/a\n");
assertEquals(LegacyCompressor.stripMultiLineComments("/a*a\n"), "/a*a\n");
assertEquals(LegacyCompressor.stripMultiLineComments("/ */ *\n"), "/ */ *\n");
assertEquals(LegacyCompressor.stripMultiLineComments("/**/\n"), " \n");
assertEquals(LegacyCompressor.stripMultiLineComments("/***/\n"), " \n");
assertEquals(LegacyCompressor.stripMultiLineComments("/*a*/\n"), " \n");
assertEquals(LegacyCompressor.stripMultiLineComments("a/**/a\n"), "a a\n");
assertEquals(LegacyCompressor.stripMultiLineComments("a/*\n*/a\n"), "a \na\n");
}
@Test
public void testStripBlankLines()
{
assertEquals(LegacyCompressor.stripBlankLines("\n"), "\n");
assertEquals(LegacyCompressor.stripBlankLines("\n\n"), "\n");
assertEquals(LegacyCompressor.stripBlankLines(null), null);
assertEquals(LegacyCompressor.stripBlankLines("a\n"), "a\n");
assertEquals(LegacyCompressor.stripBlankLines("a\na\n"), "a\na\n");
assertEquals(LegacyCompressor.stripBlankLines(" \n \n"), "\n");
assertEquals(LegacyCompressor.stripBlankLines(" \n\t\n#\n"), "#\n");
assertEquals(LegacyCompressor.stripBlankLines("\n\n\n"), "\n");
assertEquals(LegacyCompressor.stripBlankLines("a\n\na\n"), "a\na\n");
}
@Test
public void testStripNewlines()
{
assertEquals(LegacyCompressor.stripNewlines(""), "\n");
assertEquals(LegacyCompressor.stripNewlines("\n"), " \n");
assertEquals(LegacyCompressor.stripNewlines(null), null);
assertEquals(LegacyCompressor.stripNewlines("a\nb\n"), "a b \n");
}
@Test
public void testHttp() throws IOException {
String http = "path.indexOf(\"http://\") == 0\n";
String https = "path.indexOf(\"https://\") == 0\n";
LegacyCompressor compressor = new LegacyCompressor();
assertEquals(http, compressor.compressJavaScript(http));
assertEquals(https, compressor.compressJavaScript(https));
}
}