@Test
 public void testCacheExtensionToString() {
   CacheControl cc = new CacheControl();
   cc.getCacheExtension().put("ext1", null);
   cc.getCacheExtension().put("ext2", "value2");
   cc.getCacheExtension().put("ext3", "value 3");
   String value = cc.toString();
   assertTrue(value.indexOf("ext1") != -1 && value.indexOf("ext1=") == -1);
   assertTrue(value.indexOf("ext2=value2") != -1);
   assertTrue(value.indexOf("ext3=\"value 3\"") != -1);
 }
  @Test
  public void testReadMultiplePrivateAndNoCacheFields() {
    String s =
        "private=\"foo1,foo2\",no-store,no-transform,"
            + "must-revalidate,proxy-revalidate,max-age=2,s-maxage=3,no-cache=\"bar1,bar2\","
            + "ext=1";
    CacheControl cc = CacheControl.valueOf(s);

    assertTrue(cc.isPrivate());
    List<String> privateFields = cc.getPrivateFields();
    assertEquals(2, privateFields.size());
    assertEquals("foo1", privateFields.get(0));
    assertEquals("foo2", privateFields.get(1));
    assertTrue(cc.isNoCache());
    List<String> noCacheFields = cc.getNoCacheFields();
    assertEquals(2, noCacheFields.size());
    assertEquals("bar1", noCacheFields.get(0));
    assertEquals("bar2", noCacheFields.get(1));

    assertTrue(cc.isNoStore());
    assertTrue(cc.isNoTransform());
    assertTrue(cc.isMustRevalidate());
    assertTrue(cc.isProxyRevalidate());
    assertEquals(2, cc.getMaxAge());
    assertEquals(3, cc.getSMaxAge());

    Map<String, String> exts = cc.getCacheExtension();
    assertEquals(1, exts.size());
    assertEquals("1", exts.get("ext"));
  }