package com.google.jstestdriver.idea.util;
import com.google.jstestdriver.idea.rt.util.EscapeUtils;
import org.junit.Assert;
import org.junit.Test;
import java.util.Arrays;
import java.util.List;
public class EscapeUtilsTest {
@Test
public void testJoinSplit() throws Exception {
List<String> strs = Arrays.asList("a", "", "aba", "abacaba", "_", "q", "\\1\\2\n");
String encoded = EscapeUtils.join(strs, 'a');
List<String> decoded = EscapeUtils.split(encoded, 'a');
Assert.assertEquals(strs, decoded);
}
@Test
public void testPath() throws Exception {
List<String> strs = Arrays.asList("C:\\dir\\file1", "C:\\dir\\file2");
String encoded = EscapeUtils.join(strs, ',');
List<String> decoded = EscapeUtils.split(encoded, ',');
Assert.assertEquals(strs, decoded);
}
@Test
public void testTrailingEmptyString() throws Exception {
List<String> list = Arrays.asList("hello", "");
String encoded = EscapeUtils.join(list, ',');
Assert.assertEquals("hello,", encoded);
List<String> decoded = EscapeUtils.split(encoded, ',');
Assert.assertEquals(list, decoded);
}
@Test
public void testEmptyStrings() throws Exception {
List<String> list = Arrays.asList("", "", "");
String encoded = EscapeUtils.join(list, '.');
Assert.assertEquals("..", encoded);
List<String> decoded = EscapeUtils.split(encoded, '.');
Assert.assertEquals(list, decoded);
}
@Test
public void testSeparatorStrings() throws Exception {
List<String> list = Arrays.asList(".", "..", "...");
String encoded = EscapeUtils.join(list, '.');
Assert.assertEquals("\\..\\.\\..\\.\\.\\.", encoded);
List<String> decoded = EscapeUtils.split(encoded, '.');
Assert.assertEquals(list, decoded);
}
}