@Test (timeout = 30000)
public void testSplit() throws Exception {

  assertEquals(NULL_STR, StringUtils.split(NULL_STR));
  String[] splits = StringUtils.split(EMPTY_STR);
  assertEquals(0, splits.length);
  splits = StringUtils.split(",,");
  assertEquals(0, splits.length);
  splits = StringUtils.split(STR_WO_SPECIAL_CHARS);
  assertEquals(1, splits.length);
  assertEquals(STR_WO_SPECIAL_CHARS, splits[0]);
  splits = StringUtils.split(STR_WITH_COMMA);
  assertEquals(2, splits.length);
  assertEquals("A", splits[0]);
  assertEquals("B", splits[1]);
  splits = StringUtils.split(ESCAPED_STR_WITH_COMMA);
  assertEquals(1, splits.length);
  assertEquals(ESCAPED_STR_WITH_COMMA, splits[0]);
  splits = StringUtils.split(STR_WITH_ESCAPE);
  assertEquals(1, splits.length);
  assertEquals(STR_WITH_ESCAPE, splits[0]);
  splits = StringUtils.split(STR_WITH_BOTH2);
  assertEquals(3, splits.length);
  assertEquals(EMPTY_STR, splits[0]);
  assertEquals("A\\,", splits[1]);
  assertEquals("B\\\\", splits[2]);
  splits = StringUtils.split(ESCAPED_STR_WITH_BOTH2);
  assertEquals(1, splits.length);
  assertEquals(ESCAPED_STR_WITH_BOTH2, splits[0]);    
}