@Test(expected = IllegalArgumentException.class)
 public void createFromUrlWithWrongParams() throws Exception {
   URL url =
       new URL(
           WebBundleUrl.SCHEME, null, -1, FILE_LOCATION + "?Web-ContextPath", new DummyHandler());
   WebBundleUrl warUrl = new WebBundleUrl(url);
   warUrl.getOptions();
 }
 @Test
 public void encodeBasicFileUrl() throws MalformedURLException {
   WebBundleUrl url = new TestWarUrl(FILE_LOCATION, null);
   URL u = url.toURL();
   assertNotNull(u);
   assertEquals(WebBundleUrl.SCHEME, u.getProtocol());
   assertEquals(FILE_LOCATION, u.getPath());
   assertNotNull(url.getOptions());
   assertEquals(FILE_LOCATION, url.getLocation());
 }
 @Test
 public void createFromUrl() throws Exception {
   URL url =
       new URL(
           WebBundleUrl.SCHEME,
           null,
           -1,
           FILE_LOCATION + "?Web-ContextPath=/foo",
           new DummyHandler());
   WebBundleUrl warUrl = new WebBundleUrl(url);
   assertEquals(FILE_LOCATION, warUrl.getLocation());
   assertEquals("/foo", warUrl.getOptions().get("Web-ContextPath"));
 }
  @Test
  public void encodeWithOptions() throws Exception {
    Map<String, String> options = new TreeMap<>();
    options.put("Web-ContextPath", "/foo");
    options.put("name", "Rob Harrop");
    WebBundleUrl url = new TestWarUrl(FILE_LOCATION, options);
    URL u = url.toURL();

    assertNotNull(u);

    assertEquals(WebBundleUrl.SCHEME, u.getProtocol());
    assertEquals(FILE_LOCATION, u.getPath());
    assertEquals("Web-ContextPath=/foo&name=Rob Harrop", u.getQuery());
  }
  @Test
  public void createFromUrlWithVersionedImports() throws Exception {
    URL url =
        new URL(
            WebBundleUrl.SCHEME,
            null,
            -1,
            FILE_LOCATION + "?Import-Package=x;version=1,y;version=2",
            new DummyHandler());
    WebBundleUrl warUrl = new WebBundleUrl(url);
    assertEquals(FILE_LOCATION, warUrl.getLocation());
    assertEquals("x;version=1,y;version=2", warUrl.getOptions().get("Import-Package"));

    url =
        new URL(
            WebBundleUrl.SCHEME,
            null,
            -1,
            FILE_LOCATION
                + "?Bundle-SymbolicName=test%26test&Import-Package=x;%20version=1,y;%20version=2",
            new DummyHandler());
    warUrl = new WebBundleUrl(url);
    assertEquals(FILE_LOCATION, warUrl.getLocation());
    assertEquals("x; version=1,y; version=2", warUrl.getOptions().get("Import-Package"));
    assertEquals("test&test", warUrl.getOptions().get("Bundle-SymbolicName"));

    url =
        new URL(
            WebBundleUrl.SCHEME,
            null,
            -1,
            FILE_LOCATION
                + "?Bundle-SymbolicName=test+test&Import-Package=x;%20version=1,y;%20version=2",
            new DummyHandler());
    warUrl = new WebBundleUrl(url);
    assertEquals(FILE_LOCATION, warUrl.getLocation());
    assertEquals("x; version=1,y; version=2", warUrl.getOptions().get("Import-Package"));
    assertEquals("test test", warUrl.getOptions().get("Bundle-SymbolicName"));
  }