@Test
public void options() throws Exception {

  checkOption("", "", "");
  checkOption("a", "a", "");
  checkOption("a=b", "a", "b");
  checkOption("=", "", "");
  checkOption("=b", "", "b");
  checkOption("a&c", "a", "");
  checkOption("a&c", "c", "");
  checkOption("a=b&c", "a", "b");
  checkOption("a=b&c", "c", "");
  checkOption("a=b&c=d", "a", "b");
  checkOption("a=b&c=d", "c", "d");
  checkOption("=&=", "", "");
  assertEquals(2, UriDecoder.splitAndDecodeOptions("=&=").size());
  assertEquals(13, UriDecoder.splitAndDecodeOptions("&&&&&&&&&&&&").size());
  checkOption("=&c=d", "", "");
  checkOption("=&c=d", "c", "d");
  checkOption("a%62c=d%65f", "abc", "def");
  checkOption("a='%26%3D'", "a", "'&='");
}